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

clebertsuconic 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 2ec96bf  ARTEMIS-2488: Handle the case where source address is null
     new 8d9cf04  This closes #2834
2ec96bf is described below

commit 2ec96bf46de0366fcf5332eb87eacb0f27f09db2
Author: Ulf Lilleengen <l...@redhat.com>
AuthorDate: Fri Sep 13 16:44:01 2019 +0200

    ARTEMIS-2488: Handle the case where source address is null
---
 .../amqp/proton/ProtonServerSenderContext.java     |  2 +-
 .../amqp/proton/ProtonServerSenderContextTest.java | 54 ++++++++++++++++++++++
 2 files changed, 55 insertions(+), 1 deletion(-)

diff --git 
a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContext.java
 
b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContext.java
index 580c4ce..8c4495a 100644
--- 
a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContext.java
+++ 
b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContext.java
@@ -320,7 +320,7 @@ public class ProtonServerSenderContext extends 
ProtonInitializable implements Pr
             addressToUse = 
SimpleString.toSimpleString(CompositeAddress.extractAddressName(source.getAddress()));
             queueNameToUse = 
SimpleString.toSimpleString(CompositeAddress.extractQueueName(source.getAddress()));
          } else {
-            addressToUse = new SimpleString(source.getAddress());
+            addressToUse = SimpleString.toSimpleString(source.getAddress());
          }
          //check to see if the client has defined how we act
          boolean clientDefined = hasCapabilities(TOPIC, source) || 
hasCapabilities(QUEUE, source);
diff --git 
a/artemis-protocols/artemis-amqp-protocol/src/test/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContextTest.java
 
b/artemis-protocols/artemis-amqp-protocol/src/test/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContextTest.java
new file mode 100644
index 0000000..9b2980d
--- /dev/null
+++ 
b/artemis-protocols/artemis-amqp-protocol/src/test/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContextTest.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.artemis.protocol.amqp.proton;
+
+import org.apache.activemq.artemis.core.server.AddressQueryResult;
+import org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback;
+import 
org.apache.activemq.artemis.protocol.amqp.exceptions.ActiveMQAMQPNotFoundException;
+import org.apache.qpid.proton.amqp.messaging.Source;
+import org.apache.qpid.proton.engine.Sender;
+import org.junit.Test;
+
+import java.util.Collections;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class ProtonServerSenderContextTest {
+
+   @Test(expected = ActiveMQAMQPNotFoundException.class)
+   public void testAcceptsNullSourceAddressWhenInitialising() throws Exception 
{
+      Sender mockSender = mock(Sender.class);
+      AMQPConnectionContext mockConnContext = 
mock(AMQPConnectionContext.class);
+
+      AMQPSessionCallback mockSessionCallback = 
mock(AMQPSessionCallback.class);
+
+      AddressQueryResult queryResult = new AddressQueryResult(null, 
Collections.emptySet(), 0, false, false, false, false, 0);
+      when(mockSessionCallback.addressQuery(any(), any(), 
anyBoolean())).thenReturn(queryResult);
+      ProtonServerSenderContext sc = new ProtonServerSenderContext( 
mockConnContext, mockSender, null, mockSessionCallback);
+
+      Source source = new Source();
+      source.setAddress(null);
+      when(mockSender.getRemoteSource()).thenReturn(source);
+
+
+      sc.initialise();
+   }
+
+}

Reply via email to