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)