ThreadsProcessor configured with ExecutorService with DiscardPolicy or 
DiscardOldestPolicy leaves inflight exchanges for discarded tasks unprocessed.
-----------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: CAMEL-4925
                 URL: https://issues.apache.org/jira/browse/CAMEL-4925
             Project: Camel
          Issue Type: Bug
          Components: camel-core
    Affects Versions: 2.8.0
            Reporter: Sergey Zhemzhitsky
         Attachments: CamelRoutingTest.java

ThreadsProcessor configured with ExecutorService with DiscardPolicy or 
DiscardOldestPolicy leaves inflight exchanges for discarded tasks unprocessed.

Here is the code from ThreadsProcessor. In case of DiscardPolicy or 
DiscardOldestPolicy executorService will no throw RejectedExecutionException, 
so exchange remains unprocessed and count of inflight exchanges will not be 
decremented for such discarded exchanges.

{code:java|title=ThreadsProcessor#process(Exchange, AsyncCallback)}
public boolean process(Exchange exchange, AsyncCallback callback) {
    if (shutdown.get()) {
        throw new IllegalStateException("ThreadsProcessor is not running.");
    }

    ProcessCall call = new ProcessCall(exchange, callback);
    try {
        executorService.submit(call);
        // tell Camel routing engine we continue routing asynchronous
        return false;
    } catch (RejectedExecutionException e) {
        if (isCallerRunsWhenRejected()) {
            if (shutdown.get()) {
                exchange.setException(new RejectedExecutionException());
            } else {
                callback.done(true);
            }
        } else {
            exchange.setException(e);
        }
        return true;
    }
}
{code}

Unit test is attached.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to