Description
Hello, i found the bug in
https://github.com/apache/activemq/blob/master/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java#L2859
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