[ 
https://issues.apache.org/activemq/browse/SMXCOMP-472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50624#action_50624
 ] 

Guillaume Nodet commented on SMXCOMP-472:
-----------------------------------------

The correct patch would be more something like:

{code}
Index: src/test/java/javax/mail/internet/MimeTest.java
===================================================================
--- src/test/java/javax/mail/internet/MimeTest.java     (revision 755277)
+++ src/test/java/javax/mail/internet/MimeTest.java     (working copy)
@@ -44,6 +44,7 @@
         parts.addBodyPart(xmlPart);
         MimeBodyPart jpegPart = new MimeBodyPart();
         jpegPart.setContentID("<jpeg>");
+        jpegPart.setFileName("filename");
         jpegPart.setDataHandler(new DataHandler(new ByteArrayDataSource(new 
byte[] { 0, 1, 2, 3, 4, 5 }, "image/jpeg")));
         parts.addBodyPart(jpegPart);
         mime.setContent(parts);
@@ -70,6 +71,7 @@
 
         MimeBodyPart jpegPart2 = (MimeBodyPart) parts2.getBodyPart(1);
         assertEquals(jpegPart.getContentID(), jpegPart2.getContentID());
+        assertEquals(jpegPart.getFileName(), 
jpegPart2.getDataHandler().getName());
         ByteArrayOutputStream jpegBaos = new ByteArrayOutputStream();
         copyInputStream(jpegPart.getDataHandler().getInputStream(), jpegBaos);
         ByteArrayOutputStream jpegBaos2 = new ByteArrayOutputStream();
Index: src/main/java/javax/mail/internet/MimePartDataSource.java
===================================================================
--- src/main/java/javax/mail/internet/MimePartDataSource.java   (revision 
755277)
+++ src/main/java/javax/mail/internet/MimePartDataSource.java   (working copy)
@@ -111,6 +111,13 @@
     }
 
     public String getName() {
+        try {
+            if (part instanceof MimeBodyPart) {
+                return ((MimeBodyPart) part).getFileName();
+            }
+        } catch (MessagingException mex) {
+            // ignore it
+        }
         return "";
     }
 
Index: src/main/java/javax/mail/internet/MimeMessage.java
===================================================================
--- src/main/java/javax/mail/internet/MimeMessage.java  (revision 755277)
+++ src/main/java/javax/mail/internet/MimeMessage.java  (working copy)
@@ -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
{code}

> ServiceMix-Mail broken in SMX4
> ------------------------------
>
>                 Key: SMXCOMP-472
>                 URL: https://issues.apache.org/activemq/browse/SMXCOMP-472
>             Project: ServiceMix Components
>          Issue Type: Bug
>          Components: servicemix-mail
>    Affects Versions: servicemix-mail-2009.01
>         Environment: Linux 2.6
> ServiceMix 4 (trunk)
>            Reporter: Lars Heinemann
>
> Somehow the mail component is broken in SMX4. Didn't checked yet for SMX3.
> When receiving a mail with attachment from a IMAP server I get the following 
> exception:
> {noformat}
> 15:51:16,712 | ERROR | ix-mail-thread-5 | MailComponent                    | 
> common.endpoints.PollingEndpoint  222 | Caught exception while polling: 
> org.apache.geronimo.javamail.util.ResponseFormatException: String token 
> expected in response: (
> org.apache.geronimo.javamail.util.ResponseFormatException: String token 
> expected in response: (
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPResponseTokenizer.readString(IMAPResponseTokenizer.java:620)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPBodyStructure.parseMessageExtensions(IMAPBodyStructure.java:171)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPBodyStructure.parseSinglepartBodyStructure(IMAPBodyStructure.java:153)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPBodyStructure.parseBodyStructure(IMAPBodyStructure.java:76)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPBodyStructure.<init>(IMAPBodyStructure.java:62)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPBodyStructure.parseMultipartBodyStructure(IMAPBodyStructure.java:87)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPBodyStructure.parseBodyStructure(IMAPBodyStructure.java:73)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPBodyStructure.<init>(IMAPBodyStructure.java:62)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPFetchResponse.<init>(IMAPFetchResponse.java:54)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPResponseStream.readResponse(IMAPResponseStream.java:124)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPConnection.receiveResponse(IMAPConnection.java:396)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPConnection.sendCommand(IMAPConnection.java:324)
>       at 
> org.apache.geronimo.javamail.store.imap.connection.IMAPConnection.fetchBodyStructure(IMAPConnection.java:917)
>       at 
> org.apache.geronimo.javamail.store.imap.IMAPMessage.loadBodyStructure(IMAPMessage.java:943)
>       at 
> org.apache.geronimo.javamail.store.imap.IMAPMessage.getDataHandler(IMAPMessage.java:756)
>       at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:927)
>       at 
> org.apache.servicemix.mail.marshaler.DefaultMailMarshaler.copyBodyAndAttachments(DefaultMailMarshaler.java:464)
>       at 
> org.apache.servicemix.mail.marshaler.DefaultMailMarshaler.convertMailToJBI(DefaultMailMarshaler.java:75)
>       at 
> org.apache.servicemix.mail.MailPollerEndpoint.poll(MailPollerEndpoint.java:254)
>       at 
> org.apache.servicemix.common.endpoints.PollingEndpoint$PollSchedulerTask$1.run(PollingEndpoint.java:202)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>       at java.lang.Thread.run(Thread.java:595)
> {noformat}
> If I receive a text/plain email without attachments I get the following 
> warning and the body property in NMSG is empty afterwards:
> {noformat}
> 15:52:16,645 | WARN  | ix-mail-thread-7 | DefaultMailMarshaler             | 
> l.marshaler.DefaultMailMarshaler  537 | The content of the mail message is 
> not supported by this component. (java.io.ByteArrayInputStream)
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to