Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-4362

ExecAndWait Interceptor with FileUploadInterceptor incompatibility

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

      Description

      When using execAndWait interceptor with FileUpload interceptor, the uploaded file is removed before processing.

      Steps to reproduce :
      On a sample project, add a simple action which expects a file and a struts.xml of the form :

      <!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
          "http://struts.apache.org/dtds/struts-2.3.dtd  ">
      <struts>
      	<constant name="struts.enable.DynamicMethodInvocation" value="false" />
      	<constant name="struts.devMode" value="true" />
      	<constant name="struts.action.extension" value="," />
      	<package name="accueil" namespace="/" extends="struts-default">
         <action name="">
               <result name="success">WEB-INF/jsp/accueil.jsp</result>
            </action>
      		<action name="accueil">
      			<result name="success">WEB-INF/jsp/accueil.jsp</result>
      		</action>
      		<action name="simple" class="net.micedre.action.SimpleAction">
               <interceptor-ref name="executeAndWaitStack" />
           
      			<result name="error">WEB-INF/jsp/accueil.jsp</result>
      			<result name="success">WEB-INF/jsp/accueil.jsp</result>
               <result name="wait">WEB-INF/jsp/wait.jsp</result>
      		</action>
      	</package>
      </struts>
      

      In the case of the attached example, the uploaded file is deleted before any treatment by SimpleAction on it.

      This is caused by the StrutsFilter which cleans up the request leading to a deletion (in the case of jakarta file-upload) before the BackgroundProcessThread created by the execAndWait interceptor runs (or during).

        Attachments

        1. test-eawfu.zip
          6 kB
          Cédric Couralet

          Activity

            People

            • Assignee:
              lukaszlenart Lukasz Lenart
              Reporter:
              cedricc Cédric Couralet

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment