2

I developed a web project with Java EE technology that has a module upload images and files. I am using the library commons-fileupload-1.2.2.jar. For several days the system works properly, but at a particular time jumps an error, like this:

org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed.
java.util.concurrent.TimeoutException
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:351)
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:115)
    at controller.FileUploadServletPathEasyRead.doPost(FileUploadServletPathEasyRead.java:110)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.IOException: java.util.concurrent.TimeoutException
    at org.glassfish.grizzly.nio.transport.TCPNIOTransportFilter.handleRead(TCPNIOTransportFilter.java:90)
    at org.glassfish.grizzly.filterchain.TransportFilter.handleRead(TransportFilter.java:173)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.read(DefaultFilterChain.java:351)
    at org.glassfish.grizzly.filterchain.FilterChainContext.read(FilterChainContext.java:695)
    at org.glassfish.grizzly.http.io.InputBuffer.blockingRead(InputBuffer.java:1119)
    at org.glassfish.grizzly.http.server.io.ServerInputBuffer.blockingRead(ServerInputBuffer.java:95)
    at org.glassfish.grizzly.http.io.InputBuffer.fill(InputBuffer.java:1143)
    at org.glassfish.grizzly.http.io.InputBuffer.read(InputBuffer.java:353)
    at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:267)
    at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:270)
    at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:999)
    at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:903)
    at java.io.InputStream.read(InputStream.java:101)
    at org.apache.commons.fileupload.util.Streams.copy(Streams.java:100)
    at org.apache.commons.fileupload.util.Streams.copy(Streams.java:70)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:347)
    ... 32 more
Caused by: java.util.concurrent.TimeoutException
    at org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorReader.read(TemporarySelectorReader.java:126)
    at org.glassfish.grizzly.nio.tmpselectors.TemporarySelectorReader.read(TemporarySelectorReader.java:75)
    at org.glassfish.grizzly.AbstractReader.read(AbstractReader.java:72)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransportFilter.handleRead(TCPNIOTransportFilter.java:77)
    ... 50 more]]

And from then on no longer works. It is necessary to reboot the server. So it's always a work extended hours until failure and to restart.

BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
  • Never seen this one before. I checked line 371 of version 1.3.1 `FileUploadBase` class, but it contains only an `}`. Are you sure you're using the version you think you're using? Which container make/version exactly is this webapp deployed to? – BalusC Aug 20 '15 at 09:43
  • Sorry, I'm actually using the 1.2.2 – Esteban Etayo Gil Aug 20 '15 at 10:09
  • Well, this opens the possibility to upgrade to latest and retry. Do so and update if necessary the question. This way we can exclude an already long fixed bug from being the cause. – BalusC Aug 20 '15 at 10:10
  • After changing the version, it has worked well but one day already failed again – Esteban Etayo Gil Aug 21 '15 at 07:49
  • Can you update the question to include the (full) stack trace matching 1.3.1? – BalusC Aug 21 '15 at 07:59
  • this is te error: [2015-08-24T08:40:15.831+0200] [glassfish 4.1] [SEVERE] [] [] [tid: _ThreadID=29 _ThreadName=Thread-9] [timeMillis: 1440398415831] [levelValue: 1000] [[ org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. java.util.concurrent.TimeoutException at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:351) at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:115) – Esteban Etayo Gil Aug 24 '15 at 07:47
  • The question, not the comment. The full stack, including all root causes. – BalusC Aug 24 '15 at 07:50
  • You appear to be using a Servlet 3.0+ compatible container. Is there any specific reason you're using Apache Commons FileUpload instead of Servlet 3.0 native API `request.getPart()`? See also http://stackoverflow.com/questions/2422468/how-to-upload-files-to-server-using-jsp-servlet/ In any case, the stack trace suggests that the server expected more data from the client, but the client didn't send anything anymore. This may or may not be a bug in the server itself. – BalusC Aug 25 '15 at 05:48
  • the problem is jumping. I changed the connection from a connection pool , and I changed all file uploads using Servlet 3.0 The current situation is this : http://stackoverflow.com/questions/32561839/timeout-in-request-getpart-in-servlet-3-0 – Esteban Etayo Gil Sep 16 '15 at 16:08

0 Answers0