Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-13495

Spin is incompatible with JDK 16

XMLWordPrintable

    • Icon: Bug Report Bug Report
    • Resolution: Won't Fix
    • Icon: L3 - Default L3 - Default
    • None
    • None
    • spin
    • None

      Current version of Spin is incompatible with Java 16.
      I'm aware that Camunda BPM only supports up to Java 14 acording to the Release announcements, but I'm raising it as it may take a while to fix to resolve.

       This normally (when using Spin) appeared on startup in all java version from 11 to 15

      WARNING: An illegal reflective access operation has occurred
       WARNING: Illegal reflective access by spinjar.com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/[snip]/.m2/repository/org/camunda/spin/camunda-spin-dataformat-all/1.10.0/camunda-spin-dataformat-all-1.10.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int)
       WARNING: Please consider reporting this to the maintainers of spinjar.com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1
       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

      The vague threat on the last line (that we'd all kinda got used to seeing and ignoring has apparently been realised)

      And in Java 16 you now get

      Caused by: java.lang.ExceptionInInitializerError
       at spinjar.com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:83)
       at spinjar.com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:125)
       at spinjar.com.sun.xml.bind.v2.runtime.reflect.Accessor$GetterSetterReflection.optimize(Accessor.java:399)
       at spinjar.com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.<init>(SingleElementLeafProperty.java:87)
       at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
       at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
       at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
       at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
       at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
       at spinjar.com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:128)
       at spinjar.com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:181)
       at spinjar.com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:509)
       at spinjar.com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:168)
       at spinjar.com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:509)
       at spinjar.com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:168)
       at spinjar.com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:509)
       at spinjar.com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:326)
       at spinjar.com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:141)
       at spinjar.com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1157)
       ...
       Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @4de4b452
       at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
       at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
       at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
       at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
       at spinjar.com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1.run(Injector.java:177)
       at spinjar.com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1.run(Injector.java:174)
       at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
       at spinjar.com.sun.xml.bind.v2.runtime.reflect.opt.Injector.<clinit>(Injector.java:172)
       ... 176 more

      Test with

      % java --version
      openjdk 16 2021-03-16
      OpenJDK Runtime Environment (build 16+36-2231)
      OpenJDK 64-Bit Server VM (build 16+36-2231, mixed mode, sharing)
      

        This is the controller panel for Smart Panels app

              Unassigned Unassigned
              Stexxen Steven
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: