[
https://issues.apache.org/jira/browse/CAMEL-9107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thierry Frossard updated CAMEL-9107:
------------------------------------
Description:
Hi,
I'm using Camel 2.15.2 with JDK 1.7 under Windows 7 and Eclipse 4.2.2 as
development tool.
My route reads from an IMAP server (IBM Lotus Notes). I have one big problem :
when the route handles an email, which contains a PDF attached file with a
semicolon in his name (for exemple my;pdf.pdf), then the route always throws
this exception :
Failed to extract body due to: Unable to load BODYSTRUCTURE.
4.08.15 15:10:11:313 CEST] 00000172 SystemOut O [15:10:11.313] WARN [Camel
(Mail vers Indexation) thread #0 - imap://myimapserver.ch]
org.apache.camel.util.CamelLogger.log:224 : Caused by:
[org.apache.camel.RuntimeCamelException - Failed to extract body due to: Unable
to load BODYSTRUCTURE. Exchange: Exchange[MailMessage@0x862446e3]. Message:
com.sun.mail.imap.IMAPMessage@16e6c70e]
org.apache.camel.RuntimeCamelException: Failed to extract body due to: Unable
to load BODYSTRUCTURE. Exchange: Exchange[MailMessage@0x862446e3]. Message:
com.sun.mail.imap.IMAPMessage@16e6c70e
at
org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:275)
~[camel-mail-2.15.2.jar:2.15.2]
at
org.apache.camel.component.mail.MailMessage.createBody(MailMessage.java:103)
~[camel-mail-2.15.2.jar:2.15.2]
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:41)
~[camel-core-2.15.2.jar:2.15.2]
at
org.apache.camel.component.mail.MailConsumer.createExchanges(MailConsumer.java:326)
~[camel-mail-2.15.2.jar:2.15.2]
at
org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:121)
~[camel-mail-2.15.2.jar:2.15.2]
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)
[camel-core-2.15.2.jar:2.15.2]
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)
[camel-core-2.15.2.jar:2.15.2]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:482)
[na:1.7.0]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:315)
[na:1.7.0]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:189)
[na:1.7.0]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
[na:1.7.0]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
[na:1.7.0]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:626)
[na:1.7.0]
at java.lang.Thread.run(Thread.java:804) [na:1.7.0]
Caused by: javax.mail.MessagingException: Unable to load BODYSTRUCTURE
at
com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1261)
~[com.ibm.ws.prereq.javamail.jar:na]
at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:597)
~[com.ibm.ws.prereq.javamail.jar:na]
at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1395)
~[com.ibm.ws.prereq.javamail.jar:na]
at
org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:247)
~[camel-mail-2.15.2.jar:2.15.2]
... 13 common frames omitted
Here is the route (very simple) :
@Override
public void configure() throws Exception {
from(getPropertiesUri())
/**/.to("log:dummy");
}
protected String getPropertiesUri() {
String prefix = Constants.MAIL.concat(provider);
StringBuilder uri = new StringBuilder();
uri.append(getContext().getProperties().get(prefix.concat(".protocol"))).append("://");
uri.append(getContext().getProperties().get(prefix.concat(".host"))).append("?");
uri.append("username=").append(getContext().getProperties().get(prefix.concat(".user")));
uri.append("&password=").append(getContext().getProperties().get(prefix.concat(".password")));
uri.append("&folderName=").append(getContext().getProperties().get(prefix.concat(".folder")));
uri.append("&unseen=").append(getContext().getProperties().get(prefix.concat(".unseen")));
uri.append("&consumer.delay=").append(getContext().getProperties().get(prefix.concat(".consuming.delay")));
uri.append("&delete=").append(getContext().getProperties().get(prefix.concat(".delete")));
String options =
getContext().getProperties().get(prefix.concat(".options"));
if (StringUtils.isNotBlank(options)) {
uri.append("&").append(getContext().getProperties().get(prefix.concat(".options")));
}
return uri.toString();
}
and the uri used to retrieve the mail :
imap://myimapserver.ch?username=username&password=password&folderName=IMAP&unseen=true&consumer.delay=30000&delete=true
I didn't find anywhere a similar problem with Camel mail component so I don't
know if it's a bug or if I'm doing something wrong.
Kind regards and thanks a lot for helping.
was:
Hi,
I'm using Camel 2.15.2 with JDK 1.7 under Windows 7 and Eclipse 4.2.2 as
development tool.
My route reads from an IMAP server (IBM Lotus Notes). I have one big problem :
when the route handles an email, which contains a PDF attached file with a
semicolon in his name, then the route always throws this exception :
Failed to extract body due to: Unable to load BODYSTRUCTURE.
4.08.15 15:10:11:313 CEST] 00000172 SystemOut O [15:10:11.313] WARN [Camel
(Mail vers Indexation) thread #0 - imap://myimapserver.ch]
org.apache.camel.util.CamelLogger.log:224 : Caused by:
[org.apache.camel.RuntimeCamelException - Failed to extract body due to: Unable
to load BODYSTRUCTURE. Exchange: Exchange[MailMessage@0x862446e3]. Message:
com.sun.mail.imap.IMAPMessage@16e6c70e]
org.apache.camel.RuntimeCamelException: Failed to extract body due to: Unable
to load BODYSTRUCTURE. Exchange: Exchange[MailMessage@0x862446e3]. Message:
com.sun.mail.imap.IMAPMessage@16e6c70e
at
org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:275)
~[camel-mail-2.15.2.jar:2.15.2]
at
org.apache.camel.component.mail.MailMessage.createBody(MailMessage.java:103)
~[camel-mail-2.15.2.jar:2.15.2]
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:41)
~[camel-core-2.15.2.jar:2.15.2]
at
org.apache.camel.component.mail.MailConsumer.createExchanges(MailConsumer.java:326)
~[camel-mail-2.15.2.jar:2.15.2]
at
org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:121)
~[camel-mail-2.15.2.jar:2.15.2]
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)
[camel-core-2.15.2.jar:2.15.2]
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)
[camel-core-2.15.2.jar:2.15.2]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:482)
[na:1.7.0]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:315)
[na:1.7.0]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:189)
[na:1.7.0]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
[na:1.7.0]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
[na:1.7.0]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:626)
[na:1.7.0]
at java.lang.Thread.run(Thread.java:804) [na:1.7.0]
Caused by: javax.mail.MessagingException: Unable to load BODYSTRUCTURE
at
com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1261)
~[com.ibm.ws.prereq.javamail.jar:na]
at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:597)
~[com.ibm.ws.prereq.javamail.jar:na]
at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1395)
~[com.ibm.ws.prereq.javamail.jar:na]
at
org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:247)
~[camel-mail-2.15.2.jar:2.15.2]
... 13 common frames omitted
Here is the route (very simple) :
@Override
public void configure() throws Exception {
from(getPropertiesUri())
/**/.to("log:dummy");
}
protected String getPropertiesUri() {
String prefix = Constants.MAIL.concat(provider);
StringBuilder uri = new StringBuilder();
uri.append(getContext().getProperties().get(prefix.concat(".protocol"))).append("://");
uri.append(getContext().getProperties().get(prefix.concat(".host"))).append("?");
uri.append("username=").append(getContext().getProperties().get(prefix.concat(".user")));
uri.append("&password=").append(getContext().getProperties().get(prefix.concat(".password")));
uri.append("&folderName=").append(getContext().getProperties().get(prefix.concat(".folder")));
uri.append("&unseen=").append(getContext().getProperties().get(prefix.concat(".unseen")));
uri.append("&consumer.delay=").append(getContext().getProperties().get(prefix.concat(".consuming.delay")));
uri.append("&delete=").append(getContext().getProperties().get(prefix.concat(".delete")));
String options =
getContext().getProperties().get(prefix.concat(".options"));
if (StringUtils.isNotBlank(options)) {
uri.append("&").append(getContext().getProperties().get(prefix.concat(".options")));
}
return uri.toString();
}
and the uri used to retrieve the mail :
imap://myimapserver.ch?username=username&password=password&folderName=IMAP&unseen=true&consumer.delay=30000&delete=true
I didn't find anywhere a similar problem with Camel mail component so I don't
know if it's a bug or if I'm doing something wrong.
Kind regards and thanks a lot for helping.
> Exception thrown when reading a mail with an attached file, which name
> contains a semicolon
> -------------------------------------------------------------------------------------------
>
> Key: CAMEL-9107
> URL: https://issues.apache.org/jira/browse/CAMEL-9107
> Project: Camel
> Issue Type: Bug
> Components: camel-mail
> Affects Versions: 2.15.2
> Environment: Productive
> Reporter: Thierry Frossard
>
> Hi,
> I'm using Camel 2.15.2 with JDK 1.7 under Windows 7 and Eclipse 4.2.2 as
> development tool.
> My route reads from an IMAP server (IBM Lotus Notes). I have one big problem
> : when the route handles an email, which contains a PDF attached file with a
> semicolon in his name (for exemple my;pdf.pdf), then the route always throws
> this exception :
> Failed to extract body due to: Unable to load BODYSTRUCTURE.
> 4.08.15 15:10:11:313 CEST] 00000172 SystemOut O [15:10:11.313] WARN
> [Camel (Mail vers Indexation) thread #0 - imap://myimapserver.ch]
> org.apache.camel.util.CamelLogger.log:224 : Caused by:
> [org.apache.camel.RuntimeCamelException - Failed to extract body due to:
> Unable to load BODYSTRUCTURE. Exchange: Exchange[MailMessage@0x862446e3].
> Message: com.sun.mail.imap.IMAPMessage@16e6c70e]
> org.apache.camel.RuntimeCamelException: Failed to extract body due to: Unable
> to load BODYSTRUCTURE. Exchange: Exchange[MailMessage@0x862446e3]. Message:
> com.sun.mail.imap.IMAPMessage@16e6c70e
> at
> org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:275)
> ~[camel-mail-2.15.2.jar:2.15.2]
> at
> org.apache.camel.component.mail.MailMessage.createBody(MailMessage.java:103)
> ~[camel-mail-2.15.2.jar:2.15.2]
> at
> org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:41)
> ~[camel-core-2.15.2.jar:2.15.2]
> at
> org.apache.camel.component.mail.MailConsumer.createExchanges(MailConsumer.java:326)
> ~[camel-mail-2.15.2.jar:2.15.2]
> at
> org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:121)
> ~[camel-mail-2.15.2.jar:2.15.2]
> at
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)
> [camel-core-2.15.2.jar:2.15.2]
> at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)
> [camel-core-2.15.2.jar:2.15.2]
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:482)
> [na:1.7.0]
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:315)
> [na:1.7.0]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:189)
> [na:1.7.0]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
> [na:1.7.0]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
> [na:1.7.0]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:626)
> [na:1.7.0]
> at java.lang.Thread.run(Thread.java:804) [na:1.7.0]
> Caused by: javax.mail.MessagingException: Unable to load BODYSTRUCTURE
> at
> com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1261)
> ~[com.ibm.ws.prereq.javamail.jar:na]
> at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:597)
> ~[com.ibm.ws.prereq.javamail.jar:na]
> at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1395)
> ~[com.ibm.ws.prereq.javamail.jar:na]
> at
> org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:247)
> ~[camel-mail-2.15.2.jar:2.15.2]
> ... 13 common frames omitted
> Here is the route (very simple) :
> @Override
> public void configure() throws Exception {
> from(getPropertiesUri())
> /**/.to("log:dummy");
> }
> protected String getPropertiesUri() {
> String prefix = Constants.MAIL.concat(provider);
> StringBuilder uri = new StringBuilder();
>
> uri.append(getContext().getProperties().get(prefix.concat(".protocol"))).append("://");
>
>
> uri.append(getContext().getProperties().get(prefix.concat(".host"))).append("?");
>
>
> uri.append("username=").append(getContext().getProperties().get(prefix.concat(".user")));
>
>
> uri.append("&password=").append(getContext().getProperties().get(prefix.concat(".password")));
>
>
> uri.append("&folderName=").append(getContext().getProperties().get(prefix.concat(".folder")));
>
>
> uri.append("&unseen=").append(getContext().getProperties().get(prefix.concat(".unseen")));
>
>
> uri.append("&consumer.delay=").append(getContext().getProperties().get(prefix.concat(".consuming.delay")));
>
>
> uri.append("&delete=").append(getContext().getProperties().get(prefix.concat(".delete")));
>
> String options =
> getContext().getProperties().get(prefix.concat(".options"));
> if (StringUtils.isNotBlank(options)) {
>
> uri.append("&").append(getContext().getProperties().get(prefix.concat(".options")));
>
> }
> return uri.toString();
> }
> and the uri used to retrieve the mail :
> imap://myimapserver.ch?username=username&password=password&folderName=IMAP&unseen=true&consumer.delay=30000&delete=true
>
> I didn't find anywhere a similar problem with Camel mail component so I don't
> know if it's a bug or if I'm doing something wrong.
> Kind regards and thanks a lot for helping.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)