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

brusdev pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new d29ef5d5bf ARTEMIS-5686 fix retroactive address name parsing
d29ef5d5bf is described below

commit d29ef5d5bff8478d74d2f0b939caa777dcb2139f
Author: Justin Bertram <[email protected]>
AuthorDate: Mon Nov 10 09:17:40 2025 -0600

    ARTEMIS-5686 fix retroactive address name parsing
    
    The current retroactive address name parsing uses indexOf which can get
    confused when the address name itself uses part of the retroactive
    naming convention. This commit fixes that problem by using strictly
    position-based logic based on lengths of known Strings.
---
 .../activemq/artemis/api/core/management/ResourceNames.java      | 2 +-
 .../activemq/artemis/api/core/management/ResourceNamesTest.java  | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ResourceNames.java
 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ResourceNames.java
index 6d251e897c..29a840f54f 100644
--- 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ResourceNames.java
+++ 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ResourceNames.java
@@ -73,7 +73,7 @@ public final class ResourceNames {
    }
 
    public static String decomposeRetroactiveResourceAddressName(String prefix, 
String delimiter, String address) {
-      return address.substring(address.indexOf(prefix) + prefix.length(), 
address.indexOf(delimiter + trimLastCharacter(ADDRESS)));
+      return address.substring(prefix.length(), address.length() - 
(delimiter.length() + ADDRESS.length() + RETROACTIVE_SUFFIX.length()));
    }
 
    private static String trimLastCharacter(String toTrim) {
diff --git 
a/artemis-core-client/src/test/java/org/apache/activemq/artemis/api/core/management/ResourceNamesTest.java
 
b/artemis-core-client/src/test/java/org/apache/activemq/artemis/api/core/management/ResourceNamesTest.java
index 06893b9295..f600803e1f 100644
--- 
a/artemis-core-client/src/test/java/org/apache/activemq/artemis/api/core/management/ResourceNamesTest.java
+++ 
b/artemis-core-client/src/test/java/org/apache/activemq/artemis/api/core/management/ResourceNamesTest.java
@@ -84,6 +84,15 @@ public class ResourceNamesTest {
       assertEquals(testAddress.toString(), 
ResourceNames.decomposeRetroactiveResourceAddressName(prefix, delimiter, 
testResourceAddressName));
    }
 
+   @TestTemplate
+   public void testDecomposeRetroactiveAddressNamedAddress() {
+      String testAddress = "address";
+      String prefix = 
ActiveMQDefaultConfiguration.getInternalNamingPrefix().replace('.', 
delimiterChar);
+      String baseName = prefix + testAddress + delimiter;
+      String testResourceAddressName = baseName + 
ResourceNames.ADDRESS.replace('.', delimiterChar) + 
ResourceNames.RETROACTIVE_SUFFIX;
+      assertEquals(testAddress.toString(), 
ResourceNames.decomposeRetroactiveResourceAddressName(prefix, delimiter, 
testResourceAddressName));
+   }
+
    @TestTemplate
    public void testIsRetroactiveResource() {
       assertTrue(ResourceNames.isRetroactiveResource(prefix, 
SimpleString.of(testResourceAddressName)));


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to