Hi Jan,

 Many thanks for the tip. We were able to figure out the problem, once we 
understood why the PrintWriter was getting closed.


 Turns out we had a mobile detection within the JSP that was forwarding the 
request to another JSP page. This was happening early enough so that it was not 
causing issues with Jetty 9.2.x, while it did cause the issue in Jetty 9.4.x


 We moved that code to a controller servlet and it seems to be working better 
now.


 Thanks again for the timely pointer.


Pankaj





ZeeMaps                                                                         
                                             http://www.zeemaps.com21060 
Homestead Road, Suite 150                                                       
                            [email protected]
Cupertino, CA 95014                                                             
                                                         408 914-2955
Like us on Facebook: http://www.facebook.com/zeemaps               Follow us on 
Twitter: http://twitter.com/zeemaps



---- On Mon, 04 Sep 2017 23:04:56 -0700 Jan Bartel<[email protected]> 
wrote ---- 

Pankaj,


Hhhm, looks like the PrintWriter has already been closed.  Can you put a 
breakpoint in org.eclipse.jetty.server.ResponseWriter.close() and see who is 
calling it? 


Also, are you using  HttpServletResponseWrappers? If so, make sure that if you 
have overridden getWriter() that you have also overridden getOutputStream().


Jan


 


On 5 September 2017 at 13:28, Pankaj K Garg <[email protected]> wrote:
Hi Jan,

 Thanks for taking a look at it.


 I don't have an IE, but I've tried in Safari and FF and direct access to the 
page works okay.


 I did try to put it in production briefly to test it out and got quite a few 
exceptions, so am thinking it's happening on direct access as well.


 It's very strange. BrowserStack sends out two requests: (1) probably when the 
machine is starting out to cache the page, and then (2) another request to the 
same page.


 The first one causes the exception. The second one does not. Both requests 
have a 200 response in the access log, but the first one has 3x the number of 
bytes transferred. The second one is correct.


 207.254.62.90 - - [04/Sep/2017:23:52:28 +0000] "GET /pub?group=1 HTTP/1.1" 200 
27859 
 184.169.130.92 - - [04/Sep/2017:23:52:34 +0000] "GET /pub?group=1 HTTP/1.1" 
200 8585


 The test site is at: https://m4s1.zeemaps.com/pub?group=1 just in case.


 Full stack trace follows.


Pankaj


2017-09-04 23:52:31.689:WARN:oejs.HttpChannel:qtp1076835071-13: /pub
javax.servlet.ServletException: org.apache.jasper.JasperException: 
org.eclipse.jetty.io.RuntimeIOException: org.eclipse.jetty.io.EofException: 
Stream closed
    at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
    at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:564)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
    at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at 
org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
    at 
org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
    at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
    at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
    at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673)
    at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591)
    at java.lang.Thread.run(Thread.java:748)
Caused by: 
org.apache.jasper.JasperException: org.eclipse.jetty.io.RuntimeIOException: 
org.eclipse.jetty.io.EofException: Stream closed
    at 
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:601)
    at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:481)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:833)
    at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
    at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
    at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
    at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:564)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
    at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at 
org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
    at 
org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
    at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
    at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
    at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673)
    at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591)
    at java.lang.Thread.run(Thread.java:748)
Caused by: 
org.eclipse.jetty.io.RuntimeIOException: org.eclipse.jetty.io.EofException: 
Stream closed
    at org.eclipse.jetty.server.ResponseWriter.isOpen(ResponseWriter.java:133)
    at org.eclipse.jetty.server.ResponseWriter.write(ResponseWriter.java:202)
    at 
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:112)
    at 
org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:184)
    at 
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:120)
    at 
org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
    at org.apache.jsp.emap_jsp._jspService(emap_jsp.java:693)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:833)
    at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
    at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
    at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
    at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:564)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
    at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at 
org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
    at 
org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
    at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
    at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
    at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673)
    at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591)
    at java.lang.Thread.run(Thread.java:748)
Caused by: 
org.eclipse.jetty.io.EofException: Stream closed
    at org.eclipse.jetty.server.ResponseWriter.isOpen(ResponseWriter.java:136)
    at org.eclipse.jetty.server.ResponseWriter.write(ResponseWriter.java:202)
    at 
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:112)
    at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:329)
    at java.io.Writer.write(Writer.java:157)
    at org.apache.jsp.emap_jsp._jspService(emap_jsp.java:625)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:833)
    at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
    at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
    at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
    at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
    at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:564)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
    at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at 
org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
    at 
org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
    at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
    at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
    at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673)
    at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591)
    at java.lang.Thread.run(Thread.java:748)
 INFO [23:52:36] (Get.java:doGet:53) - 34






ZeeMaps                                                                         
                                             http://www.zeemaps.com21060 
Homestead Road, Suite 150                                                       
                            [email protected]
Cupertino, CA 95014                                                             
                                                         408 914-2955
Like us on Facebook: http://www.facebook.com/zeemaps               Follow us on 
Twitter: http://twitter.com/zeemaps



---- On Mon, 04 Sep 2017 19:14:55 -0700 Jan Bartel <[email protected]> 
wrote ---- 

Pankaj,

Do you have the full stack trace? Also, have you tried using those versions of 
IE directly locally, not from within browserstack?


thanks
Jan


On 3 September 2017 at 07:45, Pankaj K Garg <[email protected]> wrote:
Hi,

We are trying to migrate a web app from Jetty 9.2 to 9.4.


 Everything seems to be working okay, except for some requests from IE 11, 14, 
15 we get a "Stream Closed" warning in the log for JSP files.


 Here's a top level snippet of the warning:


 2017-09-02 20:22:50.458:WARN:oejs.HttpChannel:qtp1076835071-12: 
/mapjavax.servlet.ServletException: org.apache.jasper.JasperException: 
org.eclipse.jetty.io.RuntimeIOException: org.eclipse.jetty.io.EofException: 
Stream closedn.handle(HandlerCollection.java:146)


 The page loads fine and the warning doesn't seem to impact the delivery of the 
web page.



 We tried out in several browsers in browserstack, and only IE seems to be 
causing this.


 Even more strange, browserstack running within Safari doesn't cause the 
warning, while running within Firefox it does.


 Stumped. Would appreciate any pointers.


 Thanks,


Pankaj



_______________________________________________
 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





-- 
Jan Bartel <[email protected]>

 www.webtide.com
 Expert assistance from the creators of Jetty and CometD





 
 _______________________________________________ 
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





-- 
Jan Bartel <[email protected]>

 www.webtide.com
 Expert assistance from the creators of Jetty and CometD





 
 _______________________________________________ 
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