RFR: 8038468: java/lang/instrument/ParallelTransformerLoader.sh fails with ClassCircularityError

Yumin Qi yumin.qi at oracle.com
Mon Oct 13 22:58:38 UTC 2014


bug: https://bugs.openjdk.java.net/browse/JDK-8038468
webrev:*http://cr.openjdk.java.net/~minqi/8038468/webrev00/

the bug marked as confidential so post the webrev internally.

Problem: The test case tries to load a class from the same jar via agent 
in the middle of loading another class from the jar via same class 
loader in same thread. The call happens in transform which is a rare 
case --- in middle of loading class, loading another class. The result 
is a CircularityError. When first class is in loading, in vm we put 
JarLoader$2 on place holder table, then we start the defineClass, which 
calls transform, begins loading the second class so go along the same 
routine for loading JarLoader$2 first, found it already in placeholder 
table. A CircularityError is thrown.
Fix: The test case should not call loading class with same class loader 
in same thread from same jar in 'transform' method. I modify it loading 
with system class loader and we expect see ClassNotFoundException. 
Detail see bug comments.

Thanks
Yumin *


More information about the jdk9-dev mailing list