You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2007/11/29 01:26:46 UTC

svn commit: r599222 - in /tapestry/tapestry5/trunk/tapestry-upload/src: main/java/org/apache/tapestry/upload/services/MultipartDecoderImpl.java test/java/org/apache/tapestry/upload/services/MultipartDecoderImplTest.java

Author: hlship
Date: Wed Nov 28 16:26:45 2007
New Revision: 599222

URL: http://svn.apache.org/viewvc?rev=599222&view=rev
Log:
TAPESTRY-1723: tapestry-upload does not use character encoding

Modified:
    tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry/upload/services/MultipartDecoderImpl.java
    tapestry/tapestry5/trunk/tapestry-upload/src/test/java/org/apache/tapestry/upload/services/MultipartDecoderImplTest.java

Modified: tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry/upload/services/MultipartDecoderImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry/upload/services/MultipartDecoderImpl.java?rev=599222&r1=599221&r2=599222&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry/upload/services/MultipartDecoderImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-upload/src/main/java/org/apache/tapestry/upload/services/MultipartDecoderImpl.java Wed Nov 28 16:26:45 2007
@@ -24,6 +24,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.File;
+import java.io.UnsupportedEncodingException;
 import java.util.List;
 import java.util.Map;
 
@@ -110,7 +111,17 @@
         {
             if (item.isFormField())
             {
-                wrapper.addParameter(item.getFieldName(), item.getString());
+                String fieldValue;
+                try
+                {
+                    fieldValue = item.getString(request.getCharacterEncoding());
+                }
+                catch (UnsupportedEncodingException e)
+                {
+                    // TODO maybe log exception with level warn
+                    fieldValue = item.getString();
+                }
+                wrapper.addParameter(item.getFieldName(), fieldValue);
             }
             else
             {

Modified: tapestry/tapestry5/trunk/tapestry-upload/src/test/java/org/apache/tapestry/upload/services/MultipartDecoderImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-upload/src/test/java/org/apache/tapestry/upload/services/MultipartDecoderImplTest.java?rev=599222&r1=599221&r2=599222&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-upload/src/test/java/org/apache/tapestry/upload/services/MultipartDecoderImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-upload/src/test/java/org/apache/tapestry/upload/services/MultipartDecoderImplTest.java Wed Nov 28 16:26:45 2007
@@ -74,6 +74,10 @@
     public void processFileItemsCreatesWrappedRequestAndSetsNonFileParameters() throws Exception
     {
         HttpServletRequest request = mockHttpServletRequest();
+
+        train_getCharacterEncoding(request, "UTF-8");
+        train_getCharacterEncoding(request, "UTF-8");
+
         MultipartDecoderImpl decoder = new MultipartDecoderImpl("/tmp", 888, -1, -1);
         List<FileItem> fileItems = Arrays.asList(createValueItem("one", "first"), createValueItem("two", "second"));
         replay();
@@ -169,4 +173,8 @@
         return item;
     }
 
+    protected final void train_getCharacterEncoding(HttpServletRequest request, String encoding)
+    {
+        expect(request.getCharacterEncoding()).andReturn(encoding);
+    }
 }