You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by contactreji <co...@gmail.com> on 2014/03/18 16:08:26 UTC

Polling Email Component - Runtime Error

Hi

I have a route as follows

*	<route>

				<from
				
uri="imaps://imap.gmail.com?username=mygmailID@gmail.com&amp;password=mypassword&amp;delete=false&amp;unseen=true&amp;consumer.delay=60000&amp;mapMailMessage=true&amp;delete=true"
/>
			
				<to uri="seda:emails" />

			</route>*


On execution, I am getting following runtime error. Can you tell me why
there is a NULL pointor exception. My email does contain content for the
Email Body though.


2014-03-18 20:28:58,677 [ing.Main.main()] INFO  SpringCamelContext            
- Total 1 routes, of which 1 is started.
2014-03-18 20:28:58,678 [ing.Main.main()] INFO  SpringCamelContext            
- Apache Camel 2.10.0.fuse-71-047 (CamelContext: camel-1) started in 0.852
seconds
2014-03-18 20:31:11,398 [/imap.gmail.com] WARN  MailConsumer                  
- Caused by: [org.apache.camel.RuntimeCamelException - Failed to extract
body due to: null. Exchange: Exchange[MailMessage: messageNumber=[1],
from=[Sample Sender <sa...@gmail.com>], to=[reji.cafe@gmail.com],
subject=[test], sentDate=[18 Mar, 2014 8:29:42 PM], receivedDate=[18 Mar,
2014 8:29:44 PM]]. Message: com.sun.mail.imap.IMAPMessage@121cbd6]
org.apache.camel.RuntimeCamelException: Failed to extract body due to: null.
Exchange: Exchange[MailMessage: messageNumber=[1], from=[Frenchi Elizabeth
<be...@gmail.com>], to=[reji.cafe@gmail.com], subject=[test],
sentDate=[18 Mar, 2014 8:29:42 PM], receivedDate=[18 Mar, 2014 8:29:44 PM]].
Message: com.sun.mail.imap.IMAPMessage@121cbd6
	at
org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:269)
	at
org.apache.camel.component.mail.MailMessage.createBody(MailMessage.java:96)
	at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:41)
	at org.apache.camel.impl.MessageSupport.copyFrom(MessageSupport.java:135)
	at
org.apache.camel.component.mail.MailMessage.copyFrom(MailMessage.java:130)
	at org.apache.camel.impl.MessageSupport.copy(MessageSupport.java:124)
	at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:56)
	at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33)
	at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:91)
	at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71)
	at
org.apache.camel.processor.UnitOfWorkProcessor.createUnitOfWork(UnitOfWorkProcessor.java:190)
	at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
	at
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
	at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
	at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
	at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
	at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
	at
org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:238)
	at
org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:189)
	at



--
View this message in context: http://camel.465427.n5.nabble.com/Polling-Email-Component-Runtime-Error-tp5749047.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Polling Email Component - Runtime Error

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

I logged a ticket
https://issues.apache.org/jira/browse/CAMEL-7311

