Author: mgrigorov
Date: Tue Jul 19 07:34:19 2011
New Revision: 1148204

URL: http://svn.apache.org/viewvc?rev=1148204&view=rev
Log:
WICKET-3914 Wicket 1.5 violates servlet standard, Glassfish spews warnings

Set the request character encoding only if it is not already set and before 
reading the request parameters.


Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
    
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebRequest.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java?rev=1148204&r1=1148203&r2=1148204&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
 Tue Jul 19 07:34:19 2011
@@ -415,33 +415,37 @@ public abstract class WebApplication ext
         */
        WebRequest createWebRequest(HttpServletRequest servletRequest, final 
String filterPath)
        {
-               if (hasFilterFactoryManager())
+               if (servletRequest.getCharacterEncoding() == null)
                {
-                       for (AbstractRequestWrapperFactory factory : 
getFilterFactoryManager())
+                       try
                        {
-                               servletRequest = 
factory.getWrapper(servletRequest);
+                               String wicketAjaxHeader = 
servletRequest.getHeader(WebRequest.HEADER_AJAX);
+                               if (Strings.isTrue(wicketAjaxHeader))
+                               {
+                                       // WICKET-3908, WICKET-1816: Forms 
submitted with Ajax are always UTF-8 encoded
+                                       
servletRequest.setCharacterEncoding(CharEncoding.UTF_8);
+                               }
+                               else
+                               {
+                                       String requestEncoding = 
getRequestCycleSettings().getResponseRequestEncoding();
+                                       
servletRequest.setCharacterEncoding(requestEncoding);
+                               }
+                       }
+                       catch (UnsupportedEncodingException e)
+                       {
+                               throw new WicketRuntimeException(e);
                        }
                }
 
-               WebRequest webRequest = newWebRequest(servletRequest, 
filterPath);
-
-               try
+               if (hasFilterFactoryManager())
                {
-                       if (webRequest.isAjax())
-                       {
-                               // WICKET-3908: Forms submitted with Ajax are 
always UTF-8 encoded
-                               
servletRequest.setCharacterEncoding(CharEncoding.UTF_8);
-                       }
-                       else
+                       for (AbstractRequestWrapperFactory factory : 
getFilterFactoryManager())
                        {
-                               String requestEncoding = 
getRequestCycleSettings().getResponseRequestEncoding();
-                               
servletRequest.setCharacterEncoding(requestEncoding);
+                               servletRequest = 
factory.getWrapper(servletRequest);
                        }
                }
-               catch (UnsupportedEncodingException e)
-               {
-                       throw new RuntimeException(e);
-               }
+
+               WebRequest webRequest = newWebRequest(servletRequest, 
filterPath);
 
                return webRequest;
        }

Modified: 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebRequest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebRequest.java?rev=1148204&r1=1148203&r2=1148204&view=diff
==============================================================================
--- 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebRequest.java
 (original)
+++ 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebRequest.java
 Tue Jul 19 07:34:19 2011
@@ -39,7 +39,7 @@ public abstract class WebRequest extends
        /** marker for Ajax requests */
        protected static final String PARAM_AJAX = "wicket-ajax";
        /** marker for Ajax requests */
-       protected static final String HEADER_AJAX = "Wicket-Ajax";
+       public static final String HEADER_AJAX = "Wicket-Ajax";
        /** marker for Ajax-relative url */
        protected static final String PARAM_AJAX_BASE_URL = 
"wicket-ajax-baseurl";
        /** marker for Ajax-relative url */


Reply via email to