ARTEMIS-1975 Fixing deadlock after error processing

This commit is contained in:
Clebert Suconic 2020-03-26 16:07:18 -04:00
parent 6d2b17d23a
commit ddb67ccdb1
1 changed files with 4 additions and 0 deletions

View File

@ -3615,6 +3615,10 @@ public class QueueImpl extends CriticalComponentImpl implements Queue {
/** This will print errors and decide what to do with the errored consumer from the protocol layer. */
@Override
public void errorProcessing(Consumer consumer, Throwable t, MessageReference reference) {
executor.execute(() -> errorProcessing(consumer, t, reference));
}
private void internalErrorProcessing(Consumer consumer, Throwable t, MessageReference reference) {
synchronized (this) {
ActiveMQServerLogger.LOGGER.removingBadConsumer(t, consumer, reference);
// If the consumer throws an exception we remove the consumer