On Tue, Mar 18, 2014 at 6:16 PM, Claus Ibsen <cl...@gmail.com> wrote:
> Hi
>
> In Camel 2.13 you can set context.setAllowUseOriginalMessage(false)
> which could help with this problem.
>
> For older releases it seems a defensive copy of the mail is done as
> part of UoW and there is a failure in the attachments of the mail
> message, from the NPE in java mail.
>
> You can try upgrading java mail to latest you can download from
> http://www.oracle.com/technetwork/java/javamail/index.html
>
> For Camel 2.12.x and older we would need a fix in camel-mail to detect
> the mapMailMessage=false and dont do the attachments extraction as
> part of the UoW.
>
> Fell free to log a ticket about that, then I can see if I can get this
> fixed tomorrow.
>
>
>
> On Tue, Mar 18, 2014 at 5:54 PM, contactreji <co...@gmail.com> wrote:
>> Hi Claus
>>
>> I am getting a new set of errors in log now.. There seems to be something
>> different here. This happended when I had set mapMailMessage=false
>> Have any idea whats the fix from this point onwards?
>>
>> *
>> 2014-03-18 22:22:11,966 [/imap.gmail.com] WARN  MailConsumer
>> - Caused by: [org.apache.camel.RuntimeCamelException - Error populating the
>> initial mail message attachments]
>> org.apache.camel.RuntimeCamelException: Error populating the initial mail
>> message attachments
>>         at
>> org.apache.camel.component.mail.MailMessage.populateInitialAttachments(MailMessage.java:124)
>>         at
>> org.apache.camel.impl.DefaultMessage.createAttachments(DefaultMessage.java:209)
>>         at
>> org.apache.camel.impl.DefaultMessage.getAttachments(DefaultMessage.java:274)
>>         at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:62)
>>         at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33)
>>         at
>> org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:91)
>>         at
>> org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71)
>>         at org.apache.camel.processor.U*
>>
>>
>>
>> --
>> View this message in context: http://camel.465427.n5.nabble.com/Polling-Email-Component-Runtime-Error-tp5749047p5749060.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cibsen@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> Make your Camel applications look hawt, try: http://hawt.io



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Make your Camel applications look hawt, try: http://hawt.io

Re: Polling Email Component - Runtime Error

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

In Camel 2.13 you can set context.setAllowUseOriginalMessage(false)
which could help with this problem.

For older releases it seems a defensive copy of the mail is done as
part of UoW and there is a failure in the attachments of the mail
message, from the NPE in java mail.

You can try upgrading java mail to latest you can download from
http://www.oracle.com/technetwork/java/javamail/index.html

For Camel 2.12.x and older we would need a fix in camel-mail to detect
the mapMailMessage=false and dont do the attachments extraction as
part of the UoW.

Fell free to log a ticket about that, then I can see if I can get this
fixed tomorrow.



On Tue, Mar 18, 2014 at 5:54 PM, contactreji <co...@gmail.com> wrote:
> Hi Claus
>
> I am getting a new set of errors in log now.. There seems to be something
> different here. This happended when I had set mapMailMessage=false
> Have any idea whats the fix from this point onwards?
>
> *
> 2014-03-18 22:22:11,966 [/imap.gmail.com] WARN  MailConsumer
> - Caused by: [org.apache.camel.RuntimeCamelException - Error populating the
> initial mail message attachments]
> org.apache.camel.RuntimeCamelException: Error populating the initial mail
> message attachments
>         at
> org.apache.camel.component.mail.MailMessage.populateInitialAttachments(MailMessage.java:124)
>         at
> org.apache.camel.impl.DefaultMessage.createAttachments(DefaultMessage.java:209)
>         at
> org.apache.camel.impl.DefaultMessage.getAttachments(DefaultMessage.java:274)
>         at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:62)
>         at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33)
>         at
> org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:91)
>         at
> org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71)
>         at org.apache.camel.processor.U*
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Polling-Email-Component-Runtime-Error-tp5749047p5749060.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Make your Camel applications look hawt, try: http://hawt.io

Re: Polling Email Component - Runtime Error

Posted by contactreji <co...@gmail.com>.
Hi Claus

I am getting a new set of errors in log now.. There seems to be something
different here. This happended when I had set mapMailMessage=false
Have any idea whats the fix from this point onwards?

*
2014-03-18 22:22:11,966 [/imap.gmail.com] WARN  MailConsumer                  
- Caused by: [org.apache.camel.RuntimeCamelException - Error populating the
initial mail message attachments]
org.apache.camel.RuntimeCamelException: Error populating the initial mail
message attachments
	at
org.apache.camel.component.mail.MailMessage.populateInitialAttachments(MailMessage.java:124)
	at
org.apache.camel.impl.DefaultMessage.createAttachments(DefaultMessage.java:209)
	at
org.apache.camel.impl.DefaultMessage.getAttachments(DefaultMessage.java:274)
	at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:62)
	at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33)
	at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:91)
	at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71)
	at org.apache.camel.processor.U*



--
View this message in context: http://camel.465427.n5.nabble.com/Polling-Email-Component-Runtime-Error-tp5749047p5749060.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Polling Email Component - Runtime Error

