File Upload fails for multiple clicks
-------------------------------------

                 Key: WW-3567
                 URL: https://issues.apache.org/jira/browse/WW-3567
             Project: Struts 2
          Issue Type: Bug
    Affects Versions: 2.1.8
            Reporter: vinay naik


We are getting the following exception when we upload a document & click on 
"Submit" button multiple times quickly.  We are setting request type to 
multipart & we have token interceptor in place to handle multiple submissions 
of the same request. However we have found out that the application fails even 
before reaching the first interceptor in interceptor stack. I suspect that the 
FileUploadBase class is trying to access the file input stream simultaneously 
in two threads causing the IOFileUploadException. In this case the token name & 
token value comes as null in first interceptor.

This works properly when we don't upload any file & clicks "Submit" multiple 
times quickly.


[1/26/11 22:48:00:844 EST] 00000732 Dispatcher    I 
com.opensymphony.xwork2.util.logging.commons.CommonsLogger info Unable to find 
'struts.multipart.saveDir' property setting. Defaulting to 
javax.servlet.context.tempdir
[1/26/11 22:48:02:331 EST] 00000732 MultiPartRequ W 
com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn Unable to parse 
request
                                 
org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing 
of multipart/form-data request failed. Async IO operation failed, reason: RC: 
55  The specified network resource or device is no longer available.

                at 
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
                at 
org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parse(JakartaMultiPartRequest.java:93)
                at 
org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.<init>(MultiPartRequestWrapper.java:75)
                at 
org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:708)
                at 
org.apache.struts2.dispatcher.FilterDispatcher.prepareDispatcherAndWrapRequest(FilterDispatcher.java:327)
                at 
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:367)
                at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
                at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
                at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
                at 
com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:832)
                at 
com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:742)
                at 
com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:695)
                at 
com.ibm.ws.wswebcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:101)
                at 
com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.invokeFilters(DefaultExtensionProcessor.java:833)
                at 
com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:771)
                at 
com.ibm.ws.wswebcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:113)
                at 
com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3444)
                at 
com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267)
                at 
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:815)
                at 
com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1466)
                at 
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:119)
                at 
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
                at 
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
                at 
com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
                at 
com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1818)
                at 
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
                at 
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
                at 
com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
                at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
                at 
com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
                at 
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
                at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
                at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
Caused by: java.io.IOException: Async IO operation failed, reason: RC: 55  The 
specified network resource or device is no longer available.

                at 
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:671)
                ... 2 more



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to