2015-05-12 46 views
0

我目前正在开发Vaadin应用程序。我正在处理的功能是创建两个PDF,将它们合并,然后将其作为临时文件下载到客户端。只有几次,我得到这个奇怪的IOException,没有参考我的代码。任何想法可能会导致它?获取java.io.IOException:从DownloadStream关闭流

堆栈跟踪:

java.io.IOException: Stream Closed 
    at java.io.FileInputStream.readBytes(Native Method) 
    at java.io.FileInputStream.read(Unknown Source) 
    at com.vaadin.server.DownloadStream.writeResponse(DownloadStream.java:304) 
    at com.vaadin.server.AbstractClientConnector.handleConnectorRequest(AbstractClientConnector.java:646) 
    at com.vaadin.server.ConnectorResourceHandler.handleRequest(ConnectorResourceHandler.java:83) 
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408) 
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:350) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) 
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) 
    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:1061) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
    at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) 
    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:310) 
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) 
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) 
    at java.lang.Thread.run(Unknown Source) 

回答

0

什么可能导致它的主意?

java.io.IOException: stream closed是由关闭流然后继续使用它引起的。这是你的代码中的一个错误。

NB这是引起任何同行呢,特别不被同行关闭连接的末引起的。

+0

感谢您的回复!这也是我得到的。奇怪的是,当我在本地计算机上运行此应用程序时,我从来没有得到错误。我有一台服务器,有50多个用户在线。有什么办法可以在我的本地测试服务器上创建此错误,以更好地理解我的流? – Mikkel

+0

您可以通过执行我上面所述的操作来创建错误,但我无法看清这一点。你必须做的是修复它,即找到抛出异常之前关闭流的路径。 – EJP

+0

关于为什么这个错误不会定期显示的想法?它有时会弹出。 – Mikkel

相关问题