Good catch.
Please file a bug at bugs.eclipse.org about this so we can track it.

Looking at the history of changes to RequestLogHandler it seems a change to
make it support Async requests caused that change.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=411216


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


On Thu, Aug 1, 2013 at 9:20 AM, potter_ru <[email protected]> wrote:

> Hi, all
>
> After jetty upgrade from 8.1.11 to 8.1.12 we got error with stacktrace:
>
> java.lang.ClassCastException: 
> org.codehaus.groovy.grails.web.sitemesh.GrailsContentBufferingResponse cannot 
> be cast to org.eclipse.jetty.server.Response
>         at 
> org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:90)
>         at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
>         at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>         at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>         at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:276)
>         at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103)
>         at 
> org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:314)
>
> Compare RequestLogHandler code in 8.1.11 version:
>
>  public void handle(String target, final Request baseRequest, 
> HttpServletRequest request, final HttpServletResponse response)
>             throws IOException, ServletException
>     {
>     ...
>             if (_requestLog != null && 
> DispatcherType.REQUEST.equals(baseRequest.getDispatcherType()))
>             {
>                 _requestLog.log(baseRequest, (Response)response);
>             }
>     ...
>     }
>
>     public void handle(String target, final Request baseRequest, 
> HttpServletRequest request, final HttpServletResponse response)
>             throws IOException, ServletException
>     {
>     ...
>             else
>                 _requestLog.log(baseRequest, (Response)response);
>     ...
>     }
>
> We can see from above, that in 8.1.11 only DispatcherType.REQUEST type
> requests were logged, but in 8.1.12 all types of requests are logging.
>
> For our Grails web application it is a problem, because Grails framework
> uses GrailsContentBufferingResponse for FORWARD-ed type of requests.
>
> We can locally fix it by returning back *if* check for
> baseRequest.getDispatcherType(), but I think that this issue can bite other
> jetty users and better to be fixed in jetty main source tree.
>
> --
>
> Best regards
>
> Igor
>
> ------------------------------
> View this message in context: RequestLogHandler in 8.1.12 fails to handle
> forwarded requests in 
> grails<http://jetty.4.x6.nabble.com/RequestLogHandler-in-8-1-12-fails-to-handle-forwarded-requests-in-grails-tp4960952.html>
> Sent from the Jetty User mailing list 
> archive<http://jetty.4.x6.nabble.com/Jetty-User-f3247280.html>at Nabble.com.
>
> _______________________________________________
> jetty-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
>
_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to