You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2020/02/29 06:15:02 UTC

[activemq] branch activemq-5.15.x updated: [AMQ-7424] Prevent NPE during commitRemove() on JDBC adapter

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

jbonofre pushed a commit to branch activemq-5.15.x
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/activemq-5.15.x by this push:
     new 1daf347  [AMQ-7424] Prevent NPE during commitRemove() on JDBC adapter
1daf347 is described below

commit 1daf347f90286c880c160ec136e07d133b424503
Author: jbonofre <jb...@apache.org>
AuthorDate: Thu Feb 27 21:21:47 2020 +0100

    [AMQ-7424] Prevent NPE during commitRemove() on JDBC adapter
    
    (cherry picked from commit d8ae8734a9f6da41e206d33322048aedf5491e8e)
---
 .../java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java   | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java b/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java
index a6ad870..38a2772 100644
--- a/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java
+++ b/activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/JDBCPersistenceAdapter.java
@@ -792,7 +792,9 @@ public class JDBCPersistenceAdapter extends DataSourceServiceSupport implements
     public void commitRemove(ConnectionContext context, MessageAck ack) throws IOException {
         TransactionContext c = getTransactionContext(context);
         try {
-            getAdapter().doRemoveMessage(c, (Long)ack.getLastMessageId().getFutureOrSequenceLong(), null);
+            if (getAdapter() != null && c != null && ack != null && ack.getLastMessageId() != null && ack.getLastMessageId().getFutureOrSequenceLong() != null) {
+                getAdapter().doRemoveMessage(c, (Long) ack.getLastMessageId().getFutureOrSequenceLong(), null);
+            }
         } catch (SQLException e) {
             JDBCPersistenceAdapter.log("JDBC Failure: ", e);
             throw IOExceptionSupport.create("Failed to commit last ack: " + ack + ". Reason: " + e,e);