[concurrency-interest] DirectByteBuffers and reachabilityFence

Doug Lea dl at cs.oswego.edu
Thu Dec 10 07:45:55 EST 2015


On 12/09/2015 07:04 PM, David Holmes wrote:

> I just found what seems to be a major
> error in the JLS in regards to JSR-133.  Here is the text that was supposed
> to be included in the JLS update by JSR-133:
>
> "An object cannot be considered finalizable until all of its constructors
> have finished. The constructor for class Object must be invoked and complete
> normally in order for the object to be finalizable; other
> constructors may terminate by throwing exceptions."
>
> http://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdf
>
> But that isn't what it says in JLS 12.6.1!
>

> I don't know if Doug/Hans/Bill/Jeremy can shed any light on why the JLS was
> not updated as expected, but I'd really like to know if they intended to
> remove the temporal constraint, or whether they also thought the HB was
> sufficient.

Several "editorial improvements" were made (by Gilad Bracha and/or
others) when JSR133 text was incorporated into JLS. Plus some glitches
that might just be latex->framemaker conversion breakage. Some still
remain, and are on to-do list when JMM is substantively revised.

It could be the case that whoever did this incorporation made
the same inference as Justin about the intended cases already
being implicitly covered. Or it could just be an editorial slip.
In either case, it should be among follow-up JLS clarifications.

-Doug



More information about the Concurrency-interest mailing list