@@ -104,14 +104,12 @@ public class RecoverySettings {
104104 DEFAULT_FACTOR_VALUE
105105 );
106106
107- public static final Setting <Double > NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_WRITE_SETTING = factorSetting (
108- "node.bandwidth.recovery.operator.factor.write" ,
109- NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_SETTING
107+ public static final Setting <Double > NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_WRITE_SETTING = operatorFactorSetting (
108+ "node.bandwidth.recovery.operator.factor.write"
110109 );
111110
112- public static final Setting <Double > NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_READ_SETTING = factorSetting (
113- "node.bandwidth.recovery.operator.factor.read" ,
114- NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_SETTING
111+ public static final Setting <Double > NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_READ_SETTING = operatorFactorSetting (
112+ "node.bandwidth.recovery.operator.factor.read"
115113 );
116114
117115 public static final Setting <Double > NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_MAX_OVERCOMMIT_SETTING = Setting .doubleSetting (
@@ -185,6 +183,14 @@ private static Setting<Double> operatorFactorSetting(String key, double defaultV
185183 }, Property .NodeScope , Property .OperatorDynamic );
186184 }
187185
186+ private static Setting <Double > operatorFactorSetting (String key ) {
187+ return new Setting <>(key , NODE_BANDWIDTH_RECOVERY_OPERATOR_FACTOR_SETTING , s -> Setting .parseDouble (s , 0d , 1d , key ), v -> {
188+ if (v == 0d ) {
189+ throw new IllegalArgumentException ("Failed to validate value [" + v + "] for factor setting [" + key + "] must be > [0]" );
190+ }
191+ }, Property .NodeScope , Property .OperatorDynamic );
192+ }
193+
188194 /**
189195 * User-defined factors have a value in (0.0, 1.0] and fall back to a corresponding operator factor setting.
190196 */
0 commit comments