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

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            lukaszlenart Lukasz Lenart
            cedricc Cédric Couralet
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment