mycontroller-v1-legacy icon indicating copy to clipboard operation
mycontroller-v1-legacy copied to clipboard

Java 11

Open Avamander opened this issue 7 years ago • 9 comments

I tried running MyController with Java 11 and I think the startup script should include flags to disable forbidden reflection or not reflect like that:

[Wed Nov 07 17:26:49 EET 2018] Unexpected problem running servlet
org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
        at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:167)
        at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:471)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:415)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
        at org.jboss.resteasy.plugins.server.tjws.TJWSServletDispatcher.service(TJWSServletDispatcher.java:40)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at Acme.Serve.Serve$ServeConnection.runServlet(Serve.java:2328)
        at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2282)
        at Acme.Serve.Serve$ServeConnection.run(Serve.java:2054)
        at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1402)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: java.lang.reflect.InaccessibleObjectException: Unable to make public com.sun.management.GcInfo com.sun.management.internal.GarbageCollectorExtImpl.getLastGcInfo() accessible: module jdk.management does not "exports com.sun.management.internal" to unnamed module @5b239d7d (through reference chain: org.mycontroller.standalone.api.jaxrs.utils.StatusJVM["garbageCollectors"])
        at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:210)
        at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:177)
        at com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:199)
        at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:683)
        at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
        at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:130)
        at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1387)
        at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:889)
        at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.writeTo(ResteasyJackson2Provider.java:207)
        at org.mycontroller.standalone.api.jaxrs.mixins.McJacksonJson2Provider.writeTo(McJacksonJson2Provider.java:120)
        at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:131)
        at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:60)
        at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:120)
        at org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.aroundWriteTo(GZIPEncodingInterceptor.java:100)
        at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:124)
        at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:98)
        at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:466)
        ... 12 more
Caused by: java.lang.RuntimeException: java.lang.reflect.InaccessibleObjectException: Unable to make public com.sun.management.GcInfo com.sun.management.internal.GarbageCollectorExtImpl.getLastGcInfo() accessible: module jdk.management does not "exports com.sun.management.internal" to unnamed module @5b239d7d
        at org.mycontroller.standalone.api.jaxrs.utils.StatusJVM.getGcInfo(StatusJVM.java:68)
        at org.mycontroller.standalone.api.jaxrs.utils.StatusJVM.getGarbageCollector(StatusJVM.java:48)
        at org.mycontroller.standalone.api.jaxrs.utils.StatusJVM.getGarbageCollectors(StatusJVM.java:41)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:654)
        at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675)
        ... 25 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make public com.sun.management.GcInfo com.sun.management.internal.GarbageCollectorExtImpl.getLastGcInfo() accessible: module jdk.management does not "exports com.sun.management.internal" to unnamed module @5b239d7d
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:340)
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:280)
        at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:198)
        at java.base/java.lang.reflect.Method.setAccessible(Method.java:192)
        at org.mycontroller.standalone.api.jaxrs.utils.StatusJVM.getGcInfo(StatusJVM.java:64)
        ... 33 more

[Wed Nov 07 17:26:49 EET 2018] Unexpected problem running servlet: org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception

and

2018-11-07 17:26:48,882 ERROR [Acme.Utils.ThreadPool(5)-PooledThread: Acme.Serve.Serve$ServeConnection@7d892951] [org.mycontroller.standalone.api.jaxrs.utils.StatusJVM:67] Error, 
java.lang.reflect.InaccessibleObjectException: Unable to make public com.sun.management.GcInfo com.sun.management.internal.GarbageCollectorExtImpl.getLastGcInfo() accessible: module jdk.management does not "exports com.sun.management.internal" to unnamed module @5b239d7d
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:340)
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:280)
        at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:198)
        at java.base/java.lang.reflect.Method.setAccessible(Method.java:192)
        at org.mycontroller.standalone.api.jaxrs.utils.StatusJVM.getGcInfo(StatusJVM.java:64)
        at org.mycontroller.standalone.api.jaxrs.utils.StatusJVM.getGarbageCollector(StatusJVM.java:48)
        at org.mycontroller.standalone.api.jaxrs.utils.StatusJVM.getGarbageCollectors(StatusJVM.java:41)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:654)
        at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675)
        at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
        at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:130)
        at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1387)
        at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:889)
        at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.writeTo(ResteasyJackson2Provider.java:207)
        at org.mycontroller.standalone.api.jaxrs.mixins.McJacksonJson2Provider.writeTo(McJacksonJson2Provider.java:120)
        at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:131)
        at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:60)
        at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:120)
        at org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.aroundWriteTo(GZIPEncodingInterceptor.java:100)
        at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:124)
        at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:98)
        at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:466)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:415)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
        at org.jboss.resteasy.plugins.server.tjws.TJWSServletDispatcher.service(TJWSServletDispatcher.java:40)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at Acme.Serve.Serve$ServeConnection.runServlet(Serve.java:2328)
        at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2282)
        at Acme.Serve.Serve$ServeConnection.run(Serve.java:2054)
        at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1402)
        at java.base/java.lang.Thread.run(Thread.java:834)

and