Posted by contactreji <co...@gmail.com>.
Hi Claus

I upgraded the Camel version as well as the camel-mail to
<version>2.11.1</version>

I set the mapMailMessage=false too. I followed your advice at the link
https://issues.apache.org/jira/browse/CAMEL-6154 by setting
closeFolder=false

Still am stuck up with the error as below

*2014-03-18 22:02:56,406 [ing.Main.main()] INFO  SpringCamelContext            
- Apache Camel 2.11.1 (CamelContext: camel-1) started in 2.275 seconds
2014-03-18 22:03:07,448 [/imap.gmail.com] WARN  MailConsumer                  
- Caused by: [org.apache.camel.RuntimeCamelException - Error populating the
initial mail message attachments]
org.apache.camel.RuntimeCamelException: Error populating the initial mail
message attachments
	at
org.apache.camel.component.mail.MailMessage.populateInitialAttachments(MailMessage.java:124)
	at
org.apache.camel.impl.DefaultMessage.createAttachments(DefaultMessage.java:209)
	at
org.apache.camel.impl.DefaultMessage.getAttachments(DefaultMessage.java:274)
	at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:62)
	at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33)
	at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:91)
	at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71)
	at
org.apache.camel.processor.UnitOfWorkProcessor.createUnitOfWork(UnitOfWorkProcessor.java:190)
	at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
	at
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
	at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
	at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
	at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
	at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
	at
org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:255)
	at
org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:199)
	at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:118)
	at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:142)
	at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:92)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
	at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
	at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NullPointerException
	at javax.mail.internet.ParameterList.set(ParameterList.java:165)
	at
com.sun.mail.imap.protocol.BODYSTRUCTURE.parseParameters(BODYSTRUCTURE.java:404)
	at com.sun.mail.imap.protocol.BODYSTRUCTURE.<init>(BODYSTRUCTURE.java:224)
	at com.sun.mail.imap.protocol.BODYSTRUCTURE.<init>(BODYSTRUCTURE.java:109)
	at com.sun.mail.imap.protocol.BODYSTRUCTURE.<init>(BODYSTRUCTURE.java:109)
	at
com.sun.mail.imap.protocol.FetchResponse.parseItem(FetchResponse.java:198)
	at com.sun.mail.imap.protocol.FetchResponse.parse(FetchResponse.java:164)
	at com.sun.mail.imap.protocol.FetchResponse.<init>(FetchResponse.java:92)
	at
com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:288)
	at com.sun.mail.iap.Protocol.command(Protocol.java:313)
	at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1543)
	at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1535)
	at
com.sun.mail.imap.protocol.IMAPProtocol.fetchBodyStructure(IMAPProtocol.java:1235)
	at com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1294)
	at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:639)
	at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:927)
	at
org.apache.camel.component.mail.MailBinding.extractAttachmentsFromMail(MailBinding.java:291)
	at
org.apache.camel.component.mail.MailMessage.populateInitialAttachments(MailMessage.java:121)
	... 28 more
2014-03-18 22:03:22,932 [/imap.gmail.com] WARN  MailConsumer                  
- Caused by: [org.apache.camel.RuntimeCamelException - Error populating the
initial mail message attachments]
org.apache.camel.RuntimeCamelException: Error populating the initial mail
message attachments
	at
org.apache.camel.component.mail.MailMessage.populateInitialAttachments(MailMessage.java:124)
	at
org.apache.camel.impl.DefaultMessage.createAttachments(DefaultMessage.java:209)
	at
org.apache.camel.impl.DefaultMessage.getAttachments(DefaultMessage.java:274)
	at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:62)
	at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33)
	at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:91)
	at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71)
	at
org.apache.camel.processor.UnitOfWorkProcessor.createUnitOfWork(UnitOfWorkProcessor.java:190)
	at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
	at
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
	at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
	at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
	at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
	at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
	at
org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:255)
	at
org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:199)
	at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:118)
	at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:142)
	at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:92)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)*



