RFR(S): 8191229: serviceability/jvmti/GetOwnedMonitorInfo/GetOwnedMonitorInfoTest.java fails with NoClassDefFoundError
David Holmes
david.holmes at oracle.com
Thu Dec 7 03:38:30 UTC 2017
On 7/12/2017 1:08 PM, Chris Plummer wrote:
> On 12/6/17 6:47 PM, David Holmes wrote:
>> Hi Chris,
>>
>> On 7/12/2017 8:38 AM, Chris Plummer wrote:
>>> Hello,
>>>
>>> Please review the following:
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8191229
>>> http://cr.openjdk.java.net/~cjplummer/8191229/webrev.00/
>>
>> I expected to see the initialization done in JNI_OnLoad, not in a new
>> init() method.
> I was worried it wouldn't work because of JDK-8188052, but I guess that
> only impacts JNI_OnUnload. I can change it to init from JNI_OnLoad().
Yes please use JNI_OnLoad.
Thanks,
David
>
> Chris
>>
>> David
>> -----
>>
>>> 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