2018-11-07 17:14:45,071 ERROR [mc-th-pool-0] [org.mycontroller.standalone.McUncaughtException:73] Exception,
java.lang.UnsatisfiedLinkError: /tmp/1541603685018-libjSerialComm.so: /tmp/1541603685018-libjSerialComm.so: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64-bit .so on a AARCH64-bit platform)
        at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
        at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430)
        at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487)
        at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684)
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617)
        at java.base/java.lang.Runtime.load0(Runtime.java:767)
        at java.base/java.lang.System.load(System.java:1831)
        at com.fazecast.jSerialComm.SerialPort.<clinit>(SerialPort.java:181)
        at org.mycontroller.standalone.gateway.serial.SerialDriverJSerialComm.connect(SerialDriverJSerialComm.java:55)
        at org.mycontroller.standalone.gateway.serial.GatewaySerial.connect(GatewaySerial.java:91)
        at org.mycontroller.standalone.provider.EngineAbstract.run(EngineAbstract.java:126)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
2018-11-07 17:14:50,709 INFO [main] [org.mycontroller.standalone.StartApp:217] TJWS server started successfully, HTTPS Enabled?:false, HTTP(S) Port: [8080]
2018-11-07 17:14:50,714 INFO [main] [org.mycontroller.standalone.StartApp:115] MyController.org server started in [20947] ms
java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlElement
        at com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector.<init>(JaxbAnnotationIntrospector.java:131)
        at com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector.<init>(JaxbAnnotationIntrospector.java:118)
        at com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector.<init>(JaxbAnnotationIntrospector.java:110)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at java.base/java.lang.Class.newInstance(Class.java:584)
        at com.fasterxml.jackson.jaxrs.json.JsonMapperConfigurator._resolveIntrospector(JsonMapperConfigurator.java:111)
        at com.fasterxml.jackson.jaxrs.json.JsonMapperConfigurator._resolveIntrospectors(JsonMapperConfigurator.java:84)
        at com.fasterxml.jackson.jaxrs.cfg.MapperConfiguratorBase._setAnnotations(MapperConfiguratorBase.java:120)
        at com.fasterxml.jackson.jaxrs.json.JsonMapperConfigurator.getDefaultMapper(JsonMapperConfigurator.java:45)
        at com.fasterxml.jackson.jaxrs.base.ProviderBase.locateMapper(ProviderBase.java:867)
        at org.mycontroller.standalone.api.jaxrs.mixins.McJacksonJson2Provider.writeTo(McJacksonJson2Provider.java:85)
        at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:131)
        at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:60)
        at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:120)
        at org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.aroundWriteTo(GZIPEncodingInterceptor.java:100)
        at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:124)
        at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:98)
        at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:466)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:415)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
        at org.jboss.resteasy.plugins.server.tjws.TJWSServletDispatcher.service(TJWSServletDispatcher.java:40)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at Acme.Serve.Serve$ServeConnection.runServlet(Serve.java:2328)
        at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2282)
        at Acme.Serve.Serve$ServeConnection.run(Serve.java:2054)
        at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1402)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlElement
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 33 more

Avamander avatar Nov 07 '18 15:11 Avamander

One more during startup

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.postgresql.jdbc.TimestampUtils (file:/usr/lib/mycontroller/lib/mycontroller-dist-standalone-1.3.0.Final-single.jar) to field java.util.TimeZone.defaultTimeZone
WARNING: Please consider reporting this to the maintainers of org.postgresql.jdbc.TimestampUtils
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Avamander avatar Nov 07 '18 16:11 Avamander

@Avamander Thanks for the input. In which platform are you using? Is Java 11 default on your environment?

jkandasa avatar Nov 08 '18 08:11 jkandasa

I'm using it on my Raspberry Pi 3B, Java 11 is not yet the default but I'm pretty sure some security changes that break MyController are already in Java 9, which means next time a distribution bumps their java version default MyController will probably break.

Avamander avatar Nov 09 '18 23:11 Avamander

I see the same exceptions under Java 9

openjdk 9-Raspbian
OpenJDK Runtime Environment (build 9-Raspbian+0-9b181-4bpo9rpt1)
OpenJDK Server VM (build 9-Raspbian+0-9b181-4bpo9rpt1, mixed mode)

benhubert avatar Nov 11 '18 15:11 benhubert

I logged a similar issue: https://github.com/mycontroller-org/mycontroller/issues/495

mitchmitchell avatar Feb 08 '19 03:02 mitchmitchell

I'm having the same issue

Unexpected problem running servlet org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
[...]
Caused by: com.fasterxml.jackson.databind.JsonMappingException: java.lang.reflect.InaccessibleObjectException: Unable to make public com.sun.management.GcInfo com.sun.management.internal.GarbageCollectorExtImpl.getLastGcInfo() accessible: module jdk.management does not "exports com.sun.management.internal" to unnamed module @1fc2b765 (through reference chain: org.mycontroller.standalone.api.jaxrs.utils.StatusJVM["garbageCollectors"])
[...]
Caused by: java.lang.RuntimeException: java.lang.reflect.InaccessibleObjectException: Unable to make public com.sun.management.GcInfo com.sun.management.internal.GarbageCollectorExtImpl.getLastGcInfo() accessible: module jdk.management does not "exports com.sun.management.internal" to unnamed module

running on ubuntu with openjdk 11.0.3

gnomex avatar Jul 30 '19 13:07 gnomex

Any News on this?

Emmpunkt avatar Nov 23 '19 19:11 Emmpunkt

@Emmpunkt Planing to start version 2.x in the near future. So no plan to upgrade to Java 11. However, pull requests are welcome.

If you need a docker image with version openjdk 1.8, let me know I can produce a docker image.

jkandasa avatar Nov 25 '19 01:11 jkandasa

Hola tengo el mismo error y me dice que mi version tiene que ser 1.7 o mayor. Y yo tengo la versión 11. Cómo se podria arreglar eso? Gracias

potier97 avatar Apr 10 '20 07:04 potier97