JDK-8027351: (ref) Base's class finalize method not invoked if a private finalize method exists in its subclass

Mandy Chung mandy.chung at oracle.com
Tue Nov 5 20:24:42 UTC 2013


On 11/5/2013 1:11 AM, Paul Sandoz wrote:
> On Nov 5, 2013, at 3:21 AM, Mandy Chung <mandy.chung at oracle.com> wrote:
>>> 2. In VM.java. booted need not be volatile now that it is only accessed within a locked region. Also awaitBooted might as well be void as it can only ever return true.
>>>
>> Fixed.  Revised webrev at:
>> http://cr.openjdk.java.net/~mchung/jdk8/webrevs/8027351/webrev.03/
>>
> The booted field is also accessed directly from within other areas of the VM class e.g.:
>
>   272     // This method can only be invoked during system initialization.
>   273     public static void saveAndRemoveProperties(Properties props) {
>   274         if (booted)
>   275             throw new IllegalStateException("System initialization has completed");
>
>   323     public static void initializeOSEnvironment() {
>   324         if (!booted) {
>   325             OSEnvironment.initialize();
>   326         }
>   327     }

Oops... missed to look at its use within VM class.    A good reason to 
keep booted as volatile originally.

Mandy



More information about the core-libs-dev mailing list