You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by mi...@apache.org on 2020/06/23 08:37:21 UTC
[activemq-artemis] branch master updated: ARTEMIS-2815: Fix null
pointer exception on attempt to update queue without filter
This is an automated email from the ASF dual-hosted git repository.
michaelpearce pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/master by this push:
new 3e394b4 ARTEMIS-2815: Fix null pointer exception on attempt to update queue without filter
new 18acd5f This closes #3195
3e394b4 is described below
commit 3e394b45e92a012b2d060ffae37918a840ce0dd2
Author: Havret <h4...@gmail.com>
AuthorDate: Sun Jun 21 00:17:26 2020 +0200
ARTEMIS-2815: Fix null pointer exception on attempt to update queue without filter
---
.../activemq/artemis/core/server/impl/QueueImpl.java | 4 ++--
.../management/ActiveMQServerControlTest.java | 19 +++++++++++++++++++
2 files changed, 21 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 3a7a224..d2e7d88 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
@@ -3954,7 +3954,7 @@ public class QueueImpl extends CriticalComponentImpl implements Queue {
.setAddress(address)
.setId(id)
.setRoutingType(routingType)
- .setFilterString(filter.getFilterString())
+ .setFilterString(filter == null ? null : filter.getFilterString())
.setDurable(isDurable())
.setUser(user)
.setMaxConsumers(maxConsumers)
@@ -3963,7 +3963,7 @@ public class QueueImpl extends CriticalComponentImpl implements Queue {
.setGroupBuckets(groupBuckets)
.setGroupFirstKey(groupFirstKey)
.setLastValue(false)
- .setLastValue(null)
+ .setLastValueKey((String) null)
.setNonDestructive(nonDestructive)
.setPurgeOnNoConsumers(purgeOnNoConsumers)
.setConsumersBeforeDispatch(consumersBeforeDispatch)
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
index 53cd3c5..a0656f3 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
@@ -568,6 +568,25 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
}
@Test
+ public void testCreateAndUpdateQueueWithoutFilter() throws Exception {
+ SimpleString address = RandomUtil.randomSimpleString();
+ SimpleString name = RandomUtil.randomSimpleString();
+
+ ActiveMQServerControl serverControl = createManagementControl();
+
+ serverControl.createQueue(new QueueConfiguration(name).setAddress(address).setRoutingType(RoutingType.ANYCAST).setAutoCreateAddress(true).setFilterString((String) null).toJSON());
+ serverControl.updateQueue(new QueueConfiguration(name).setAddress(address).setRoutingType(RoutingType.ANYCAST).setMaxConsumers(1).toJSON());
+
+ QueueControl queueControl = ManagementControlHelper.createQueueControl(address, name, RoutingType.ANYCAST, mbeanServer);
+ Assert.assertEquals(address.toString(), queueControl.getAddress());
+ Assert.assertEquals(name.toString(), queueControl.getName());
+ Assert.assertNull(queueControl.getFilter());
+ Assert.assertEquals(1, queueControl.getMaxConsumers());
+
+ serverControl.destroyQueue(name.toString());
+ }
+
+ @Test
public void testGetQueueNames() throws Exception {
SimpleString address = RandomUtil.randomSimpleString();
SimpleString name = RandomUtil.randomSimpleString();