You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/09/24 11:25:00 UTC

[jira] [Created] (CAMEL-24993) camel-core - toD, Routing Slip and producer cache: fix bugs found in a deep review

Claus Ibsen created CAMEL-24993:
-----------------------------------

             Summary: camel-core - toD, Routing Slip and producer cache: fix bugs found in a deep review
                 Key: CAMEL-24993
                 URL: https://issues.apache.org/jira/browse/CAMEL-24993
             Project: Camel
          Issue Type: Bug
          Components: camel-core
            Reporter: Claus Ibsen


A deep review of the dynamic routing EIPs (toD / SendDynamicProcessor, Routing Slip, Dynamic Router) and the producer cache they share found the bugs below. Each one was reproduced against 4.23.0-SNAPSHOT.

# *toD sends the exchange after its pre-processor failed.* When the pre-processor of a SendDynamicAware component (the optimised toD for components such as http or kafka) threw an exception, SendDynamicProcessor set the exception and called the callback, but did not return. So it still sent the exchange to the endpoint, and the callback was called a second time when the send completed.
# *A routing slip does not stop a prototype endpoint whose step completes asynchronously.* With cacheSize=-1 each recipient is a prototype endpoint that is stopped after use. The endpoint was only stopped when its step completed synchronously. When the first step completed asynchronously, its prototype endpoint was never stopped. This also applies to the Dynamic Router, which extends the Routing Slip.
# *After purging a producer cache, the next send to the last used endpoint uses a stopped producer.* DefaultProducerCache.purge() (the JMX purge operation of a producer cache) stops and restarts the producer pool, but kept its reference to the last used producer. The next send to that endpoint reused the stopped producer.

_Claude Code on behalf of Claus Ibsen_




--
This message was sent by Atlassian Jira
(v8.20.10#820010)