Shmakov Alexey created AMQ-7493:
-----------------------------------

             Summary: ThreadPoolExecutor in BrokerService throws unneeded 
exception
                 Key: AMQ-7493
                 URL: https://issues.apache.org/jira/browse/AMQ-7493
             Project: ActiveMQ
          Issue Type: Task
          Components: Broker
            Reporter: Shmakov Alexey


Hello, i found the bug in
https://github.com/apache/activemq/blob/master/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java

on row 2859:

new RejectedExecutionHandler() {
        @Override
        public void rejectedExecution(final Runnable r, final 
ThreadPoolExecutor executor) {
                try {
                        executor.getQueue().offer(r, 60, TimeUnit.SECONDS);
                } catch (InterruptedException e) {
                        throw new RejectedExecutionException("Interrupted 
waiting for BrokerService.worker");
                }

                throw new RejectedExecutionException("Timed Out while 
attempting to enqueue Task.");
        }
}

it must be

public void rejectedExecution(final Runnable r, final ThreadPoolExecutor 
executor) {
        try {
                if (!executor.getQueue().offer(r, 60, TimeUnit.SECONDS))
                        throw new RejectedExecutionException("Timed Out while 
attempting to enqueue Task.");
        } catch (InterruptedException e) {
                throw new RejectedExecutionException("Interrupted waiting for 
BrokerService.worker");
        }
}

because on success method offer must return true 
P.s. sorry for my horrible english



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to