SLING-6809 : toString improved to enlist more details - including a paranoia fallback that goes to the previous output in case of any Exception
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1794027 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/discovery/base/commons/DefaultTopologyView.java b/src/main/java/org/apache/sling/discovery/base/commons/DefaultTopologyView.java
index a85c20b..978ebaf 100644
--- a/src/main/java/org/apache/sling/discovery/base/commons/DefaultTopologyView.java
+++ b/src/main/java/org/apache/sling/discovery/base/commons/DefaultTopologyView.java
@@ -243,8 +243,32 @@
@Override
public String toString() {
+ StringBuilder sb = new StringBuilder();
+ try{
+ boolean firstCluster = true;
+ for (ClusterView clusterView : getClusterViews()) {
+ if (!firstCluster) {
+ sb.append(", ");
+ }
+ firstCluster = false;
+ sb.append("[clusterId=" + clusterView.getId() + ", instances=");
+ boolean firstInstance = true;
+ for (InstanceDescription id : clusterView.getInstances()) {
+ if (!firstInstance) {
+ sb.append(", ");
+ }
+ firstInstance = false;
+ sb.append("[id=" + id.getSlingId() + ", isLeader=" + id.isLeader() +
+ ", isLocal=" + id.isLocal() + "]");
+ }
+ sb.append("]");
+ }
+ } catch(Exception e) {
+ // paranoia fallback
+ sb = new StringBuilder(instances.toString());
+ }
return "DefaultTopologyView[current=" + isCurrent() + ", num=" + instances.size() + ", instances="
- + instances + "]";
+ + sb + "]";
}
@Override