You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "jagub zhang (JIRA)" <ji...@apache.org> on 2011/06/21 03:44:48 UTC

[jira] [Commented] (WW-3567) File Upload fails for multiple clicks

    [ https://issues.apache.org/jira/browse/WW-3567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052313#comment-13052313 ] 

jagub zhang commented on WW-3567:
---------------------------------

I did it, but no any exception happend.
I think it was IBM Http Server 's bug.

http://www.coderanch.com/t/59427/Struts/Struts-File-upload

> 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.
For more information on JIRA, see: http://www.atlassian.com/software/jira