eclipse-ee4j / grizzly

Grizzly
https://eclipse-ee4j.github.io/grizzly
Other
147 stars 69 forks source link

JMX monitoring throws on Java 17 #2142

Closed cykl closed 1 year ago

cykl commented 2 years ago

Running latest 2.x release with serverConfiguration.setJmxEnabled( true ) and Java 17 cause following exception:

    Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make private static java.lang.ClassLoader java.io.ObjectInputStream.latestUserDefinedLoader() accessible: module java.base does not "opens java.io" to unnamed module @c333c60
        at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) ~[?:?]
        at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) ~[?:?]
        at java.lang.reflect.Method.checkCanSetAccessible(Method.java:199) ~[?:?]
        at java.lang.reflect.Method.setAccessible(Method.java:193) ~[?:?]
        at org.glassfish.pfl.basic.reflection.Bridge$1.run(Bridge.java:90) ~[pfl-basic-4.0.1.jar:?]
        at org.glassfish.pfl.basic.reflection.Bridge$1.run(Bridge.java:82) ~[pfl-basic-4.0.1.jar:?]
        at java.security.AccessController.doPrivileged(AccessController.java:318) ~[?:?]
        at org.glassfish.pfl.basic.reflection.Bridge.getLatestUserDefinedLoaderMethod(Bridge.java:81) ~[pfl-basic-4.0.1.jar:?]
        at org.glassfish.pfl.basic.reflection.Bridge.<init>(Bridge.java:130) ~[pfl-basic-4.0.1.jar:?]
        at org.glassfish.pfl.basic.reflection.Bridge.get(Bridge.java:155) ~[pfl-basic-4.0.1.jar:?]
        at org.glassfish.pfl.basic.reflection.FieldValueHelper.<clinit>(FieldValueHelper.java:16) ~[pfl-basic-4.0.1.jar:?]
        at org.glassfish.pfl.basic.algorithm.ObjectUtility.handleObject(ObjectUtility.java:401) ~[pfl-basic-4.0.1.jar:?]
        at org.glassfish.pfl.basic.algorithm.ObjectUtility.access$000(ObjectUtility.java:44) ~[pfl-basic-4.0.1.jar:?]
        at org.glassfish.pfl.basic.algorithm.ObjectUtility$1.print(ObjectUtility.java:89) ~[pfl-basic-4.0.1.jar:?]
        at org.glassfish.pfl.basic.algorithm.ObjectUtility.objectToStringHelper(ObjectUtility.java:321) ~[pfl-basic-4.0.1.jar:?]
        at org.glassfish.pfl.basic.algorithm.ObjectUtility.objectToString(ObjectUtility.java:280) ~[pfl-basic-4.0.1.jar:?]
        at org.glassfish.gmbal.impl.ManagedObjectManagerImpl.getTypeConverter(ManagedObjectManagerImpl.java:501) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.impl.AttributeDescriptor.<init>(AttributeDescriptor.java:67) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.impl.AttributeDescriptor.makeFromAnnotated(AttributeDescriptor.java:307) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.impl.ManagedObjectManagerImpl$8.evaluate(ManagedObjectManagerImpl.java:1153) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.impl.ManagedObjectManagerImpl$8.evaluate(ManagedObjectManagerImpl.java:1134) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.typelib.EvaluatedClassAnalyzer.findMethods(EvaluatedClassAnalyzer.java:173) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.impl.ManagedObjectManagerImpl.getAttributes(ManagedObjectManagerImpl.java:1134) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.impl.MBeanSkeleton.analyzeAttributes(MBeanSkeleton.java:311) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.impl.MBeanSkeleton.<init>(MBeanSkeleton.java:147) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.impl.ManagedObjectManagerImpl.getSkeleton(ManagedObjectManagerImpl.java:457) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.impl.ManagedObjectManagerImpl.<init>(ManagedObjectManagerImpl.java:165) ~[gmbal-4.0.0.jar:?]
        at org.glassfish.gmbal.impl.ManagedObjectManagerImpl.<init>(ManagedObjectManagerImpl.java:332) ~[gmbal-4.0.0.jar:?]
        ... 21 more

I believe this problem is well known as a warning has been printed since Java 11. It also seems that latest gmbal release fixes this issue. I tried for force gmbal 4.0.3 in a test project using Grizzly 2.x, it solved this issue. Grizzly still depend on gmbal 4.0.0. Would it be possible to adopt latest gmbal version & cut new releases?