Hello, I have problem with fetching from mailbox using IMAP. According the debug the message body is fetched, but I get IOException with message "No content". It works fine using POP3 (which we can't use in production).
I'm not sure if the problem is in used IMAP implementation (default from Oracle JRE 1.6) or in Camel. Anyone seen this before? Ales P.S.: I have replaced password in the following trace 13:22:05.864 [Camel (camel) thread #0 - imap://assign-mana...@imap.seznam.cz] DEBUG o.a.c.component.mail.MailConsumer - Connecting to MailStore: imap://imap.seznam.cz:143, folder=INBOX DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc] DEBUG: mail.imap.fetchsize: 16384 DEBUG: mail.imap.statuscachetimeout: 1000 DEBUG: mail.imap.appendbuffersize: -1 DEBUG: mail.imap.minidletime: 10 DEBUG: trying to connect to host "imap.seznam.cz", port 143, isSSL false * OK Seznam IMAP server ready A0 CAPABILITY * CAPABILITY IMAP4rev1 STARTTLS CHILDREN A0 OK CAPABILITY completed DEBUG: protocolConnect login, host=imap.seznam.cz, user=assign-manager, password=<non-null> A1 LOGIN assign-manager XXXXXXXXXXXXXXXXX A1 OK LOGIN Authentication succeeded A2 CAPABILITY * CAPABILITY IMAP4rev1 STARTTLS CHILDREN A2 OK CAPABILITY completed 13:22:06.390 [Camel (camel) thread #0 - imap://assign-mana...@imap.seznam.cz] DEBUG o.a.c.component.mail.MailConsumer - Getting folder INBOX A3 LIST "" INBOX * LIST (\HasNoChildren) "/" "INBOX" A3 OK LIST completed 13:22:06.638 [Camel (camel) thread #0 - imap://assign-mana...@imap.seznam.cz] DEBUG o.a.c.component.mail.MailConsumer - Polling mailbox folder: imap://imap.seznam.cz:143, folder=INBOX DEBUG: connection available -- size: 1 A4 SELECT INBOX * 2 EXISTS * 0 RECENT * FLAGS (\Seen \Answered \Flagged \Deleted \Draft \Recent) * OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft)] Can bee changed permanently * OK [UIDVALIDITY 1] UIDs validity number * OK [UIDNEXT 7] Predicted next UID * OK [UNSEEN 2] The first unseen message MSN. A4 OK [READ-WRITE] SELECT completed A5 SEARCH UNSEEN ALL * SEARCH 2 A5 OK SEARCH completed 13:22:07.147 [Camel (camel) thread #0 - imap://assign-mana...@imap.seznam.cz] DEBUG o.a.c.component.mail.MailConsumer - Fetching 1 messages. Total 1 messages. A6 FETCH 2 (FLAGS) * 2 FETCH (FLAGS ()) A6 OK FETCH completed A7 FETCH 2 (ENVELOPE INTERNALDATE RFC822.SIZE) * 2 FETCH (ENVELOPE ("Fri, 11 Jan 2013 16:05:41 +0000 (GMT)" "TEST" (("DOLECEK Ales" NIL "Ales.Dolecek" "nextiraone.eu")) (("DOLECEK Ales" NIL "Ales.Dolecek" "nextiraone.eu")) (("DOLECEK Ales" NIL "Ales.Dolecek" "nextiraone.eu")) (("assign-mana...@seznam.cz" NIL "assign-manager" "seznam.cz")) NIL NIL NIL "<995ef58d093f4847a6035da98d9a7f6e3469de9...@ucmai003.uc.nextiraone-eu.ned>") INTERNALDATE "11-Jan-2013 16:05:44 +0000" RFC822.SIZE 1657) A7 OK FETCH completed 13:22:07.593 [Camel (camel) thread #0 - imap://assign-mana...@imap.seznam.cz] DEBUG o.a.c.component.mail.MailConsumer - Processing message: messageNumber=[2], from=[DOLECEK Ales <ales.dole...@nextiraone.eu>], to=["assign-mana...@seznam.cz" <assign-mana...@seznam.cz>], subject=[TEST], sentDate=[11.1.2013 17:05:41], receivedDate=[11.1.2013 17:05:44] A8 FETCH 2 (BODYSTRUCTURE) * 2 FETCH (BODYSTRUCTURE ("text" "plain" ("charset" "us-ascii") NIL NIL NIL 46 1 NIL NIL NIL)) A8 OK FETCH completed A9 FETCH 2 (BODY[TEXT]<0.46>) (\Seen)* 2 FETCH (BODY[TEXT]<0> {46} key1=value1 key2 = value2 === key3=value2 ) A9 OK FETCH completed DEBUG IMAP: IMAPProtocol noop A10 NOOP A10 OK Let's nooooop! 13:22:08.181 [Camel (camel) thread #0 - imap://assign-mana...@imap.seznam.cz] ERROR o.a.c.component.mail.MailConsumer - Caused by: [org.apache.camel.RuntimeCamelException - Failed to extract body due to: No content. Exchange: Exchange[MailMessage: messageNumber=[2], from=[DOLECEK Ales <ales.dole...@nextiraone.eu>], to=["assign-mana...@seznam.cz" <assign-mana...@seznam.cz>], subject=[TEST], sentDate=[11.1.2013 17:05:41], receivedDate=[11.1.2013 17:05:44]]. Message: com.sun.mail.imap.IMAPMessage@5f95ff24] org.apache.camel.RuntimeCamelException: Failed to extract body due to: No content. Exchange: Exchange[MailMessage: messageNumber=[2], from=[DOLECEK Ales <ales.dole...@nextiraone.eu>], to=["assign-mana...@seznam.cz" <assign-mana...@seznam.cz>], subject=[TEST], sentDate=[11.1.2013 17:05:41], receivedDate=[11.1.2013 17:05:44]]. Message: com.sun.mail.imap.IMAPMessage@5f95ff24 at org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:255) ~[camel-mail-2.8.2.jar:2.8.2] at org.apache.camel.component.mail.MailMessage.createBody(MailMessage.java:92) ~[camel-mail-2.8.2.jar:2.8.2] at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:41) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.impl.MessageSupport.copyFrom(MessageSupport.java:136) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.impl.DefaultMessage.copyFrom(DefaultMessage.java:52) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.component.mail.MailMessage.copyFrom(MailMessage.java:126) ~[camel-mail-2.8.2.jar:2.8.2] at org.apache.camel.impl.MessageSupport.copy(MessageSupport.java:125) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:56) ~[camel-mail-2.8.2.jar:2.8.2] at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33) ~[camel-mail-2.8.2.jar:2.8.2] at org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:88) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.processor.UnitOfWorkProcessor.createUnitOfWork(UnitOfWorkProcessor.java:147) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:90) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85) ~[camel-core-2.8.2.jar:2.8.2] at org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:272) ~[camel-mail-2.8.2.jar:2.8.2] at org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:187) ~[camel-mail-2.8.2.jar:2.8.2] at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:122) ~[camel-mail-2.8.2.jar:2.8.2] at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:134) [camel-core-2.8.2.jar:2.8.2] at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:89) [camel-core-2.8.2.jar:2.8.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [na:1.6.0_33] at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) [na:1.6.0_33] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [na:1.6.0_33] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) [na:1.6.0_33] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) [na:1.6.0_33] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) [na:1.6.0_33] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_33] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_33] at java.lang.Thread.run(Thread.java:662) [na:1.6.0_33] Caused by: java.io.IOException: No content at com.sun.mail.imap.IMAPInputStream.fill(IMAPInputStream.java:159) ~[mail-1.4.4.jar:1.4.4] at com.sun.mail.imap.IMAPInputStream.read(IMAPInputStream.java:208) ~[mail-1.4.4.jar:1.4.4] at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) ~[na:1.6.0_33] at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) ~[na:1.6.0_33] at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) ~[na:1.6.0_33] at java.io.InputStreamReader.read(InputStreamReader.java:167) ~[na:1.6.0_33] at com.sun.mail.handlers.text_plain.getContent(text_plain.java:125) ~[mail-1.4.4.jar:1.4.4] at javax.activation.DataSourceDataContentHandler.getContent(DataHandler.java:775) ~[na:1.6.0_33] at javax.activation.DataHandler.getContent(DataHandler.java:522) ~[na:1.6.0_33] at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1419) ~[mail-1.4.4.jar:1.4.4] at org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:227) ~[camel-mail-2.8.2.jar:2.8.2] ... 32 common frames omitted A11 CLOSE A11 OK CLOSE completed DEBUG: added an Authenticated connection -- size: 1