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

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

commit 8befb65aacb4dab10cef2ee1618076a74fd7478d
Author: Grzegorz Grzybek <gr.grzy...@gmail.com>
AuthorDate: Wed Jul 16 17:43:07 2025 +0200

    ARTEMIS-5546: Prevent rejected promises initialized in ArtemisService
---
 .../artemis-console-plugin/src/artemis-service.ts  | 24 ++++++++++++----------
 .../packages/artemis-console-plugin/src/index.ts   | 15 ++++++++++----
 2 files changed, 24 insertions(+), 15 deletions(-)

diff --git 
a/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/artemis-service.ts
 
b/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/artemis-service.ts
index fa1a6b2..c04cea0 100644
--- 
a/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/artemis-service.ts
+++ 
b/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/artemis-service.ts
@@ -144,7 +144,7 @@ const typeLabels = ["DEFAULT", "1", "object", "text", 
"bytes", "map", "stream",
 class ArtemisService {
 
     private brokerObjectName: Promise<string>
-    private brokerInfo: Promise<BrokerInfo>
+    private brokerInfo: Promise<BrokerInfo | null>
 
     constructor() {
         this.brokerObjectName = this.initBrokerObjectName();
@@ -153,16 +153,18 @@ class ArtemisService {
 
     private async initBrokerObjectName(): Promise<string> {
         const config = await configManager.getArtemisconfig();
-        var search = await jolokiaService.search(config.jmx.domain + 
":broker=*");
+        var search = await jolokiaService.search(config.jmx.domain + 
":broker=*").catch(() => null);
         return search && search[0] ? search[0] : "";
     }
 
-
-
-    async initBrokerInfo(): Promise<BrokerInfo> {
-        return new Promise<BrokerInfo>(async (resolve, reject) => {
+    async initBrokerInfo(): Promise<BrokerInfo | null> {
+        return new Promise<BrokerInfo | null>(async (resolve, reject) => {
             var brokerObjectName = await this.brokerObjectName;
-            var response = await 
jolokiaService.readAttributes(brokerObjectName);
+            if ("" === brokerObjectName) {
+                resolve(null)
+                return
+            }
+            var response = await 
jolokiaService.readAttributes(brokerObjectName).catch(e => null);
             if (response) {
                 var name = response.Name as string;
                 var nodeID = response.NodeID as string;
@@ -194,11 +196,11 @@ class ArtemisService {
                 };
                 resolve(brokerInfo);
             }
-            reject("invalid response:" + response);
+            resolve(null)
         });
     }
 
-    async getBrokerInfo(): Promise<BrokerInfo> {
+    async getBrokerInfo(): Promise<BrokerInfo | null> {
         return await this.brokerInfo;
     }
 
@@ -208,9 +210,9 @@ class ArtemisService {
                 var brokerInfo = await this.getBrokerInfo();
                 var brokerObjectName = await this.brokerObjectName;
                 const topology = await 
jolokiaService.execute(brokerObjectName, LIST_NETWORK_TOPOLOGY_SIG) as string;
-                brokerInfo.networkTopology =  new 
BrokerNetworkTopology(JSON.parse(topology));
+                brokerInfo!.networkTopology =  new 
BrokerNetworkTopology(JSON.parse(topology));
                 var brokerTopology: BrokerTopology = {
-                    broker: brokerInfo,
+                    broker: brokerInfo!,
                     addresses: []
                 }
                 var addresses: string[] = (await 
this.getAllAddresses(addressFilter));
diff --git 
a/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/index.ts
 
b/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/index.ts
index 3bea8eb..efdc34f 100644
--- 
a/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/index.ts
+++ 
b/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/index.ts
@@ -25,16 +25,23 @@ import { ArtemisHeader } from './ArtemisHeader';
 
 export const artemis: HawtioPlugin = () => {
 
-
   log.info('Loading', artemisPluginName);
 
+  const isActive = async () => {
+    try {
+      return workspace.treeContainsDomainAndProperties((await 
configManager.getArtemisconfig()).jmx.domain)
+    } catch {
+      return false
+    }
+  }
+
   hawtio.addPlugin({
     id: artemisPluginName,
     title: artemisPluginTitle,
     path: artemisPluginPath,
     component: Artemis,
     order: -2,
-    isActive:  async () => workspace.treeContainsDomainAndProperties((await 
configManager.getArtemisconfig()).jmx.domain),
+    isActive: isActive,
   })
 
   hawtio.addPlugin({
@@ -43,7 +50,7 @@ export const artemis: HawtioPlugin = () => {
     path: artemisJMXPluginPath,
     component: ArtemisJMX,
     order: -1,
-    isActive:  async () => workspace.treeContainsDomainAndProperties((await 
configManager.getArtemisconfig()).jmx.domain),
+    isActive: isActive,
   })
 
   hawtio.addPlugin({
@@ -51,7 +58,7 @@ export const artemis: HawtioPlugin = () => {
     title: artemisHeaderPluginName,
     headerItems: [{ component: ArtemisHeader, universal: true }],
     order: 200,
-    isActive: async () => workspace.treeContainsDomainAndProperties((await 
configManager.getArtemisconfig()).jmx.domain),
+    isActive: isActive,
   })
 
   helpRegistry.add(artemisPluginName, artemisPluginTitle, help, 1)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@activemq.apache.org
For additional commands, e-mail: commits-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to