fix Broken Logic in perPartitionHealthCheck (#2012)
fix Broken Logic in perPartitionHealthCheck
diff --git a/helix-core/src/main/java/org/apache/helix/util/InstanceValidationUtil.java b/helix-core/src/main/java/org/apache/helix/util/InstanceValidationUtil.java
index d35fdb4..7c63831 100644
--- a/helix-core/src/main/java/org/apache/helix/util/InstanceValidationUtil.java
+++ b/helix-core/src/main/java/org/apache/helix/util/InstanceValidationUtil.java
@@ -264,8 +264,8 @@
|| globalPartitionHealthStatus.get(siblingInstance).isEmpty()) {
unhealthyPartitions.computeIfAbsent(partition, list -> new ArrayList<>())
.add(HOST_NO_STATE_ERROR + siblingInstance);
- } else if (globalPartitionHealthStatus.get(siblingInstance)
- .getOrDefault(partition, false)) {
+ } else if (!(globalPartitionHealthStatus.get(siblingInstance)
+ .getOrDefault(partition, false))) {
// We are checking sibling partition healthy status. So if partition health does not
// exist or it is not healthy. We should mark this partition is unhealthy.
unhealthyPartitions.computeIfAbsent(partition, list -> new ArrayList<>())