[ 
https://issues.apache.org/jira/browse/ARTEMIS-4212?focusedWorklogId=856821&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-856821
 ]

ASF GitHub Bot logged work on ARTEMIS-4212:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 13/Apr/23 16:05
            Start Date: 13/Apr/23 16:05
    Worklog Time Spent: 10m 
      Work Description: jbertram commented on code in PR #4421:
URL: https://github.com/apache/activemq-artemis/pull/4421#discussion_r1165748959


##########
artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/QueueConfiguration.java:
##########
@@ -301,6 +338,7 @@ public QueueConfiguration setName(SimpleString name) {
       if (CompositeAddress.isFullyQualified(name)) {
          this.name = CompositeAddress.extractQueueName(name);
          this.address = CompositeAddress.extractAddressName(name);
+         this.fqqn = true;

Review Comment:
   Fixed.



##########
artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/QueueConfiguration.java:
##########
@@ -607,6 +645,16 @@ public QueueConfiguration setAutoCreated(Boolean 
autoCreated) {
       return this;
    }
 
+   /**
+    * Based on if the name or address uses FQQN when set
+    *
+    * defaults to {@code false}
+    * @return
+    */
+   public Boolean isFqqn() {
+      return fqqn == null ? false : fqqn;

Review Comment:
   Fixed.



##########
artemis-junit/artemis-junit-4/src/test/java/org/apache/activemq/artemis/junit/EmbeddedActiveMQResourceCustomConfigurationTest.java:
##########
@@ -38,13 +38,16 @@ public class 
EmbeddedActiveMQResourceCustomConfigurationTest {
    static final String TEST_ADDRESS = "test.address";
 
    QueueConfiguration queueConfiguration = new 
QueueConfiguration(TEST_QUEUE).setAddress(TEST_ADDRESS);
-   Configuration customConfiguration = new 
ConfigurationImpl().setPersistenceEnabled(false).setSecurityEnabled(true).addQueueConfiguration(queueConfiguration);
+   Configuration customConfiguration = new 
ConfigurationImpl().setPersistenceEnabled(false).setSecurityEnabled(true).addQueueConfiguration(queueConfiguration).addAcceptorConfiguration("amqp",
 "tcp://localhost:5672");

Review Comment:
   Fixed.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 856821)
    Time Spent: 2h 50m  (was: 2h 40m)

> Unexpected Behavior when Routing Type of Destinations Doesn't Match Clients
> ---------------------------------------------------------------------------
>
>                 Key: ARTEMIS-4212
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4212
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>            Reporter: Justin Bertram
>            Assignee: Justin Bertram
>            Priority: Major
>          Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> When the routing type of an address (and associated queue) does not match the 
> routing type of a client producer, the resultant behavior is a bit unexpected.
> Expected Behavior:
> If a client sends a message to an address / queue with the same name, but a 
> different routing type, the expected behavior would be to throw some sort of 
> InvalidDestinationException (if auto-create is not enabled), or to create the 
> matching address and queue with the appropriate routing type. The routing 
> count on the existing address (with non-matching routing type) should remain 
> unchanged.
> Actual Behavior:
> When sending, for example, to a predefined anycast address and queue from a 
> multiccast (Topic) producer, the routed count on the address is incremented, 
> but the message count on the matching queue is not. No indication is given at 
> the client end that the messages failed to get routed - they are silently 
> dropped.
> This is reproducible using a qpid / proton queue producer to send to a 
> multicast address or using a topic producer to send to an anycast address, 
> e.g.:
> 1. Create a a broker, setting auto-create-queues and auto-create addresses to 
> "false" for the catch-all address-setting
> 2. Start the broker and create a an address and matching queue with a ANYCAST 
> routing type
> 3. Send 1000 messages to the broker using the same queue name but mismatched 
> routing type:
> {code}
> ./artemis producer --url amqp://localhost:61616 --user admin --password admin 
> --destination topic://{QUEUE NAME} --protocol amqp
> {code}
> No error is emitted and the routing count is incremented by 1000 at the 
> address level, but remains unchanged at the destination level.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to