You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by je...@apache.org on 2018/04/03 04:00:20 UTC
[geode] branch develop updated: GEODE-3456: Fix display of 'null'
hosts in Pulse UI (#1717)
This is an automated email from the ASF dual-hosted git repository.
jensdeppe pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 5b21633 GEODE-3456: Fix display of 'null' hosts in Pulse UI (#1717)
5b21633 is described below
commit 5b21633d9b36eb9c9a58b787275fb0fd856db702
Author: Jens Deppe <jd...@pivotal.io>
AuthorDate: Mon Apr 2 21:00:15 2018 -0700
GEODE-3456: Fix display of 'null' hosts in Pulse UI (#1717)
---
.../tools/pulse/internal/data/JMXDataUpdater.java | 65 +++++++++++++---------
1 file changed, 39 insertions(+), 26 deletions(-)
diff --git a/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java b/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java
index a6df106..1dac541 100644
--- a/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java
+++ b/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java
@@ -20,7 +20,6 @@ package org.apache.geode.tools.pulse.internal.data;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.lang.reflect.Array;
import java.math.BigDecimal;
import java.net.Inet4Address;
import java.net.Inet6Address;
@@ -300,34 +299,48 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
cluster.removeClusterRegion(it.next());
}
- // Cluster Members
+ List<ObjectName> serviceMBeans = new ArrayList<>();
+ List<ObjectName> nonServiceMBeans = new ArrayList<>();
+
Set<ObjectName> memberMBeans = this.mbs.queryNames(this.MBEAN_OBJECT_NAME_MEMBER, null);
- for (ObjectName memMBean : memberMBeans) {
- String service = memMBean.getKeyProperty(PulseConstants.MBEAN_KEY_PROPERTY_SERVICE);
+ for (ObjectName mBean : memberMBeans) {
+ String service = mBean.getKeyProperty(PulseConstants.MBEAN_KEY_PROPERTY_SERVICE);
if (service == null) {
- // Cluster Member
- updateClusterMember(memMBean);
+ nonServiceMBeans.add(mBean);
} else {
- switch (service) {
- case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_REGION:
- updateMemberRegion(memMBean);
- break;
- case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_CACHESERVER:
- updateMemberClient(memMBean);
- break;
- case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_GATEWAYRECEIVER:
- updateGatewayReceiver(memMBean);
- break;
- case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_GATEWAYSENDER:
- updateGatewaySender(memMBean);
- break;
- case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_ASYNCEVENTQUEUE:
- updateAsyncEventQueue(memMBean);
- break;
- case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_LOCATOR:
- updateClusterMember(memMBean);
- break;
- }
+ serviceMBeans.add(mBean);
+ }
+ }
+
+ // Make sure that we process 'pure' members first. This ensures that various structures in
+ // Cluster are set up correctly since they are keyed on the 'host' attribute which does not
+ // necessarily appear in other MBeans. This avoids the possibility of having a 'null' host
+ // icon appear in the Pulse UI.
+ for (ObjectName mBean : nonServiceMBeans) {
+ updateClusterMember(mBean);
+ }
+
+ for (ObjectName serviceMBean : serviceMBeans) {
+ String service = serviceMBean.getKeyProperty(PulseConstants.MBEAN_KEY_PROPERTY_SERVICE);
+ switch (service) {
+ case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_REGION:
+ updateMemberRegion(serviceMBean);
+ break;
+ case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_CACHESERVER:
+ updateMemberClient(serviceMBean);
+ break;
+ case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_GATEWAYRECEIVER:
+ updateGatewayReceiver(serviceMBean);
+ break;
+ case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_GATEWAYSENDER:
+ updateGatewaySender(serviceMBean);
+ break;
+ case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_ASYNCEVENTQUEUE:
+ updateAsyncEventQueue(serviceMBean);
+ break;
+ case PulseConstants.MBEAN_KEY_PROPERTY_SERVICE_VALUE_LOCATOR:
+ updateClusterMember(serviceMBean);
+ break;
}
}
--
To stop receiving notification emails like this one, please contact
jensdeppe@apache.org.