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";
+ }
}