This is an automated email from the ASF dual-hosted git repository.
clebertsuconic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/master by this push:
new ddb67cc ARTEMIS-1975 Fixing deadlock after error processing
ddb67cc is described below
commit ddb67ccdb12829668c321b06c4c4349da722f4fb
Author: Clebert Suconic <[email protected]>
AuthorDate: Thu Mar 26 16:07:18 2020 -0400
ARTEMIS-1975 Fixing deadlock after error processing
---
.../java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java | 4 ++++
1 file changed, 4 insertions(+)
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
index 9ce735d..7d798b7 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
@@ -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