You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gn...@apache.org on 2009/03/19 15:15:46 UTC

svn commit: r756013 - in /geronimo/specs/trunk/geronimo-javamail_1.4_spec/src: main/java/javax/mail/internet/MimeMessage.java main/java/javax/mail/internet/MimePartDataSource.java test/java/javax/mail/internet/MimeTest.java

Author: gnodet
Date: Thu Mar 19 14:15:45 2009
New Revision: 756013

URL: http://svn.apache.org/viewvc?rev=756013&view=rev
Log:
GERONIMO-4591: Email attachments name can not be retrieved

Modified:
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimeMessage.java
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimePartDataSource.java
    geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/java/javax/mail/internet/MimeTest.java

Modified: geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimeMessage.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimeMessage.java?rev=756013&r1=756012&r2=756013&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimeMessage.java (original)
+++ geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimeMessage.java Thu Mar 19 14:15:45 2009
@@ -1337,7 +1337,7 @@
     /**
      * Set or clear a flag value.
      *
-     * @param flags  The set of flags to effect.
+     * @param flag   The set of flags to effect.
      * @param set    The value to set the flag to (true or false).
      *
      * @exception MessagingException

Modified: geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimePartDataSource.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimePartDataSource.java?rev=756013&r1=756012&r2=756013&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimePartDataSource.java (original)
+++ geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/main/java/javax/mail/internet/MimePartDataSource.java Thu Mar 19 14:15:45 2009
@@ -111,6 +111,13 @@
     }
 
     public String getName() {
+        try {
+            if (part instanceof MimeBodyPart) {
+                return ((MimeBodyPart) part).getFileName();
+            }
+        } catch (MessagingException mex) {
+            // ignore it
+        }
         return "";
     }
 

Modified: geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/java/javax/mail/internet/MimeTest.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/java/javax/mail/internet/MimeTest.java?rev=756013&r1=756012&r2=756013&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/java/javax/mail/internet/MimeTest.java (original)
+++ geronimo/specs/trunk/geronimo-javamail_1.4_spec/src/test/java/javax/mail/internet/MimeTest.java Thu Mar 19 14:15:45 2009
@@ -31,10 +31,13 @@
 import javax.mail.Session;
 
 import junit.framework.TestCase;
+import org.apache.geronimo.mail.util.Base64;
 
 public class MimeTest extends TestCase {
 
     public void testWriteRead() throws Exception {
+        System.setProperty("mail.mime.decodefilename", "true");
+
         Session session = Session.getDefaultInstance(new Properties(), null);
         MimeMessage mime = new MimeMessage(session);
         MimeMultipart parts = new MimeMultipart("related; type=\"text/xml\"; start=\"<xml>\"");
@@ -44,6 +47,9 @@
         parts.addBodyPart(xmlPart);
         MimeBodyPart jpegPart = new MimeBodyPart();
         jpegPart.setContentID("<jpeg>");
+        String filename = "filename";
+        String encodedFilename = "=?UTF-8?B?" + new String(Base64.encode(filename.getBytes())) + "?=";
+        jpegPart.setFileName(encodedFilename);
         jpegPart.setDataHandler(new DataHandler(new ByteArrayDataSource(new byte[] { 0, 1, 2, 3, 4, 5 }, "image/jpeg")));
         parts.addBodyPart(jpegPart);
         mime.setContent(parts);
@@ -70,6 +76,8 @@
 
         MimeBodyPart jpegPart2 = (MimeBodyPart) parts2.getBodyPart(1);
         assertEquals(jpegPart.getContentID(), jpegPart2.getContentID());
+        assertEquals(jpegPart.getFileName(), jpegPart2.getDataHandler().getName());
+        assertEquals(filename, jpegPart2.getDataHandler().getName());
         ByteArrayOutputStream jpegBaos = new ByteArrayOutputStream();
         copyInputStream(jpegPart.getDataHandler().getInputStream(), jpegBaos);
         ByteArrayOutputStream jpegBaos2 = new ByteArrayOutputStream();