Dmitriy Zlobenets
Dmitriy Zlobenets

Reputation: 43

Using Java 8 with Embedded jetty Error

I work with Jetty. But when I trying to use in my code Java 8 futures I see error when open first page:

23-05-2017 16:34:27:896 WARN      ContextHandler$Context                   log                                      unavailable
java.lang.ArrayIndexOutOfBoundsException: 27745
    at org.objectweb.asm.ClassReader.readClass(ClassReader.java:2015)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:469)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:425)
    at org.glassfish.jersey.server.internal.scanning.AnnotationAcceptingListener.process(AnnotationAcceptingListener.java:167)
    at org.glassfish.jersey.server.ResourceConfig.scanClasses(ResourceConfig.java:850)
    at org.glassfish.jersey.server.ResourceConfig._getClasses(ResourceConfig.java:808)
    at org.glassfish.jersey.server.ResourceConfig.getClasses(ResourceConfig.java:723)
    at org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1120)
    at org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1093)
    at org.glassfish.jersey.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1089)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:275)
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:262)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:349)
    at javax.servlet.GenericServlet.init(GenericServlet.java:244)
    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:637)
    at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:498)
    at org.eclipse.jetty.servlet.ServletHolder.ensureInstance(ServletHolder.java:785)
    at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:770)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:538)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1561)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:118)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:564)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:745)
23-05-2017 16:34:27:898 WARN      HttpChannel                              handleException                          /gains/login/checksession
javax.servlet.ServletException: javax.servlet.ServletException: org.glassfish.jersey.servlet.ServletContainer-69d45cca@3758310d==org.glassfish.jersey.servlet.ServletContainer,jsp=null,order=-1,inst=false
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:138)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:564)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javax.servlet.ServletException: org.glassfish.jersey.servlet.ServletContainer-69d45cca@3758310d==org.glassfish.jersey.servlet.ServletContainer,jsp=null,order=-1,inst=false

We thought we avoid that issue if we update Jetty libs but issue still reproduces.

We use Jetty 9.4.

Upvotes: 1

Views: 837

Answers (1)

Mike Adamenko
Mike Adamenko

Reputation: 3002

I guess you are using the old version of asm.jar with newer compiled Java bytecode.

For Java 8 bytecode, use asm 5.0.1+

See Strange java.lang.ArrayIndexOutOfBoundsException thrown on jetty startup

Dont't forget to update cglib.jar to a proper version because it has the asm as a dependency

Upvotes: 1

Related Questions