Repository: qpid-jms
Updated Branches:
  refs/heads/master a21dec049 -> 020ae3a7c


QPIDJMS-227 Fix NPE on close of Anonymous producer      

When anonymous relay is not supported the producer close can NPE when
the producer cache is not enabled.

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/020ae3a7
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/020ae3a7
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/020ae3a7

Branch: refs/heads/master
Commit: 020ae3a7c9897478a88995b2b5ddb87034b333ff
Parents: a21dec0
Author: Timothy Bish <[email protected]>
Authored: Mon Nov 28 12:59:08 2016 -0500
Committer: Timothy Bish <[email protected]>
Committed: Mon Nov 28 12:59:08 2016 -0500

----------------------------------------------------------------------
 .../qpid/jms/provider/amqp/AmqpAnonymousFallbackProducer.java | 7 +++++--
 .../apache/qpid/jms/integration/IntegrationTestFixture.java   | 6 +++++-
 .../apache/qpid/jms/integration/SessionIntegrationTest.java   | 1 +
 3 files changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/020ae3a7/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpAnonymousFallbackProducer.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpAnonymousFallbackProducer.java
 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpAnonymousFallbackProducer.java
index 3e07b25..447b4b2 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpAnonymousFallbackProducer.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpAnonymousFallbackProducer.java
@@ -110,8 +110,11 @@ public class AmqpAnonymousFallbackProducer extends 
AmqpProducer {
     @Override
     public void close(AsyncResult request) {
         // Trigger an immediate close, the internal producers that are 
currently in the cache
-        for (AmqpProducer producer : producerCache.values()) {
-            producer.close(new CloseRequest(producer));
+        // if the cache is enabled.
+        if (connection.isAnonymousProducerCache()) {
+            for (AmqpProducer producer : producerCache.values()) {
+                producer.close(new CloseRequest(producer));
+            }
         }
 
         request.onSuccess();

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/020ae3a7/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
index 2ddf739..afcef74 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
@@ -137,7 +137,11 @@ public class IntegrationTestFixture {
         final String baseURI = scheme + "://localhost:" + 
testPeer.getServerPort();
         String remoteURI = baseURI;
         if (optionsString != null) {
-            remoteURI = baseURI + optionsString;
+            if (optionsString.startsWith("?")) {
+                remoteURI = baseURI + optionsString;
+            } else {
+                remoteURI = baseURI + "?" + optionsString;
+            }
         }
 
         return remoteURI;

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/020ae3a7/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SessionIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SessionIntegrationTest.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SessionIntegrationTest.java
index 2922b0f..2b188c2 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SessionIntegrationTest.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SessionIntegrationTest.java
@@ -1131,6 +1131,7 @@ public class SessionIntegrationTest extends 
QpidJmsTestCase {
 
             Message message = session.createMessage();
             producer.send(dest, message);
+            producer.close();
 
             connection.close();
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to