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