--
View this message in context: http://camel.465427.n5.nabble.com/Polling-Email-Component-Runtime-Error-tp5749047p5749059.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Polling Email Component - Runtime Error

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Yeah that is a bug in the java mail JAR. You may try upgrading that if
its fixed in a newer release.
Maybe its only a single email that has this problem? You can try
deleting it so you can poll the next.

You can also tell Camel to not map the mail message with
mapMailMessage=false, see more details at
http://camel.apache.org/mail

And I think you can plugin your custom mail mapper in the Camel mail
component to fix/workaround this problem.

On Tue, Mar 18, 2014 at 4:43 PM, contactreji <co...@gmail.com> wrote:
> Hi Claus
>
> Thanks for that quick help.
>
> I have modified my route file as follows and passed the Exchange into a
> processor class where I process the
> contents.
> *       <route>
>
>                         <from
>
> uri="imaps://imap.gmail.com?username=mygmailID@gmail.com&amp;password=password&amp;delete=false&amp;unseen=true&amp;consumer.delay=60000&amp;mapMailMessage=true&amp;delete=true"/>
>                         <to uri="bean:processEmail" />
>
>                 </route>*
>
>
> Yet am getting following error. It looks more like issues with extracting
> body from email.
>
> 2014-03-18 21:04:05,883 [ing.Main.main()] INFO  SpringCamelContext
> - Total 1 routes, of which 1 is started.
> 2014-03-18 21:04:05,886 [ing.Main.main()] INFO  SpringCamelContext
> - Apache Camel 2.10.0.fuse-71-047 (CamelContext: camel-1) started in 0.820
> seconds
> 2014-03-18 21:04:16,421 [/imap.gmail.com] WARN  MailConsumer
> - Caused by: [org.apache.camel.RuntimeCamelException - Failed to extract
> body due to: null. Exchange: Exchange[MailMessage: messageNumber=[1],
> from=[Frenchi Elizabeth <be...@gmail.com>], to=[reji.cafe@gmail.com],
> subject=[test], sentDate=[18 Mar, 2014 8:55:42 PM], receivedDate=[18 Mar,
> 2014 8:55:43 PM]]. Message: com.sun.mail.imap.IMAPMessage@151c590]
> org.apache.camel.RuntimeCamelException: Failed to extract body due to: null.
> Exchange: Exchange[MailMessage: messageNumber=[1], from=[Frenchi Elizabeth
> <be...@gmail.com>], to=[reji.cafe@gmail.com], subject=[test],
> sentDate=[18 Mar, 2014 8:55:42 PM], receivedDate=[18 Mar, 2014 8:55:43 PM]].
> Message: com.sun.mail.imap.IMAPMessage@151c590
>         at
> org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:269)
>         at
> org.apache.camel.component.mail.MailMessage.createBody(MailMessage.java:96)
>         at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:41)
>         at org.apache.camel.impl.MessageSupport.copyFrom(MessageSupport.java:135)
>         at
> org.apache.camel.component.mail.MailMessage.copyFrom(MailMessage.java:130)
>         at org.apache.camel.impl.MessageSupport.copy(MessageSupport.java:124)
>         at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:56)
>         at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33)
>         at
> org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:91)
>         at
> org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.createUnitOfWork(UnitOfWorkProcessor.java:190)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
>         at
> org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
>         at
> org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:238)
>         at
> org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:189)
>         at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:115)
>         at
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:142)
>         at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:92)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
>         at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown
> Source)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
> Source)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.NullPointerException
>         at javax.mail.internet.ParameterList.set(ParameterList.java:165)
>         at
> com.sun.mail.imap.protocol.BODYSTRUCTURE.parseParameters(BODYSTRUCTURE.java:404)
>         at com.sun.mail.imap.protocol.BODYSTRUCTURE.<init>(BODYSTRUCTURE.java:224)
>         at com.sun.mail.imap.protocol.BODYSTRUCTURE.<init>(BODYSTRUCTURE.java:109)
>         at com.sun.mail.imap.protocol.FetchResponse.parse(FetchResponse.java:158)
>         at com.sun.mail.imap.protocol.FetchResponse.<init>(FetchResponse.java:67)
>         at
> com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:136)
>         at
> com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:270)
>         at com.sun.mail.iap.Protocol.command(Protocol.java:313)
>         at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1529)
>         at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1521)
>         at
> com.sun.mail.imap.protocol.IMAPProtocol.fetchBodyStructure(IMAPProtocol.java:1221)
>         at com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1307)
>         at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:623)
>         at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:927)
>         at
> org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:241)
>         ... 31 more
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Polling-Email-Component-Runtime-Error-tp5749047p5749050.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Make your Camel applications look hawt, try: http://hawt.io

