[
https://issues.apache.org/activemq/browse/SMXCOMP-472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50632#action_50632
]
Guillaume Nodet commented on SMXCOMP-472:
-----------------------------------------
Can you try applying the following patch on the spec and run the tests:
{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)
@@ -35,6 +35,8 @@
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 +46,7 @@
parts.addBodyPart(xmlPart);
MimeBodyPart jpegPart = new MimeBodyPart();
jpegPart.setContentID("<jpeg>");
+
jpegPart.setFileName("=?UTF-8?B?U3RhdHVzw7xiZXJnw6RuZ2UgU3Bvb2xlci5vZHA=?=");
jpegPart.setDataHandler(new DataHandler(new ByteArrayDataSource(new
byte[] { 0, 1, 2, 3, 4, 5 }, "image/jpeg")));
parts.addBodyPart(jpegPart);
mime.setContent(parts);
@@ -70,6 +73,8 @@
MimeBodyPart jpegPart2 = (MimeBodyPart) parts2.getBodyPart(1);
assertEquals(jpegPart.getContentID(), jpegPart2.getContentID());
+ assertEquals(jpegPart.getFileName(),
jpegPart2.getDataHandler().getName());
+ assertEquals("Status?berg?nge Spooler.odp",
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}
It clearly shows that the decoding works fine with the given system property
set.
So it must be that either the property has not been set correctly (maybe try
setting it via the {{etc/system.properties}} file) or that you're not using the
right version of the spec somehow.
> 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.