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

jbonofre pushed a commit to branch activemq-6.1.x
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/activemq-6.1.x by this push:
     new d9d321e8a7 [AMQ-9768] Fix JMX value escaping in web console. (#1487)
d9d321e8a7 is described below

commit d9d321e8a7611a82b111a13b3195932107a88b2c
Author: Albertas Vyšniauskas <[email protected]>
AuthorDate: Thu Sep 25 09:07:59 2025 +0300

    [AMQ-9768] Fix JMX value escaping in web console. (#1487)
    
    (cherry picked from commit f68fff981b5a7b62a68b8c2f4ef01c73cf2d3404)
---
 .../apache/activemq/web/BrokerFacadeSupport.java   | 30 +++++++++++-----------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git 
a/activemq-web/src/main/java/org/apache/activemq/web/BrokerFacadeSupport.java 
b/activemq-web/src/main/java/org/apache/activemq/web/BrokerFacadeSupport.java
index 5f8d7df610..ee090a2907 100644
--- 
a/activemq-web/src/main/java/org/apache/activemq/web/BrokerFacadeSupport.java
+++ 
b/activemq-web/src/main/java/org/apache/activemq/web/BrokerFacadeSupport.java
@@ -42,8 +42,8 @@ import org.apache.activemq.broker.jmx.ProducerViewMBean;
 import org.apache.activemq.broker.jmx.QueueViewMBean;
 import org.apache.activemq.broker.jmx.SubscriptionViewMBean;
 import org.apache.activemq.broker.jmx.TopicViewMBean;
+import org.apache.activemq.util.JMXSupport;
 import org.apache.activemq.web.util.ExceptionUtils;
-import org.springframework.util.StringUtils;
 
 /**
  * A useful base class for an implementation of {@link BrokerFacade}
@@ -78,7 +78,7 @@ public abstract class BrokerFacadeSupport implements 
BrokerFacade {
     @Override
     public Collection<SubscriptionViewMBean> getTopicSubscribers(String 
topicName) throws Exception {
         String brokerName = getBrokerName();
-        topicName = StringUtils.replace(topicName, "\"", "_");
+        topicName = JMXSupport.encodeObjectNamePart(topicName);
         ObjectName query = new 
ObjectName("org.apache.activemq:type=Broker,brokerName=" + brokerName
                 + ",destinationType=Topic,destinationName=" + topicName + 
",endpoint=Consumer,*");
         Set<ObjectName> queryResult = queryNames(query, null);
@@ -171,20 +171,22 @@ public abstract class BrokerFacadeSupport implements 
BrokerFacade {
     @SuppressWarnings("unchecked")
     public Collection<String> getConnections(String connectorName) throws 
Exception {
         String brokerName = getBrokerName();
+        connectorName = JMXSupport.encodeObjectNamePart(connectorName);
         ObjectName query = new 
ObjectName("org.apache.activemq:type=Broker,brokerName=" + brokerName
-            + ",connector=clientConnectors,connectorName=" + connectorName + 
",connectionViewType=clientId" + ",connectionName=*");        Set<ObjectName> 
queryResult = queryNames(query, null);
+            + ",connector=clientConnectors,connectorName=" + connectorName + 
",connectionViewType=clientId,connectionName=*");
+        Set<ObjectName> queryResult = queryNames(query, null);
+        Collection<ConnectionViewMBean> connections = 
getManagedObjects(queryResult.toArray(new ObjectName[queryResult.size()]),
+                ConnectionViewMBean.class);
         Collection<String> result = new ArrayList<String>(queryResult.size());
-        for (ObjectName on : queryResult) {
-            String name = 
StringUtils.replace(on.getKeyProperty("connectionName"), "_", ":");
-            result.add(name);
-        }
+        for (ConnectionViewMBean connection : connections)
+            result.add(connection.getClientId());
         return result;
     }
 
     @Override
     @SuppressWarnings("unchecked")
     public ConnectionViewMBean getConnection(String connectionName) throws 
Exception {
-        connectionName = StringUtils.replace(connectionName, ":", "_");
+        connectionName = JMXSupport.encodeObjectNamePart(connectionName);
         String brokerName = getBrokerName();
         ObjectName query = new 
ObjectName("org.apache.activemq:type=Broker,brokerName=" + brokerName
                 + ",connector=clientConnectors,*,connectionName=" + 
connectionName);
@@ -211,6 +213,7 @@ public abstract class BrokerFacadeSupport implements 
BrokerFacade {
     @Override
     public ConnectorViewMBean getConnector(String name) throws Exception {
         String brokerName = getBrokerName();
+        name = JMXSupport.encodeObjectNamePart(name);
         ObjectName objectName = new 
ObjectName("org.apache.activemq:type=Broker,brokerName=" + brokerName
                 + ",connector=clientConnectors,connectorName=" + name);
         return (ConnectorViewMBean) newProxyInstance(objectName, 
ConnectorViewMBean.class, true);
@@ -239,8 +242,7 @@ public abstract class BrokerFacadeSupport implements 
BrokerFacade {
     @SuppressWarnings("unchecked")
     public Collection<SubscriptionViewMBean> getQueueConsumers(String 
queueName) throws Exception {
         String brokerName = getBrokerName();
-        queueName = StringUtils.replace(queueName, "\"", "_");
-        queueName = StringUtils.replace(queueName, ":", "_");
+        queueName = JMXSupport.encodeObjectNamePart(queueName);
         ObjectName query = new 
ObjectName("org.apache.activemq:type=Broker,brokerName=" + brokerName
                 + ",destinationType=Queue,destinationName=" + queueName + 
",endpoint=Consumer,*");
         Set<ObjectName> queryResult = queryNames(query, null);
@@ -251,8 +253,7 @@ public abstract class BrokerFacadeSupport implements 
BrokerFacade {
     @SuppressWarnings("unchecked")
     public Collection<ProducerViewMBean> getQueueProducers(String queueName) 
throws Exception {
         String brokerName = getBrokerName();
-        queueName = StringUtils.replace(queueName, "\"", "_");
-        queueName = StringUtils.replace(queueName, ":", "_");
+        queueName = JMXSupport.encodeObjectNamePart(queueName);
         ObjectName query = new 
ObjectName("org.apache.activemq:type=Broker,brokerName=" + brokerName
                 + ",destinationType=Queue,destinationName=" + queueName + 
",endpoint=Producer,*");
         Set<ObjectName> queryResult = queryNames(query, null);
@@ -263,8 +264,7 @@ public abstract class BrokerFacadeSupport implements 
BrokerFacade {
     @SuppressWarnings("unchecked")
     public Collection<ProducerViewMBean> getTopicProducers(String topicName) 
throws Exception {
         String brokerName = getBrokerName();
-        topicName = StringUtils.replace(topicName, "\"", "_");
-        topicName = StringUtils.replace(topicName, ":", "_");
+        topicName = JMXSupport.encodeObjectNamePart(topicName);
         ObjectName query = new 
ObjectName("org.apache.activemq:type=Broker,brokerName=" + brokerName
                 + ",destinationType=Topic,destinationName=" + topicName + 
",endpoint=Producer,*");
         Set<ObjectName> queryResult = queryNames(query, null);
@@ -274,7 +274,7 @@ public abstract class BrokerFacadeSupport implements 
BrokerFacade {
     @Override
     @SuppressWarnings("unchecked")
     public Collection<SubscriptionViewMBean> getConsumersOnConnection(String 
connectionName) throws Exception {
-        connectionName = StringUtils.replace(connectionName, ":", "_");
+        connectionName = JMXSupport.encodeObjectNamePart(connectionName);
         String brokerName = getBrokerName();
         ObjectName query = new 
ObjectName("org.apache.activemq:type=Broker,brokerName=" + brokerName
                 + ",*,endpoint=Consumer,clientId=" + connectionName);


---------------------------------------------------------------------
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