You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2021/08/20 20:33:29 UTC

[activemq-artemis] branch main updated: ARTEMIS-3422 mitigate NPE for audit logging

This is an automated email from the ASF dual-hosted git repository.

clebertsuconic pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new c8d71cb  ARTEMIS-3422 mitigate NPE for audit logging
     new eb73709  This closes #3705
c8d71cb is described below

commit c8d71cbebc2a109bd3256c1d8f405b8ea31a1c50
Author: Justin Bertram <jb...@apache.org>
AuthorDate: Fri Aug 20 14:12:43 2021 -0500

    ARTEMIS-3422 mitigate NPE for audit logging
---
 .../org/apache/activemq/artemis/core/server/impl/QueueImpl.java   | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

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 7c73aee..6b5106f 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
@@ -1902,8 +1902,12 @@ public class QueueImpl extends CriticalComponentImpl implements Queue {
          }
 
          if (AuditLogger.isMessageLoggingEnabled()) {
-            ServerSession session = server.getSessionByID(consumer.getSessionID());
-            AuditLogger.coreAcknowledgeMessage(session.getRemotingConnection().getAuditSubject(), session.getRemotingConnection().getRemoteAddress(), getName().toString(), ref.getMessage().toString());
+            ServerSession session = null;
+            // it's possible for the consumer to be null (e.g. acking the message administratively)
+            if (consumer != null) {
+               session = server.getSessionByID(consumer.getSessionID());
+            }
+            AuditLogger.coreAcknowledgeMessage(session == null ? null : session.getRemotingConnection().getAuditSubject(), session == null ? null : session.getRemotingConnection().getRemoteAddress(), getName().toString(), ref.getMessage().toString());
          }
          if (server != null && server.hasBrokerMessagePlugins()) {
             server.callBrokerMessagePlugins(plugin -> plugin.messageAcknowledged(ref, reason, consumer));