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 2015/04/09 21:16:56 UTC

[2/5] activemq-6 git commit: Fixing a NPE case after Duplciate detection

Fixing a NPE case after Duplciate detection

If a Transaction wasn't created, the case for duplciate Detection would cancel a transaction that never happened
and it would get a NPE instead of a TX Exception.

It wasn't a big deal as the client got an exception anyways and the users were able to cancel in that case
but the message sent was a string containing just "Null".

this will fix it with a proper handling


Project: http://git-wip-us.apache.org/repos/asf/activemq-6/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-6/commit/2154c754
Tree: http://git-wip-us.apache.org/repos/asf/activemq-6/tree/2154c754
Diff: http://git-wip-us.apache.org/repos/asf/activemq-6/diff/2154c754

Branch: refs/heads/master
Commit: 2154c754c850568988251d8c04ebfabdd41d9aee
Parents: 41b823b
Author: Clebert Suconic <cl...@apache.org>
Authored: Thu Apr 9 15:00:06 2015 -0400
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Apr 9 15:03:47 2015 -0400

----------------------------------------------------------------------
 .../apache/activemq/core/transaction/impl/TransactionImpl.java  | 5 ++++-
 .../activemq/tests/integration/DuplicateDetectionTest.java      | 1 +
 2 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-6/blob/2154c754/activemq-server/src/main/java/org/apache/activemq/core/transaction/impl/TransactionImpl.java
----------------------------------------------------------------------
diff --git a/activemq-server/src/main/java/org/apache/activemq/core/transaction/impl/TransactionImpl.java b/activemq-server/src/main/java/org/apache/activemq/core/transaction/impl/TransactionImpl.java
index 2511e4e..4697fba 100644
--- a/activemq-server/src/main/java/org/apache/activemq/core/transaction/impl/TransactionImpl.java
+++ b/activemq-server/src/main/java/org/apache/activemq/core/transaction/impl/TransactionImpl.java
@@ -167,7 +167,10 @@ public class TransactionImpl implements Transaction
                   // so we reset it now
                   beforeRollback();
                   afterRollback();
-                  operations.clear();
+                  if (operations != null)
+                  {
+                     operations.clear();
+                  }
                   throw exception;
                }
                else

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/2154c754/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/DuplicateDetectionTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/DuplicateDetectionTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/DuplicateDetectionTest.java
index 3fe9ad0..486a552 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/DuplicateDetectionTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/DuplicateDetectionTest.java
@@ -1245,6 +1245,7 @@ public class DuplicateDetectionTest extends ServiceTestBase
       }
       catch (XAException expected)
       {
+         assertTrue(expected.getCause().toString().contains("DUPLICATE_ID_REJECTED"));
       }
 
       session.rollback(xid2);