diff --git a/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/AbstractNumericRule.java b/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/AbstractNumericRule.java index c0cc056..73dcea7 100644 --- a/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/AbstractNumericRule.java +++ b/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/AbstractNumericRule.java @@ -29,6 +29,9 @@ protected AbstractNumericRule(T initalLimit, JMXFunction jmxFunction) { } public EvaluationResult evaluate(MBeanServerConnection mbsc) { + if (!isEnabled()) { + return new EvaluationResult(HealthStatus.UNKNOW); + } try { final T currentValue = jmxFunction.evaluate(mbsc); if (getLimit().compareTo(currentValue) <= 0) { // i.e. getLimit() <= execTime diff --git a/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/EvaluationResult.java b/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/EvaluationResult.java index 0d31a4f..197e98e 100644 --- a/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/EvaluationResult.java +++ b/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/EvaluationResult.java @@ -1,5 +1,6 @@ package org.levigo.jadice.server.converterclient.gui.clusterhealth.rule; +import java.util.Objects; import java.util.Optional; import org.levigo.jadice.server.converterclient.gui.clusterhealth.HealthStatus; @@ -13,6 +14,10 @@ public class EvaluationResult { public final Optional currentValue; public final Optional error; + + public EvaluationResult(HealthStatus status) { + this(status, Optional.empty(), Optional.empty(), Optional.empty()); + } public EvaluationResult(HealthStatus status, T currentValue) { this(status, Optional.of(currentValue), Optional.empty(), Optional.empty()); @@ -27,9 +32,9 @@ public EvaluationResult(HealthStatus status, Throwable error) { } private EvaluationResult(HealthStatus status, Optional currentValue, Optional message, Optional error) { - this.status = status; - this.currentValue = currentValue; - this.message = message; - this.error = error; + this.status = Objects.requireNonNull(status, "status must not be null"); + this.currentValue = Objects.requireNonNull(currentValue, "currentValue must not be null"); + this.message = Objects.requireNonNull(message, "message must not be null"); + this.error = Objects.requireNonNull(error, "error must not be null"); } } diff --git a/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/ServerRunningRule.java b/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/ServerRunningRule.java index 5c84cad..5f13af9 100644 --- a/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/ServerRunningRule.java +++ b/src/main/java/org/levigo/jadice/server/converterclient/gui/clusterhealth/rule/ServerRunningRule.java @@ -32,6 +32,9 @@ public BooleanProperty enabledProperty() { @Override public EvaluationResult evaluate(MBeanServerConnection mbsc) { + if (!isEnabled()) { + return new EvaluationResult<>(HealthStatus.UNKNOW); + } try { if (JmxHelper.isRunning(mbsc)) { return new EvaluationResult(HealthStatus.GOOD, true);