Claus Ibsen created CAMEL-25969:
-----------------------------------

             Summary: camel-stub - without a consumer the stub queue fills up, 
and the producer fails with Queue full after 1000 messages
                 Key: CAMEL-25969
                 URL: https://issues.apache.org/jira/browse/CAMEL-25969
             Project: Camel
          Issue Type: Bug
          Components: camel-core
    Affects Versions: 4.18.0, 4.22.0, 4.23.0
            Reporter: Claus Ibsen
             Fix For: 4.24.0


With no route that consumes from it, a stub endpoint keeps every message in its 
queue. {{StubProducer}} sends the exchange InOnly when there are no consumers 
(main e6885df7894d, lines 46-49), and the seda producer it extends queues it. 
The queue is never drained. After 1000 messages, the default size, the producer 
fails with {{IllegalStateException: Queue full}}, because blockWhenFull and 
discardWhenFull are false (SedaProducer, line 315).

That is the common case of {{camel run --stub}}: a stubbed producer such as 
{{to: jms:queue:orders}} has no consumer, so a route that sends more than 1000 
messages fails, and every message is kept in memory until then.

Checked on 4.24.0-SNAPSHOT with {{camel run}}: a loop that sends 1001 messages 
to {{stub:nobody}} fails with {{IllegalStateException: Queue full}}.

*Proposed change*: when the stub endpoint has no consumer, drop the message 
after it is sent, or keep only a bounded number of them for browsing.

_Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to