diff options
author | Jan Bartel | 2010-07-01 04:33:35 +0000 |
---|---|---|
committer | Jan Bartel | 2010-07-01 04:33:35 +0000 |
commit | 5631fd46369fbb54fe97e654f0fc7b03f8323f46 (patch) | |
tree | 9a9eb26429ba61f625974b9ee75429d8b429b2f5 | |
parent | 327431461e278c8508662401ff8ee4afcfdcea8b (diff) | |
download | org.eclipse.jetty.project-5631fd46369fbb54fe97e654f0fc7b03f8323f46.tar.gz org.eclipse.jetty.project-5631fd46369fbb54fe97e654f0fc7b03f8323f46.tar.xz org.eclipse.jetty.project-5631fd46369fbb54fe97e654f0fc7b03f8323f46.zip |
Use BufferedInputStream to read multipart content so CRLF can be removed
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/branches/jetty-8@2060 7e9141cc-0065-0410-87d8-b60c137991c4
-rw-r--r-- | jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartInputStream.java | 13 | ||||
-rw-r--r-- | jetty-util/src/test/java/org/eclipse/jetty/util/MultiPartInputStreamTest.java | 18 |
2 files changed, 19 insertions, 12 deletions
diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartInputStream.java b/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartInputStream.java index f464dc4c97..6eb82e4951 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartInputStream.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartInputStream.java @@ -283,7 +283,7 @@ public class MultiPartInputStream */ public MultiPartInputStream (InputStream in, String contentType, MultipartConfigElement config) { - _in = in; + _in = new BufferedInputStream(in); _contentType = contentType; _config = config; if (_config == null) @@ -463,11 +463,14 @@ public class MultiPartInputStream // this is not a boundary if(cr) part.write(13); + if(lf) - part.write(10); + part.write(10); + cr=lf=false; if(b>0) part.write(byteBoundary,0,b); + b=-1; part.write(c); } @@ -477,8 +480,10 @@ public class MultiPartInputStream { if(cr) part.write(13); + if(lf) part.write(10); + cr=lf=false; part.write(byteBoundary,0,b); b=-1; @@ -494,9 +499,11 @@ public class MultiPartInputStream } // handle CR LF if(cr) - part.write(13); + part.write(13); + if(lf) part.write(10); + cr=(c==13); lf=(c==10||state==10); if(state==10) diff --git a/jetty-util/src/test/java/org/eclipse/jetty/util/MultiPartInputStreamTest.java b/jetty-util/src/test/java/org/eclipse/jetty/util/MultiPartInputStreamTest.java index b3b4f1d392..b4835a48bd 100644 --- a/jetty-util/src/test/java/org/eclipse/jetty/util/MultiPartInputStreamTest.java +++ b/jetty-util/src/test/java/org/eclipse/jetty/util/MultiPartInputStreamTest.java @@ -34,16 +34,16 @@ public class MultiPartInputStreamTest extends TestCase { protected String _contentType = "multipart/form-data, boundary=AaB03x"; protected String _multi = - "--AaB03x\n"+ - "content-disposition: form-data; name=\"field1\"\n"+ + "--AaB03x\r\n"+ + "content-disposition: form-data; name=\"field1\"\r\n"+ "\r\n"+ - "Joe Blow\n"+ - "--AaB03x\n"+ - "content-disposition: form-data; name=\"stuff\"; filename=\"stuff.txt\"\n"+ - "Content-Type: text/plain\n"+ + "Joe Blow\r\n"+ + "--AaB03x\r\n"+ + "content-disposition: form-data; name=\"stuff\"; filename=\"stuff.txt\"\r\n"+ + "Content-Type: text/plain\r\n"+ "\r\n"+ - "000000000000000000000000000000000000000000000000000\n"+ - "--AaB03x--"; + "000000000000000000000000000000000000000000000000000\r\n"+ + "--AaB03x--\r\n"; protected String _dirname = System.getProperty("java.io.tmpdir")+File.separator+"myfiles-"+System.currentTimeMillis(); @@ -112,7 +112,7 @@ public class MultiPartInputStreamTest extends TestCase throws Exception { MultipartConfigElement config = new MultipartConfigElement(_dirname, 1024, 3072, 50); - MultiPartInputStream mpis = new MultiPartInputStream(new ByteArrayInputStream(_multi.getBytes()), + MultiPartInputStream mpis = new MultiPartInputStream(new ByteArrayInputStream(_multi.getBytes()), _contentType, config); |