Author: rich
Date: Sun Mar  6 22:18:39 2005
New Revision: 156399

URL: http://svn.apache.org/viewcvs?view=rev&rev=156399
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-392 : 
PageFlowRequestWrapper.get() needs to handle MultipartRequestWrapper

This fix was contributed by Carlin Rogers.

tests: netui drt/bvt (WinXP)
BB: self (linux)


Modified:
    
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
    
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java

Modified: 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java?view=diff&r1=156398&r2=156399
==============================================================================
--- 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
 Sun Mar  6 22:18:39 2005
@@ -35,6 +35,7 @@
 import org.apache.struts.config.ControllerConfig;
 import org.apache.struts.config.FormBeanConfig;
 import org.apache.struts.config.ModuleConfig;
+import org.apache.struts.upload.MultipartRequestWrapper;
 
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
@@ -1073,5 +1074,19 @@
     public static boolean ignoreIncludeServletPath( ServletRequest request )
     {
         return request.getAttribute( IGNORE_INCLUDE_SERVLET_PATH_ATTR ) != 
null;
+    }
+
+    /**
+     * If the given request is a MultipartRequestWrapper (Struts class that 
doesn't extend
+     * HttpServletRequestWrapper), return the wrapped request; otherwise, 
return the given request.
+     */
+    public static ServletRequest unwrapMultipart( ServletRequest request )
+    {
+        if ( request instanceof MultipartRequestWrapper )
+        {
+            request = ( ( MultipartRequestWrapper ) request ).getRequest();
+        }
+
+        return request;
     }
 }

Modified: 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java?view=diff&r1=156398&r2=156399
==============================================================================
--- 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java
 Sun Mar  6 22:18:39 2005
@@ -47,12 +47,15 @@
     
     public static PageFlowRequestWrapper get( ServletRequest servletRequest )
     {
+        servletRequest = InternalUtils.unwrapMultipart( servletRequest );
         assert servletRequest instanceof PageFlowRequestWrapper : 
servletRequest.getClass().getName();
         return ( PageFlowRequestWrapper ) servletRequest;
     }
     
     public static PageFlowRequestWrapper unwrap( ServletRequest servletRequest 
)
     {
+        servletRequest = InternalUtils.unwrapMultipart( servletRequest );
+        
         while ( ! ( servletRequest instanceof PageFlowRequestWrapper ) )
         {
             assert servletRequest instanceof ServletRequestWrapper : 
servletRequest.getClass().getName();


Reply via email to