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