Jigsaw EA feedback for elasticsearch

Robert Muir rcmuir at gmail.com
Fri Sep 11 21:21:50 UTC 2015


I can workaround this issue by changing the code to not call
setAccessible (and doing class.forName).

I don't know why the existing code does it that way... just another
code change, but I think we are fine!

On Fri, Sep 11, 2015 at 4:58 PM, Robert Muir <rcmuir at gmail.com> wrote:
> On Fri, Sep 11, 2015 at 6:09 AM, Alan Bateman <Alan.Bateman at oracle.com> wrote:
>>
>> I'm not sure that I understand the issue here but just to say that the
>> com.sun.management API is a documented/supported API and it exported by
>> module jdk.management:
>>
>> $ java -listmods:jdk.management
>>
>> jdk.management at 9.0
>>   requires public java.management
>>   requires mandated java.base
>>   exports com.sun.management
>>   conceals com.sun.management.internal
>>   provides sun.management.spi.PlatformMBeanProvider with
>> com.sun.management.internal.PlatformMBeanProviderImpl
>>
>
> Here is code that fails:
>
> import java.lang.reflect.*;
> import java.lang.management.*;
>
> public class test {
>   public static void main(String args[]) throws Exception {
>     OperatingSystemMXBean osMxBean =
> ManagementFactory.getOperatingSystemMXBean();
>     Method getTotalPhysicalMemorySize =
> osMxBean.getClass().getMethod("getTotalPhysicalMemorySize");
>     getTotalPhysicalMemorySize.setAccessible(true);
>     System.out.println(getTotalPhysicalMemorySize.invoke(osMxBean));
>   }
> }
>
> Exception in thread "main"
> java.lang.reflect.InaccessibleObjectException: Unable to make member
> of class com.sun.management.internal.OperatingSystemImpl accessible:
> module jdk.management does not export com.sun.management.internal to
> <unnamed module @5f375618>
>     at sun.reflect.Reflection.throwInaccessibleObjectException(java.base at 9.0/Reflection.java:462)
>     at java.lang.reflect.AccessibleObject.checkCanSetAccessible(java.base at 9.0/AccessibleObject.java:194)
>     at java.lang.reflect.AccessibleObject.setAccessible(java.base at 9.0/AccessibleObject.java:157)
>     at test.main(test.java:8)


More information about the jigsaw-dev mailing list