Author: olegk
Date: Wed May 13 09:23:01 2015
New Revision: 1679163
URL: http://svn.apache.org/r1679163
Log:
MIME4J-244: QP decoder incorrectly throws IOException in strict mode when LF is
the first character in content stream
Contributed by Detelin Hadzhiev <detelin.hadzhiev at softwareag.com>
Modified:
james/mime4j/branches/apache-mime4j-0.7/core/src/main/java/org/apache/james/mime4j/codec/QuotedPrintableInputStream.java
james/mime4j/branches/apache-mime4j-0.7/core/src/test/java/org/apache/james/mime4j/codec/QuotedPrintableInputStreamTest.java
Modified:
james/mime4j/branches/apache-mime4j-0.7/core/src/main/java/org/apache/james/mime4j/codec/QuotedPrintableInputStream.java
URL:
http://svn.apache.org/viewvc/james/mime4j/branches/apache-mime4j-0.7/core/src/main/java/org/apache/james/mime4j/codec/QuotedPrintableInputStream.java?rev=1679163&r1=1679162&r2=1679163&view=diff
==============================================================================
---
james/mime4j/branches/apache-mime4j-0.7/core/src/main/java/org/apache/james/mime4j/codec/QuotedPrintableInputStream.java
(original)
+++
james/mime4j/branches/apache-mime4j-0.7/core/src/main/java/org/apache/james/mime4j/codec/QuotedPrintableInputStream.java
Wed May 13 09:23:01 2015
@@ -45,6 +45,7 @@ public class QuotedPrintableInputStream
private int pos = 0; // current index into encoded buffer
private int limit = 0; // current size of encoded buffer
+ private boolean lastWasCR = false;
private boolean closed;
private final DecodeMonitor monitor;
@@ -181,7 +182,6 @@ public class QuotedPrintableInputStream
return index == from ? -1 : index - from;
}
- boolean lastWasCR = false;
while (pos < limit && index < to) {
int b = encoded[pos++] & 0xFF;
Modified:
james/mime4j/branches/apache-mime4j-0.7/core/src/test/java/org/apache/james/mime4j/codec/QuotedPrintableInputStreamTest.java
URL:
http://svn.apache.org/viewvc/james/mime4j/branches/apache-mime4j-0.7/core/src/test/java/org/apache/james/mime4j/codec/QuotedPrintableInputStreamTest.java?rev=1679163&r1=1679162&r2=1679163&view=diff
==============================================================================
---
james/mime4j/branches/apache-mime4j-0.7/core/src/test/java/org/apache/james/mime4j/codec/QuotedPrintableInputStreamTest.java
(original)
+++
james/mime4j/branches/apache-mime4j-0.7/core/src/test/java/org/apache/james/mime4j/codec/QuotedPrintableInputStreamTest.java
Wed May 13 09:23:01 2015
@@ -95,6 +95,12 @@ public class QuotedPrintableInputStreamT
assertEquals("Soft line Hard line\r\n", new String(read(decoder),
"ISO8859-1"));
}
+ public void testSpaceBeforeSoftBreakStrictMode() throws IOException,
UnsupportedEncodingException {
+ ByteArrayInputStream bis = new ByteArrayInputStream("text before eq
sign =\r\n text after LF".getBytes("US-ASCII"));
+ QuotedPrintableInputStream decoder = new
QuotedPrintableInputStream(bis,DecodeMonitor.STRICT);
+ assertEquals("text before eq sign text after LF", new
String(read(decoder), "ISO8859-1"));
+ }
+
public void testSoftBreakTrailingBalnksDecode() throws IOException,
UnsupportedEncodingException {
ByteArrayInputStream bis = new ByteArrayInputStream("Soft line = \t
\r\nHard line \r\n".getBytes("US-ASCII"));
QuotedPrintableInputStream decoder = new
QuotedPrintableInputStream(bis);