camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Drach <>
Subject NPE in RouteContextProcessor
Date Mon, 30 Jul 2012 23:52:12 GMT
I'm using Camel 2.4.10.  I'm get a NPE in RouteContextProcessor at line 42:

    29  public class RouteContextProcessor extends DelegateAsyncProcessor {
    38      @Override
    39      protected boolean processNext(final Exchange exchange, final
AsyncCallback callback) {
    40          // push the current route context
    41          if (exchange.getUnitOfWork() != null) {
    42              exchange.getUnitOfWork().pushRouteContext(routeContext);
    43          }

I am able to demonstrate that even though the test in line 41 is true,
getUnitOfWork() in null in line 43.  I do this by instrumenting the code as

    protected boolean processNext(final Exchange exchange, final
AsyncCallback callback) {
        // push the current route context                                                
        try {
        if (exchange.getUnitOfWork() != null) {
        } catch (Exception e) {


And I can clearly see the null value.  This implies to me somebody else has
a reference to the same exchange object and is changing it between lines 42
and line 43.  This only happens occasionally (1 in 1000 times).

My code has 10 threads, so I wouldn't be surprised if it was my problem, but
I just can't see it.  I am not doing anything with the UnitOfWork in an
exchange.  At most, I change the body of the Message and perhaps the

This is very difficult to debug because it happens so infrequently.  Does
anyone have a suggestion that could help me?

View this message in context:
Sent from the Camel - Users mailing list archive at

View raw message