Author: olegk
Date: Tue Dec 13 17:45:52 2011
New Revision: 1213804
URL: http://svn.apache.org/viewvc?rev=1213804&view=rev
Log:
MIME4J-209: Regex pattern used by DecoderUtil disallowed question mark in the
encoded text
Modified:
james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java
james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java
Modified:
james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java
URL:
http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java?rev=1213804&r1=1213803&r2=1213804&view=diff
==============================================================================
---
james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java
(original)
+++
james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java
Tue Dec 13 17:45:52 2011
@@ -35,7 +35,7 @@ import org.apache.james.mime4j.util.Char
public class DecoderUtil {
private static final Pattern PATTERN_ENCODED_WORD = Pattern.compile(
- "(.*?)=\\?([^\\?]+?)\\?(\\w)\\?([^\\?]+?)\\?=", Pattern.DOTALL);
+ "(.*?)=\\?(.+?)\\?(\\w)\\?(.+?)\\?=", Pattern.DOTALL);
/**
* Decodes a string containing quoted-printable encoded data.
Modified:
james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java
URL:
http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java?rev=1213804&r1=1213803&r2=1213804&view=diff
==============================================================================
---
james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java
(original)
+++
james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/codec/DecoderUtilTest.java
Tue Dec 13 17:45:52 2011
@@ -107,6 +107,11 @@ public class DecoderUtilTest extends Tes
assertEquals("variable ${target.nl}",
DecoderUtil.decodeEncodedWords("=?utf-8?Q?variable=20${target.nl}?="));
}
+ // see MIME4J-209
+ public void testEncodedTextMayContainQuestionMark() {
+ assertEquals("?",
DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q???="));
+ }
+
public void testNonWhiteSpaceBetweenEncodedWordsIsRetained() {
assertEquals("a b c",
DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q?a?= b =?ISO-8859-1?Q?c?="));
assertEquals("a\rb\nc",
DecoderUtil.decodeEncodedWords("=?ISO-8859-1?Q?a?=\rb\n=?ISO-8859-1?Q?c?="));