[ 
https://issues.apache.org/jira/browse/CAMEL-4227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13065067#comment-13065067
 ] 

Claus Ibsen commented on CAMEL-4227:
------------------------------------

This is working as designed. The limit on the queue prevent clients from 
submitting new tasks, as otherwise you could eat up all the memory.

The client gets an exception if the queue is full. This is by design.
The client should not block, as it may block forever, if there is no consumers 
on the queue.

Instead we may consider adding an option you can enable on the seda component 
to control if its okay for the client to block if queue is full.

> Seda component doesn't block on its blocking queue
> --------------------------------------------------
>
>                 Key: CAMEL-4227
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4227
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.7.2
>            Reporter: Michael Allman
>             Fix For: 2.9.0
>
>
> While one can put an upper bound on the size of the blocking queue that the 
> seda component uses to queue messages, the seda component throws an exception 
> when it reaches that limit instead of blocking. My understanding of a 
> blocking queue is that the upper bound lets you put an upper bound on the 
> queue and block when it becomes full. The fact that the seda component throws 
> an exception makes the upper bound useless in practice, unless there is 
> supposed to be some kind of easy workaround. We have not found one, and it 
> looks like we will be rolling our own async component to compensate. :(
> The basic issue is that SedaProducer calls BlockingQueue.add() instead of 
> BlockingQueue.put().

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to