On 09/30/10 07:18, Alan Bateman wrote:
Mandy Chung wrote:
 Alan, David,

I revise the fix including the following:
1. Use the lazy initialization holder class idiom to initialize the bcp
variable to simplify the synchronization.

2. Group the initialization of system properties in a new private method
System.initializeSystemProperties so that it can save a copy for internal
implementation use to address the deadlock issue and remove the
properties that are intended for private internal use from public access
before initializing the System.props.  This removes the 2 calls to
System.setProperties.

3. Reorder sun.net.* in FILES_java.gmk

The new webrev is at:
   http://cr.openjdk.java.net/~mchung/6977738/webrev.01/
This looks much better (and thanks for doing the various drive-by-clean-ups).

I assume BootClassPathHolder should be private, and that the bcp field can be final.

Minor nit but but the IllegalStateExceptions thrown by VM.getSavedProperty capitalizes the first letter of the message whereas VM.saveAndRemoveProperties doesn't.

I wonder if it would be worth seeing if saveAndRemoveProperties could grab the value of the java.lang.Integer.IntegerCache.high property. That would allow us to be handle it more consistently with these other properties that we save during initialization. The cache initialization could then use VM.getSavedProperty to get the value. Might be worth thinking about but you would need to be careful to ensure that Integer.valueOf isn't called as otherwise isn't not going to work.


Yes, I also thought of that. I was trying to keep the change as minimal. I agree that I should take this chance to clean up and handle private system properties consistently. It's good not to leak the private internal interfaces for public access.

Joe, Sherman,

I change IntegerCache and ZipFile initialization to get the property value from the private system properties object (not calling System.getProperty). I also remove the "sun.zip.disableMemoryMapping" property from the public system properties. Can you take a look?

   http://cr.openjdk.java.net/~mchung/6977738/webrev.02

Thanks
Mandy

Reply via email to