jgraph / docker-drawio

Dockerized draw.io based on whichever is the most secure image at the time.
GNU General Public License v3.0
1.49k stars 361 forks source link

GitlabAuthServlet compiled with wrong Java Runtime #83

Closed SNB-hz closed 2 years ago

SNB-hz commented 2 years ago

I tried connecting my local drawio setup to my local Gitlab. This failed with Drawio displaying a "Unknown Error" due to the call to "/gitlab" returning a 404. The localhost log of the container showed the reason as a compilation / Java Runtime Version mismatch:

The image used:

Image: docker.io/jgraph/drawio:20.0.3 Image ID: docker.io/jgraph/drawio@sha256:2296ef64d36574451c9edf2b0e7c204de804ac51715a738ad11d2b20404ee5ea

The error in question: 24-Jun-2022 13:30:44.171 INFO [http-nio-8080-exec-9] org.apache.catalina.core.ApplicationContext.log Marking servlet [GitlabAuthServlet] as unavailable 24-Jun-2022 13:30:44.172 SEVERE [http-nio-8080-exec-9] org.apache.catalina.core.StandardWrapperValve.invoke Allocate exception for servlet [GitlabAuthServlet] java.lang.UnsupportedClassVersionError: com/mxgraph/online/GitlabAuthServlet has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class [com.mxgraph.online.GitlabAuthServlet]) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2515) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:877) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1413) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1257) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:535) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:516) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1071) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:789) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:128) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:119) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:356) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:867) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1760) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:750)

davidjgraph commented 2 years ago

"GitlabAuthServlet has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0"

there is your error...

SNB-hz commented 2 years ago

thanks for your reply, but I'm a beginner and don't fully understand... The image available at Dockerhub is built via this repo, no? The Java runtime andGitlabAuthServlet are part of said image, so the place to fix a mismatch would be this repo I think?

If this is not the right place to report such an issue, could you please point me in the direction of the right place?

davidjgraph commented 2 years ago

version 55 is java 11, version 52 is java 8. You're running java 8, run at least java 11....