Re: Polling Email Component - Runtime Error

Posted by contactreji <co...@gmail.com>.
Hi Claus

Thanks for that quick help.

I have modified my route file as follows and passed the Exchange into a
processor class where I process the 
contents.
*	<route>

			<from
			
uri="imaps://imap.gmail.com?username=mygmailID@gmail.com&amp;password=password&amp;delete=false&amp;unseen=true&amp;consumer.delay=60000&amp;mapMailMessage=true&amp;delete=true"/>
			<to uri="bean:processEmail" />

		</route>*


Yet am getting following error. It looks more like issues with extracting
body from email. 

2014-03-18 21:04:05,883 [ing.Main.main()] INFO  SpringCamelContext            
- Total 1 routes, of which 1 is started.
2014-03-18 21:04:05,886 [ing.Main.main()] INFO  SpringCamelContext            
- Apache Camel 2.10.0.fuse-71-047 (CamelContext: camel-1) started in 0.820
seconds
2014-03-18 21:04:16,421 [/imap.gmail.com] WARN  MailConsumer                  
- Caused by: [org.apache.camel.RuntimeCamelException - Failed to extract
body due to: null. Exchange: Exchange[MailMessage: messageNumber=[1],
from=[Frenchi Elizabeth <be...@gmail.com>], to=[reji.cafe@gmail.com],
subject=[test], sentDate=[18 Mar, 2014 8:55:42 PM], receivedDate=[18 Mar,
2014 8:55:43 PM]]. Message: com.sun.mail.imap.IMAPMessage@151c590]
org.apache.camel.RuntimeCamelException: Failed to extract body due to: null.
Exchange: Exchange[MailMessage: messageNumber=[1], from=[Frenchi Elizabeth
<be...@gmail.com>], to=[reji.cafe@gmail.com], subject=[test],
sentDate=[18 Mar, 2014 8:55:42 PM], receivedDate=[18 Mar, 2014 8:55:43 PM]].
Message: com.sun.mail.imap.IMAPMessage@151c590
	at
org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:269)
	at
org.apache.camel.component.mail.MailMessage.createBody(MailMessage.java:96)
	at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:41)
	at org.apache.camel.impl.MessageSupport.copyFrom(MessageSupport.java:135)
	at
org.apache.camel.component.mail.MailMessage.copyFrom(MailMessage.java:130)
	at org.apache.camel.impl.MessageSupport.copy(MessageSupport.java:124)
	at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:56)
	at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33)
	at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:91)
	at
org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71)
	at
org.apache.camel.processor.UnitOfWorkProcessor.createUnitOfWork(UnitOfWorkProcessor.java:190)
	at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
	at
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
	at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
	at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
	at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
	at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
	at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
	at
org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:238)
	at
org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:189)
	at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:115)
	at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:142)
	at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:92)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
	at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown
Source)
	at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
	at javax.mail.internet.ParameterList.set(ParameterList.java:165)
	at
com.sun.mail.imap.protocol.BODYSTRUCTURE.parseParameters(BODYSTRUCTURE.java:404)
	at com.sun.mail.imap.protocol.BODYSTRUCTURE.<init>(BODYSTRUCTURE.java:224)
	at com.sun.mail.imap.protocol.BODYSTRUCTURE.<init>(BODYSTRUCTURE.java:109)
	at com.sun.mail.imap.protocol.FetchResponse.parse(FetchResponse.java:158)
	at com.sun.mail.imap.protocol.FetchResponse.<init>(FetchResponse.java:67)
	at
com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:136)
	at
com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:270)
	at com.sun.mail.iap.Protocol.command(Protocol.java:313)
	at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1529)
	at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1521)
	at
com.sun.mail.imap.protocol.IMAPProtocol.fetchBodyStructure(IMAPProtocol.java:1221)
	at com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1307)
	at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:623)
	at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:927)
	at
org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:241)
	... 31 more




--
View this message in context: http://camel.465427.n5.nabble.com/Polling-Email-Component-Runtime-Error-tp5749047p5749050.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Polling Email Component - Runtime Error

Posted by Claus Ibsen <cl...@gmail.com>.
Because you use seda to hand off processing the mail. Use direct
instead, or use wait=always for seda to ensure the mail has been
processed, when you at the end is marking the mail as deleted etc.
That work must happen on same thread and after you have processed the
mail.


On Tue, Mar 18, 2014 at 4:08 PM, contactreji <co...@gmail.com> wrote:
> Hi
>
> I have a route as follows
>
> *       <route>
>
>                                 <from
>
> uri="imaps://imap.gmail.com?username=mygmailID@gmail.com&amp;password=mypassword&amp;delete=false&amp;unseen=true&amp;consumer.delay=60000&amp;mapMailMessage=true&amp;delete=true"
> />
>
>                                 <to uri="seda:emails" />
>
>                         </route>*
>
>
> On execution, I am getting following runtime error. Can you tell me why
> there is a NULL pointor exception. My email does contain content for the
> Email Body though.
>
>
> 2014-03-18 20:28:58,677 [ing.Main.main()] INFO  SpringCamelContext
> - Total 1 routes, of which 1 is started.
> 2014-03-18 20:28:58,678 [ing.Main.main()] INFO  SpringCamelContext
> - Apache Camel 2.10.0.fuse-71-047 (CamelContext: camel-1) started in 0.852
> seconds
> 2014-03-18 20:31:11,398 [/imap.gmail.com] WARN  MailConsumer
> - Caused by: [org.apache.camel.RuntimeCamelException - Failed to extract
> body due to: null. Exchange: Exchange[MailMessage: messageNumber=[1],
> from=[Sample Sender <sa...@gmail.com>], to=[reji.cafe@gmail.com],
> subject=[test], sentDate=[18 Mar, 2014 8:29:42 PM], receivedDate=[18 Mar,
> 2014 8:29:44 PM]]. Message: com.sun.mail.imap.IMAPMessage@121cbd6]
> org.apache.camel.RuntimeCamelException: Failed to extract body due to: null.
> Exchange: Exchange[MailMessage: messageNumber=[1], from=[Frenchi Elizabeth
> <be...@gmail.com>], to=[reji.cafe@gmail.com], subject=[test],
> sentDate=[18 Mar, 2014 8:29:42 PM], receivedDate=[18 Mar, 2014 8:29:44 PM]].
> Message: com.sun.mail.imap.IMAPMessage@121cbd6
>         at
> org.apache.camel.component.mail.MailBinding.extractBodyFromMail(MailBinding.java:269)
>         at
> org.apache.camel.component.mail.MailMessage.createBody(MailMessage.java:96)
>         at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:41)
>         at org.apache.camel.impl.MessageSupport.copyFrom(MessageSupport.java:135)
>         at
> org.apache.camel.component.mail.MailMessage.copyFrom(MailMessage.java:130)
>         at org.apache.camel.impl.MessageSupport.copy(MessageSupport.java:124)
>         at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:56)
>         at org.apache.camel.component.mail.MailMessage.copy(MailMessage.java:33)
>         at
> org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:91)
>         at
> org.apache.camel.impl.DefaultUnitOfWork.<init>(DefaultUnitOfWork.java:71)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.createUnitOfWork(UnitOfWorkProcessor.java:190)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
>         at
> org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
>         at
> org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:238)
>         at
> org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:189)
>         at
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Polling-Email-Component-Runtime-Error-tp5749047.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Make your Camel applications look hawt, try: http://hawt.io