Code Review Request for 6977738

Xueming Shen xueming.shen at oracle.com
Thu Oct 7 20:36:10 UTC 2010


Changes in ZipFile.java, Properties.java and XMLUtils.java look fine.

-Sherman

On 09/16/2010 04:30 PM, Mandy Chung wrote:
>
>
> Fix 6977738: Deadlock between java.lang.ClassLoader and 
> java.util.Properties
>
> Webrev at:
>    http://cr.openjdk.java.net/~mchung/6977738/webrev.00/
>
> ClassLoader.getResource locking the system properties object is
> deadlock prone. For example, the 
> sun.misc.Launcher.getBootstrapClassPath()
> method is a synchronized method. A thread calling
> ClassLoader.getResource method attempts to synchronize on
> the system properties object while holding sun.misc.Launcher.class.
> It will deadlock if there is another thread is holding the monitor
> lock of the system properties object (e.g. calls the Properties.save()
> method) while it attempts to load a resource file.  In addition,
> ClassLoader.getResource may invoke the ZipFile initialization that
> also needs to get the system property.
>
> This fix caches the system properties at initialization so that
> the ZipFile and Launcher will read the system property from the
> private Properties object.  In addition, I make some minor
> changes in Properties.save and storeToXML method to confine the
> synchronization needed and also have the DownloadManager to
> maintain its bootclasspath.
>
> Thanks
> Mandy
>




More information about the core-libs-dev mailing list