Looks like SiteMesh is doing a dispatcher.forward() after the proxy request.

I can't imagine that ever working under a valid proxy scenario.
Wouldn't the request + response be either underway / committed or done /
completed by that point?

--
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 Wed, Oct 8, 2014 at 11:54 AM, Matt Deimel <[email protected]> wrote:

> Apparently responding in Nabble did not carry over all of my content in
> <raw> tags. So here's another attempt:
>
> This is a very late response - among other delays there was some work in
> the SiteMesh community to make SiteMesh3 asynchronous, which will get
> around some of the issues. Unfortunately I'm still finding a similar
> problem now when working through this situation.
>
> I've updated to Jetty 9.2.3.v20140905
>
> The project is a Jetty Proxy with a SiteMesh filter. Trying to decorate
> proxied content.
>
> When I use AsyncProxyServlet$Transparent as the servlet in web.xml I
> receive the following error:
> 2014-10-08 13:43:28.593:WARN:oejh.HttpParser:qtp2070935783-20: badMessage:
> java.lang.IllegalStateException: too much data after closed for
> HttpReceiverOverHTTP@55b31984 on HttpConnectionOverHTTP@61505510(l:/
> 127.0.0.1:60231 <-> r:localhost/127.0.0.1:8060)
>
> When I use ProxyServlet$Transparent as the servlet I receive the following
> stack trace:
> 2014-10-08 13:46:44.033:WARN:oejs.HttpChannelState:qtp1489294793-22:
> java.lang.NullPointerException
> at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:130)
> at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:72)
> at org.sitemesh.webapp.WebAppContext.dispatch(WebAppContext.java:168)
> at org.sitemesh.webapp.WebAppContext.decorate(WebAppContext.java:143)
> at org.sitemesh.BaseSiteMeshContext.decorate(BaseSiteMeshContext.java:39)
> at org.sitemesh.webapp.SiteMeshFilter.postProcess(SiteMeshFilter.java:83)
> at
> org.sitemesh.webapp.contentfilter.ContentBufferingFilter.processInternally(ContentBufferingFilter.java:217)
> at
> org.sitemesh.webapp.contentfilter.ContentBufferingFilter$2.onComplete(ContentBufferingFilter.java:175)
> at
> org.eclipse.jetty.server.HttpChannelState.completed(HttpChannelState.java:506)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:421)
> at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:262)
> at
> org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1173)
> at
> org.eclipse.jetty.server.HttpChannelState.complete(HttpChannelState.java:452)
> at
> org.eclipse.jetty.server.AsyncContextState.complete(AsyncContextState.java:92)
> at
> org.eclipse.jetty.proxy.ProxyServlet.onResponseSuccess(ProxyServlet.java:560)
> at
> org.eclipse.jetty.proxy.ProxyServlet$ProxyResponseListener.onComplete(ProxyServlet.java:815)
> at
> org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:193)
> at
> org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:185)
> at
> org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:484)
> at
> org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:393)
> at
> org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:255)
> at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1465)
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1275)
> at
> org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:142)
> at
> org.eclipse.jetty.client.http.HttpReceiverOverHTTP.readAndParse(HttpReceiverOverHTTP.java:107)
> at
> org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:70)
> at
> org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:65)
> at
> org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:75)
> at
> org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:100)
> 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:722)
>
> The NullPointerException now appears to be the same root problem that
> started this thread, that HttpChannel.getCurrentHttpChannel() returns null
> in Dispatcher.forward().
> protected void forward(ServletRequest request, ServletResponse response,
> DispatcherType dispatch) throws ServletException, IOException
>     {
>         Request baseRequest=(request instanceof
> Request)?((Request)request):HttpChannel.getCurrentHttpChannel().getRequest();
>
> In both cases I can verify that the proxy request is being made, since
> it's another application I control, and it's receiving a proper request.
>
> Any suggestions on how to get around either of these problems? Thanks.
>
> On Wed, Oct 8, 2014 at 1:52 PM, mdeimel <[email protected]> wrote:
>
>> This is a very late response - among other delays there was some work in
>> the
>> SiteMesh community to make SiteMesh3 asynchronous, which will get around
>> some of the issues. Unfortunately I'm still finding a similar problem now
>> when working through this situation.
>>
>> I've updated to Jetty 9.2.3.v20140905
>>
>> The project is a Jetty Proxy with a SiteMesh filter. Trying to decorate
>> proxied content.
>>
>> When I use AsyncProxyServlet$Transparent as the servlet in web.xml I
>> receive
>> the following error:
>>
>>
>> When I use ProxyServlet$Transparent as the servlet I receive the following
>> stack trace:
>>
>>
>> The NullPointerException now appears to be the same root problem that
>> started this thread, that HttpChannel.getCurrentHttpChannel() returns null
>> in Dispatcher.forward().
>>
>>
>> In both cases I can verify that the proxy request is being made, since
>> it's
>> another application I control, and it's receiving a proper request.
>>
>> Any suggestions on how to get around either of these problems? Thanks.
>>
>>
>>
>> --
>> View this message in context:
>> http://jetty.4.x6.nabble.com/jetty-users-Null-HttpChannel-getCurrentHttpChannel-in-ServletHandler-doFilter-tp4962799p4963207.html
>> Sent from the Jetty User mailing list archive at Nabble.com.
>> _______________________________________________
>> 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
>
_______________________________________________
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