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<>())