You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
and handling GET / request, DefaultServlet forwards it to welcome file to path "index.html".
Guice-servlet wraps the forwarded request and sets newRequestUri=="index.html", but with the same servletPath=="/" and null pathInfo.
So when DefaultServlet() sees the forwarded request again, it sums servletPath + pathInfo and gets "/" again, not "index.html", falling into infinite loop. Here's the stacktrace:
java.lang.StackOverflowError
...
at javax.servlet.ServletRequestWrapper.removeAttribute(ServletRequestWrapper.java:302)
at javax.servlet.ServletRequestWrapper.removeAttribute(ServletRequestWrapper.java:302)
at javax.servlet.ServletRequestWrapper.removeAttribute(ServletRequestWrapper.java:302)
at javax.servlet.ServletRequestWrapper.removeAttribute(ServletRequestWrapper.java:302)
at com.google.inject.servlet.ManagedServletPipeline$1.doServiceImpl(ManagedServletPipeline.java:156)
at com.google.inject.servlet.ManagedServletPipeline$1.forward(ManagedServletPipeline.java:140)
at org.eclipse.jetty.servlet.DefaultServlet.sendWelcome(DefaultServlet.java:600)
at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:486)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277)
at com.google.inject.servlet.ManagedServletPipeline$1.doServiceImpl(ManagedServletPipeline.java:154)
at com.google.inject.servlet.ManagedServletPipeline$1.forward(ManagedServletPipeline.java:140)
at org.eclipse.jetty.servlet.DefaultServlet.sendWelcome(DefaultServlet.java:600)
at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:486)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277)
at com.google.inject.servlet.ManagedServletPipeline$1.doServiceImpl(ManagedServletPipeline.java:154)
at com.google.inject.servlet.ManagedServletPipeline$1.forward(ManagedServletPipeline.java:140)
at org.eclipse.jetty.servlet.DefaultServlet.sendWelcome(DefaultServlet.java:600)
at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:486)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277)
at com.google.inject.servlet.ManagedServletPipeline$1.doServiceImpl(ManagedServletPipeline.java:154)
at com.google.inject.servlet.ManagedServletPipeline$1.forward(ManagedServletPipeline.java:140)
at org.eclipse.jetty.servlet.DefaultServlet.sendWelcome(DefaultServlet.java:600)
at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:486)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277)
at com.google.inject.servlet.ManagedServletPipeline$1.doServiceImpl(ManagedServletPipeline.java:154)
at com.google.inject.servlet.ManagedServletPipeline$1.forward(ManagedServletPipeline.java:140)
at org.eclipse.jetty.servlet.DefaultServlet.sendWelcome(DefaultServlet.java:600)
at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:486)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277)
at com.google.inject.servlet.ManagedServletPipeline$1.doServiceImpl(ManagedServletPipeline.java:154)
at com.google.inject.servlet.ManagedServletPipeline$1.forward(ManagedServletPipeline.java:140)
at org.eclipse.jetty.servlet.DefaultServlet.sendWelcome(DefaultServlet.java:600)
at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:486)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287)
The text was updated successfully, but these errors were encountered:
I'm not sure whether this bug is in Jetty or Guice-Servlet.
Guice Servlet 4.0
Jetty 9.3.7.v20160115 (servlet-api-3.1.0)
This may or may not relate to or even caused by #372.
Having this config:
and handling
GET /
request, DefaultServlet forwards it to welcome file to path "index.html".Guice-servlet wraps the forwarded request and sets newRequestUri=="index.html", but with the same servletPath=="/" and null pathInfo.
So when DefaultServlet() sees the forwarded request again, it sums servletPath + pathInfo and gets "/" again, not "index.html", falling into infinite loop. Here's the stacktrace:
The text was updated successfully, but these errors were encountered: