Hi Vincent

I reproduced your error with your code in Camel 2.9 and 2.10, and maybe
you've found a bug.
At first I thought it's your sleep calculations but even so we shouldn't
throw a null pointer.

Please file a JIRA so I can attach a patch and you can see if it works for
you too, but with the change I don't get this error. Or apply it and try a
build.
I'm not sure if I'll have time soon to dig further into why this is, but if
so I'll take a few stabs at it, and maybe somebody else already knows why
and has a better solution.

The change is in RouteContextProcessor, line 42, replace it with this so
the unit of work isn't yanked out from underneath it, for some reason it's
set to null and I only see valid reasons so far, though with concurrency it
might not be valid at a certain time or context.

final UnitOfWork unitOfWork = exchange.getUnitOfWork();
        if (unitOfWork != null) {
            unitOfWork.pushRouteContext(routeContext);
        }

Taariq



On Thu, Jan 3, 2013 at 12:09 PM, Vincent Lombart <apa...@lombart.be> wrote:

> Hello,
>
> Does anybody have an idea about what could sometimes cause a
> NullPointerException in Camel code in the second route (all my messages are
> built with the "seqnum" header)?
>
> Vincent Lombart wrote
> >                       from("seda:fork?concurrentConsumers=" +
> CONCURRENCY).process(
> >                                       myProcessor).to("seda:join");
> >
> from("seda:join").resequence(header("seqnum")).stream()
> >
> .capacity(CAPACITY).timeout(TIMEOUT).to("mock:result");
>
> Here is the exception:
> 01:35:49.719 [Camel (camel-1) thread #0 - Resequencer Delivery] WARN
> o.a.c.processor.StreamResequencer - Caused by:
> [java.lang.NullPointerException - null]
> java.lang.NullPointerException: null
>         at
>
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:42)
> ~[camel-core-2.10.3.jar:2.10.3]
>         at
>
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
> ~[camel-core-2.10.3.jar:2.10.3]
>         at
>
> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
> ~[camel-core-2.10.3.jar:2.10.3]
>         at
>
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
> ~[camel-core-2.10.3.jar:2.10.3]
>         at
>
> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:290)
> ~[camel-core-2.10.3.jar:2.10.3]
>         at
>
> org.apache.camel.processor.StreamResequencer.sendElement(StreamResequencer.java:185)
> ~[camel-core-2.10.3.jar:2.10.3]
>         at
>
> org.apache.camel.processor.StreamResequencer.sendElement(StreamResequencer.java:65)
> ~[camel-core-2.10.3.jar:2.10.3]
>         at
>
> org.apache.camel.processor.resequencer.ResequencerEngine.deliverNext(ResequencerEngine.java:261)
> ~[camel-core-2.10.3.jar:2.10.3]
>         at
>
> org.apache.camel.processor.resequencer.ResequencerEngine.deliver(ResequencerEngine.java:225)
> ~[camel-core-2.10.3.jar:2.10.3]
>         at
>
> org.apache.camel.processor.StreamResequencer$Delivery.run(StreamResequencer.java:242)
> ~[camel-core-2.10.3.jar:2.10.3]
>
> Best regards
> Vincent
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Fork-join-with-resequencing-tp5724727p5724823.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>

Reply via email to