You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2009/03/19 21:33:14 UTC

svn commit: r756178 - /servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/marshaler/DefaultMailMarshaler.java

Author: gnodet
Date: Thu Mar 19 20:33:14 2009
New Revision: 756178

URL: http://svn.apache.org/viewvc?rev=756178&view=rev
Log:
SMXCOMP-472: fix bad retrieval of the attachment name with geronimo javamail provider

Modified:
    servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/marshaler/DefaultMailMarshaler.java

Modified: servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/marshaler/DefaultMailMarshaler.java
URL: http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/marshaler/DefaultMailMarshaler.java?rev=756178&r1=756177&r2=756178&view=diff
==============================================================================
--- servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/marshaler/DefaultMailMarshaler.java (original)
+++ servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/marshaler/DefaultMailMarshaler.java Thu Mar 19 20:33:14 2009
@@ -22,6 +22,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.util.Date;
@@ -43,6 +44,7 @@
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
+import javax.mail.internet.MimeUtility;
 import javax.mail.util.ByteArrayDataSource;
 
 import org.apache.commons.logging.Log;
@@ -487,7 +489,19 @@
                             // from part.getDisposition() are clearly attachments
                             DataHandler att = part.getDataHandler();
                             // this is clearly a attachment
-                            nmsg.addAttachment(att.getName(), att);
+                            // Try to find the correct name to work around some bugs in the geronimo javamail
+                            String name = att.getName();
+                            if (name == null || name.length() == 0) {
+                                name = part.getFileName();
+                            }
+                            if (name != null) {
+                                try {
+                                    name = MimeUtility.decodeText(name);
+                                } catch (UnsupportedEncodingException e) {
+                                    // ignore it
+                                }
+                            }
+                            nmsg.addAttachment(name, att);
                         } else {
                             // inline part without name?
                             text = part.getContent() != null ? part.getContent().toString() : "null";