Response being committed, means something in your chain, your servlet, your
filter, or your CustomResponseWrapper has already started to write a
response, and the effort to add a new session cookie cannot be performed at
that point in time.

Look closer at com.shandianshua.satoshi.online.api.http.filter.
ContentEnteiFilter.doFilter(ContentEnteiFilter.java:51)

Once the response headers have been sent, the response is "committed" and
changes to the response / headers can no longer be made.

The last call in your stacktrace, to Request.getSession() is attempting to
add an outgoing cookie for the session to the response, but the response
has already been started.

--
Joakim Erdfelt <[email protected]>
webtide.com <http://www.webtide.com/> - intalio.com/jetty
Expert advice, services and support from from the Jetty & CometD experts
eclipse.org/jetty - cometd.org

On Thu, Oct 9, 2014 at 8:12 AM, Pikachu Absol <[email protected]>
wrote:

> Hi,
>
> I write a filter to do something for the response, and host the war in Stable
> 9.2.3.v20140905
>
>     public void doFilter (
>         ServletRequest request,
>         ServletResponse response,
>         FilterChain chain
>     ) throws IOException, ServletException {
>         HttpServletRequest httpRequest = (HttpServletRequest) request;
>         HttpServletResponse httpResponse = (HttpServletResponse) response;
>
>         CustomResponseWrapper wrapper =
> new CustomResponseWrapper(httpResponse);
>         LOG.info("============is commited:\t" + response.isCommitted());
> *        chain.doFilter(request, wrapper);*
>
>          // code never get here
>     }
>
> I got the an exception below:
>
> 2014-10-09 22:58:23.124:WARN:oejs.ServletHandler:qtp2128697132-18:
> /v1/hello
> java.lang.IllegalStateException: Response is committed
>         at org.eclipse.jetty.server.Request.getSession(Request.java:1401)
>         at
> org.eclipse.jetty.security.authentication.FormAuthenticator.validateRequest(FormAuthenticator.java:260)
>         at
> org.eclipse.jetty.security.authentication.DeferredAuthentication.authenticate(DeferredAuthentication.java:68)
>         at
> org.eclipse.jetty.server.Request.getUserPrincipal(Request.java:1480)
>         at
> org.springframework.web.servlet.FrameworkServlet.getUsernameForRequest(FrameworkServlet.java:1022)
>         at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:958)
>         at
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:816)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
>         at
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:801)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>         at
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769)
>         at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1667)
>         at
> org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:172)
>         at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
>         at
> com.shandianshua.satoshi.online.api.http.filter.ContentEnteiFilter.doFilter(ContentEnteiFilter.java:51)
>         at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
>         at
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
>         at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>         at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
>         at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)
>         at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>         at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
>         at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
>         at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125)
>         at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
>         at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
>         at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059)
>         at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>         at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
>         at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
>         at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
>         at org.eclipse.jetty.server.Server.handle(Server.java:497)
>         at
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
>         at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)
>         at
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
>         at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:610)
>         at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:539)
>         at java.lang.Thread.run(Thread.java:745)
>
> Since I can't find any solutions or similar cases on Google, I switch to 
> Stable
> 8.1.16.v20140903 with the exactly same war, and then the problem just
> disappear, everything runs fine.
>
> Can somebody help ?
>
> Thanks!
>
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to