Jiří Ondrušek created CAMEL-24591:
-------------------------------------
Summary: camel-seda - Send fails with "No queue available" after
producer route restart (regression from CAMEL-24408)
Key: CAMEL-24591
URL: https://issues.apache.org/jira/browse/CAMEL-24591
Project: Camel
Issue Type: Bug
Components: camel-seda
Affects Versions: 4.23.0
Reporter: Jiří Ondrušek
Assignee: Jiří Ondrušek
Since CAMEL-24408, restarting a route that produces to a SEDA endpoint breaks
all subsequent sends:
{code:java}
from("direct:start").routeId("producer").to("seda:bar");
context.getRouteController().stopRoute("producer");
context.getRouteController().startRoute("producer");
template.sendBody("direct:start", "hi");
// SedaConsumerNotAvailableException: No queue available on endpoint: seda://bar
{code}
On route stop the queue reference is now released from the component, but the
singleton endpoint keeps stale non-null {{ref}}/{{queue}} fields. The
re-registration guard in {{SedaEndpoint.onStarted(SedaProducer)}} only checks
for null, so it is skipped, and the next send resolves a released reference
({{count == 0}}) to null.
Fix: also re-register when the reference was released:
{code:java}
if (getComponent() != null && (ref == null || ref.getCount() == 0 || queue ==
null)) {
{code}
Found via the Camel Quarkus kafka integration test ({{kafka -> seda}} route
restarted to verify redelivery).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)