You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by lr...@apache.org on 2015/03/15 07:12:18 UTC

svn commit: r1666780 - /wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/multipart/MultiPartParser.java

Author: lresende
Date: Sun Mar 15 06:12:17 2015
New Revision: 1666780

URL: http://svn.apache.org/r1666780
Log:
WINK-371 - Force UTF-8 when reading Multi-Part MIME.

Modified:
    wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/multipart/MultiPartParser.java

Modified: wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/multipart/MultiPartParser.java
URL: http://svn.apache.org/viewvc/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/multipart/MultiPartParser.java?rev=1666780&r1=1666779&r2=1666780&view=diff
==============================================================================
--- wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/multipart/MultiPartParser.java (original)
+++ wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/multipart/MultiPartParser.java Sun Mar 15 06:12:17 2015
@@ -22,11 +22,14 @@ package org.apache.wink.common.internal.
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
 
 import javax.ws.rs.core.MultivaluedMap;
 
 import org.apache.wink.common.internal.CaseInsensitiveMultivaluedMap;
 import org.apache.wink.common.internal.i18n.Messages;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /*
  * TODO: Add the option to get the preamble
@@ -37,6 +40,9 @@ import org.apache.wink.common.internal.i
 public class MultiPartParser {
     public final static String             SEP                 = "\n";           //$NON-NLS-1$
 
+    private static final Logger            logger              = LoggerFactory.getLogger(MultiPartParser.class);
+    private final static String            UTF8                = "UTF-8";           //$NON-NLS-1$
+
     private InputStream                    is;
     private byte[]                         boundaryBA;
     static private byte[]                  boundaryDelimiterBA = "--".getBytes(); //$NON-NLS-1$
@@ -64,7 +70,11 @@ public class MultiPartParser {
 
     public MultiPartParser(InputStream is, String boundary) {
         this.is = is;
-        boundaryBA = ("--" + boundary).getBytes(); //$NON-NLS-1$
+        try {
+            boundaryBA = ("--" + boundary).getBytes(UTF8); //$NON-NLS-1$
+        } catch(UnsupportedEncodingException e) {
+            logger.debug("Error parsing multi part: " + e.getMessage(), e);
+        }
         // make sure to allocate a buffer that is at least double then the
         // boundary length
         int buffLength = Math.max(8192, boundaryBA.length * 2);
@@ -297,7 +307,7 @@ public class MultiPartParser {
             return null;
         }
 
-        String hdr = new String(buff, buffIdx, lineIdx);
+        String hdr = new String(buff, buffIdx, lineIdx, UTF8);
         buffIdx += lineIdx + breakeSize;
         return hdr;
     }