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]
