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