RFR(S): 8191229: serviceability/jvmti/GetOwnedMonitorInfo/GetOwnedMonitorInfoTest.java fails with NoClassDefFoundError

Chris Plummer chris.plummer at oracle.com
Wed Dec 6 22:38:43 UTC 2017


Hello,

Please review the following:

https://bugs.openjdk.java.net/browse/JDK-8191229
http://cr.openjdk.java.net/~cjplummer/8191229/webrev.00/

The test is testing contended monitor support. After registering the 
callback, it gets an unexpected notification of a contended monitor, 
which is happening while the finalizer thread is running. In the 
callback the test does a FindClass to find a test class, but the 
classloader context is not correct when the finalizer thread is current, 
so FindClass fails and leaves an exception pending (probably blowing 
away the finalzer thread) and also (separately) causes the test to fail. 
It's unknown why this callback is suddenly being triggered, but the 
callback itself is not a bug, and the test needs to defend against it.

The fix is to lookup the test class during test initialization and keep 
it cached, rather than look it up every time there is a contended 
monitor callback.

thanks,

Chris


More information about the serviceability-dev mailing list