Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.NullPointerException initializing embedded servlet #4064

Closed
irinacen opened this issue Sep 6, 2019 · 8 comments
Closed

java.lang.NullPointerException initializing embedded servlet #4064

irinacen opened this issue Sep 6, 2019 · 8 comments
Assignees
Labels
Bug For general bugs on Jetty side

Comments

@irinacen
Copy link

irinacen commented Sep 6, 2019

Embedded servlet raises a NullPointerException when servlet is called on version 9.4.20.v20190813.

Same issue with JDK8 and JDK11.

This DOESN'T happen in any of the previous versions I've tried, including inmediate previous version 9.4.19.v20190610, with the exactly same code, configuration and environment.

The issue can be reproduced running the "Minimal Servlet" sample from official documentation: https://www.eclipse.org/jetty/documentation/current/embedded-examples.html#embedded-minimal-servlet

When GET call is done to listening ip and port, the received response is HTTP ERROR 500 and the servlet error trace is:

2019-09-06 09:35:55.347:INFO::main: Logging initialized @616ms to org.eclipse.jetty.util.log.StdErrLog
2019-09-06 09:35:55.521:INFO:oejs.Server:main: jetty-9.4.20.v20190813; built: 2019-08-13T21:28:18.144Z; git: 84700530e645e812b336747464d6fbbf370c9a20; jvm 1.8.0_202-b08
2019-09-06 09:35:56.358:INFO:oejs.AbstractConnector:main: Started ServerConnector@dcf3e99{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2019-09-06 09:35:56.359:INFO:oejs.Server:main: Started @1651ms
2019-09-06 09:36:03.267:INFO:oeju.TypeUtil:qtp1394438858-16: JVM Runtime does not support Modules
2019-09-06 09:36:03.303:WARN:oejsh.ContextHandler:qtp1394438858-16: Unimplemented - use org.eclipse.jetty.servlet.ServletContextHandler
2019-09-06 09:36:03.306:WARN:oejsh.ContextHandler:qtp1394438858-16: unavailable
java.lang.NullPointerException
	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:656)
	at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:511)
	at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:791)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:539)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:190)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:494)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
	at java.lang.Thread.run(Thread.java:748)
2019-09-06 09:36:03.309:WARN:oejs.HttpChannel:qtp1394438858-16: /
javax.servlet.ServletException: carmelo.embeddedjetty.HelloServlet-2a33fae0@2c5b2ff6==carmelo.embeddedjetty.HelloServlet,jsp=null,order=-1,inst=false,async=true
	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:677)
	at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:511)
	at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:791)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:539)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:190)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:494)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
	at java.lang.Thread.run(Thread.java:748)
Caused by: 
java.lang.NullPointerException
	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:656)
	at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:511)
	at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:791)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:539)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:190)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:494)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
	at java.lang.Thread.run(Thread.java:748)
@joakime joakime self-assigned this Sep 6, 2019
@joakime joakime added the Bug For general bugs on Jetty side label Sep 6, 2019
@joakime joakime added this to To do in Jetty 9.4.21 via automation Sep 6, 2019
@joakime
Copy link
Contributor

joakime commented Sep 6, 2019

I've been going through and adding testing to the embedded examples via PR #4056
Haven't reached the MinimalServlets example yet.
I'll do that one next.

@joakime
Copy link
Contributor

joakime commented Sep 6, 2019

That's a badly named example.
It's really a MinimalServlet (no plural), and it has no ServletContext, doesn't support Filters, and a whole litany of other gotchas.

@joakime
Copy link
Contributor

joakime commented Sep 6, 2019

I have replicate this issue.

This change is what broke it - 819c379#diff-0d419a5cace2d3e164cd481d96f24734

joakime added a commit that referenced this issue Sep 6, 2019
+ Also made ContextHandler warning message about features
  that are unimplemented (and you should use ServletContextHandler)
  more clear. (this helped with diagnosing where the bug was
  in ServletHolder)

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
@joakime
Copy link
Contributor

joakime commented Sep 6, 2019

Commit 7618eae fixes this (and is now part of PR #4056)

@joakime joakime moved this from To do to In Progress in Jetty 9.4.21 Sep 6, 2019
@gregw
Copy link
Contributor

gregw commented Sep 10, 2019

@joakime It would be good to release 9.4.21 ASAP, so could 7618eae be handled separately from a general cleanup of the embedded code.... or can you complete that cleanup ASAP?

@joakime
Copy link
Contributor

joakime commented Sep 10, 2019

Let me make that PR non-draft, so you can review it.
Stay tuned.

@joakime
Copy link
Contributor

joakime commented Sep 10, 2019

@gregw PR #4056 is ready for review

@joakime
Copy link
Contributor

joakime commented Sep 11, 2019

PR #4056 is now merged into jetty-9.4.x.
Expect the fix in the upcoming 9.4.21 release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug For general bugs on Jetty side
Projects
No open projects
Jetty 9.4.21
  
Done
Development

No branches or pull requests

3 participants