Author: rich
Date: Thu Jun  9 22:14:08 2005
New Revision: 189899

URL: http://svn.apache.org/viewcvs?rev=189899&view=rev
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-803 : multipart forms 
cannot handle multibyte characters

tests: bvt in netui (WinXP)
BB: self (linux)


Modified:
    
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.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/PageFlowPageFilter.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java?rev=189899&r1=189898&r2=189899&view=diff
==============================================================================
--- 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
 Thu Jun  9 22:14:08 2005
@@ -112,7 +112,7 @@
                     _log.debug( "Request has error status code " + 
errStatusCode + ".  Skipping filter." );
                 }
                 
-                chain.doFilter( request, response );        
+                continueChain( request, response, chain );
                 return;           
             }
             
@@ -128,7 +128,7 @@
                                 " does not have an appropriate file extension. 
 Skipping filter." );
                 }
                 
-                chain.doFilter( request, response );        
+                continueChain( request, response, chain );
                 return;
             }
             
@@ -247,7 +247,7 @@
         }
         else
         {
-            chain.doFilter( request, response );            
+            continueChain( request, response, chain );
         }
     }
     
@@ -291,7 +291,7 @@
                                 
                         try
                         {
-                            chain.doFilter( request, response );
+                            continueChain( request, response, chain );
                         }
                         catch ( ServletException servletEx )
                         {
@@ -329,17 +329,22 @@
         else
         {
             ImplicitObjectUtil.loadImplicitObjects( request, response, 
_servletContext, null );
-            
-            //
-            // Remove our request wrapper -- the page doesn't need to see this.
-            //
-            if ( request instanceof PageFlowRequestWrapper )
-            {
-                request = ( ( PageFlowRequestWrapper ) request 
).getHttpRequest();
-            }
-            
-            chain.doFilter( request, response );
+            continueChain( request, response, chain );
+        }
+    }
+    
+    private static void continueChain( ServletRequest request, ServletResponse 
response, FilterChain chain )
+        throws IOException, ServletException
+    {
+        //
+        // Remove our request wrapper -- the page doesn't need to see this.
+        //
+        if ( request instanceof PageFlowRequestWrapper )
+        {
+            request = ( ( PageFlowRequestWrapper ) request ).getHttpRequest();
         }
+        
+        chain.doFilter( request, response );
     }
     
     private boolean handleException( Throwable th, FlowController fc, 
HttpServletRequest 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?rev=189899&r1=189898&r2=189899&view=diff
==============================================================================
--- 
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
 Thu Jun  9 22:14:08 2005
@@ -219,4 +219,17 @@
         
         return retVal;
     }
+    
+    /**
+     * This override returns "utf-8" if the character encoding in the request 
is null.  It works around a Struts
+     * issue (http://issues.apache.org/bugzilla/show_bug.cgi?id=29668), where 
CommonsMultipartRequestHandler uses
+     * the character encoding from the request, which causes problems if the 
encoding wasn't specified in the request
+     * (as it usually never is).  This is tracked in Beehive's JIRA as 
+     * http://issues.apache.org/jira/browse/BEEHIVE-803 .
+     */
+    public String getCharacterEncoding()
+    {
+        String encoding = super.getCharacterEncoding();
+        return encoding != null ? encoding : "utf-8";
+    }
 }


Reply via email to