RFR 8170870: https://bugs.openjdk.java.net/browse/JDK-8170870

harold seigel harold.seigel at oracle.com
Wed Dec 7 18:43:41 UTC 2016


Please review this fix for bug JDK-8170870.  The fix synchronizes access 
to the class loaders' PackageEntryTable and ModuleEntryTable structures 
by requiring callers of ClassLoaderData::modules_do() and 
ClassLoaderData::packages_do() to lock the Module_lock.

The lock is needed because even during a safepoint one thread could be 
removing items from the tables while another thread is reading the 
tables.  For example, unloading a class could cause an event collection 
framework's JVM support to read the tables during a ClassUnload event 
while the VM is removing entries from these structures for modules and 
packages whose class loader got unloaded.

The fix also cleans up management of package qualified export lists.

Open Webrev: 

JBS Bug:  https://bugs.openjdk.java.net/browse/JDK-8170870

The fix was tested with the JCK Lang and vm tests, the JTreg hotspot, 
java/io, java/lang, and java/util tests and the nsk cololocated and the 
non-colocated tests.

Thanks, Harold

More information about the hotspot-runtime-dev mailing list