RFR(M): JDK-8141070 vm/services/management.cpp should be resilient to missing 'jdk.management' module

Dmitry Samersoff dmitry.samersoff at oracle.com
Thu Jan 14 09:51:05 UTC 2016


David,

> Is this because the management API's are actually split across
> the base module (java.lang.management) and the jdk.management module?
> If so that seem messy. If not then I'm not understanding the issue.

Yes. Exactly.

Moreover future management functionality may require additional modules.

-Dmitry


On 2016-01-14 07:06, David Holmes wrote:
> Hi Dmitry,
> 
> On 14/01/2016 4:45 AM, Dmitry Samersoff wrote:
>> Everybody,
>>
>> Please, review the fix:
>>
>> http://cr.openjdk.java.net/~dsamersoff/JDK-8141070/webrev.01/
>>
>> The problem:
>>
>>    Code in management.cpp throw NoClassDefFound exception if any of
>> requested classes is missing.
>>
>>   But, in upcoming modular JDK classes that not belong to
>> java.lang.management (sun.management, com.sun.management etc) might not
>> be present.
> 
> Is this because the management API's are actually split across the base
> module (java.lang.management) and the jdk.management module? If so that
> seem messy. If not then I'm not understanding the issue.
> 
> I would have hoped that the management initialization function in the VM
> could simply check for the management module being present and set a
> flag that can be checked by all the management entry points. Something
> that might even be better done at the Java level. ??
> 
> Cheers,
> David
> 
>> Solution:
>>
>>   Refactor class resolving code to support two type of classes - REQUIRED
>> (still throw NCDFE if the class is missing) and OPTIONAL (just return
>> NULL).
>>
>>    I introduced a new parameter to highlight the fact that a class is an
>> optional one on caller side rather than handle it silently inside
>> management.cpp.
>>
>> -Dmitry
>>


-- 
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.


More information about the serviceability-dev mailing list