Fix GERONIMO-4594. From this commit javamail 1.4 spec 1.7.2 or later is required.
git-svn-id: https://svn.apache.org/repos/asf/geronimo/javamail/trunk@1641698 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/pom.xml b/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/pom.xml
index fdc271c..2b012af 100644
--- a/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/pom.xml
+++ b/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/pom.xml
@@ -103,7 +103,8 @@
javax.imageio*;resolution:="optional",
javax.net.ssl*;resolution:="optional",
javax.security.sasl*;resolution:="optional",
- javax.security.auth.callback*;resolution:="optional"
+ javax.security.auth.callback*;resolution:="optional",
+ org.apache.geronimo.mail.james.mime4j.codec
</Import-Package>
</instructions>
<unpackBundle>true</unpackBundle>
diff --git a/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/store/imap/IMAPMimeBodyPart.java b/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/store/imap/IMAPMimeBodyPart.java
index 4a0859f..9370451 100644
--- a/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/store/imap/IMAPMimeBodyPart.java
+++ b/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/store/imap/IMAPMimeBodyPart.java
@@ -19,19 +19,18 @@
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
-import java.util.Enumeration;
+import java.util.Enumeration;
-import javax.activation.DataHandler;
-
-import javax.mail.IllegalWriteException;
+import javax.activation.DataHandler;
+import javax.mail.IllegalWriteException;
import javax.mail.MessagingException;
import javax.mail.Multipart;
-
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeUtility;
import org.apache.geronimo.javamail.store.imap.connection.IMAPBodyStructure;
import org.apache.geronimo.javamail.store.imap.connection.IMAPConnection;
+import org.apache.geronimo.mail.util.SessionUtil;
public class IMAPMimeBodyPart extends MimeBodyPart {
@@ -179,6 +178,16 @@
if (filename == null) {
filename = bodyStructure.mimeType.getParameter("name");
}
+
+ // if we have a name, we might need to decode this if an additional property is set.
+ if (filename != null && SessionUtil.getBooleanProperty(MIME_DECODEFILENAME, false)) {
+ try {
+ filename = MimeUtility.decodeText(filename);
+ } catch (UnsupportedEncodingException e) {
+ throw new MessagingException("Unable to decode filename", e);
+ }
+ }
+
return filename;
}
diff --git a/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/util/TraceInputStream.java b/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/util/TraceInputStream.java
index 05ef8c0..037585f 100644
--- a/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/util/TraceInputStream.java
+++ b/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/util/TraceInputStream.java
@@ -24,7 +24,7 @@
import java.io.InputStream;
import java.io.OutputStream;
-import org.apache.geronimo.mail.util.QuotedPrintableEncoderStream;
+import org.apache.geronimo.mail.james.mime4j.codec.QuotedPrintableOutputStream;
/**
* @version $Rev$ $Date$
@@ -50,7 +50,7 @@
super(in);
this.debug = debug;
if (encode) {
- this.traceStream = new QuotedPrintableEncoderStream(traceStream);
+ this.traceStream = new QuotedPrintableOutputStream(traceStream, false);
} else {
this.traceStream = traceStream;
}
diff --git a/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/util/TraceOutputStream.java b/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/util/TraceOutputStream.java
index f5aefe5..57ce0d4 100644
--- a/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/util/TraceOutputStream.java
+++ b/geronimo-javamail_1.4/geronimo-javamail_1.4_provider/src/main/java/org/apache/geronimo/javamail/util/TraceOutputStream.java
@@ -23,7 +23,7 @@
import java.io.IOException;
import java.io.OutputStream;
-import org.apache.geronimo.mail.util.QuotedPrintableEncoderStream;
+import org.apache.geronimo.mail.james.mime4j.codec.QuotedPrintableOutputStream;
/**
* @version $Rev$ $Date$
@@ -49,7 +49,7 @@
super(out);
this.debug = debug;
if (encode) {
- this.traceStream = new QuotedPrintableEncoderStream(traceStream);
+ this.traceStream = new QuotedPrintableOutputStream(traceStream, false);
} else {
this.traceStream = traceStream;
}
diff --git a/geronimo-javamail_1.4/pom.xml b/geronimo-javamail_1.4/pom.xml
index 7e601bc..1e4cd5c 100644
--- a/geronimo-javamail_1.4/pom.xml
+++ b/geronimo-javamail_1.4/pom.xml
@@ -72,7 +72,7 @@
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
- <version>1.7.1</version>
+ <version>1.7.2-SNAPSHOT</version>
</dependency>
<dependency>