Camel
  1. Camel
  2. CAMEL-4795

Throttler and Delay EIP will invoke done callback twice if using async delayed

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.7.4, 2.8.3
    • Fix Version/s: 2.7.5, 2.8.4, 2.9.0
    • Component/s: camel-core
    • Labels:
      None
    • Estimated Complexity:
      Unknown

      Description

      If using async delayed on Throttler or Delay EIP, then a 2nd done on the callback is invoked, which should not happen. As the Camel routing engine, is invoking the done as well.

      The 2nd done can cause what would appear as a routing error as a NPE occurs in the error handler, as the exchange is already done, and some cleanup work have occurred.

      java.lang.NullPointerException
      	at org.apache.camel.processor.RedeliveryErrorHandler.processAsyncErrorHandler(RedeliveryErrorHandler.java:387)
      	at org.apache.camel.processor.RedeliveryErrorHandler$1.done(RedeliveryErrorHandler.java:336)
      	at org.apache.camel.processor.interceptor.Debug$1$1.done(Debug.java:56)
      	at org.apache.camel.processor.interceptor.TraceInterceptor$1.done(TraceInterceptor.java:188)
      	at org.apache.camel.impl.ProducerCache$1.done(ProducerCache.java:307)
      ...
      

        Activity

        Claus Ibsen created issue -
        Claus Ibsen made changes -
        Field Original Value New Value
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            Claus Ibsen
            Reporter:
            Claus Ibsen
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development