[SCB-2581]SlidingWindowType is not properly read from configuration
diff --git a/governance/src/main/java/org/apache/servicecomb/governance/policy/CircuitBreakerPolicy.java b/governance/src/main/java/org/apache/servicecomb/governance/policy/CircuitBreakerPolicy.java
index 20a4906..1785fc6 100644
--- a/governance/src/main/java/org/apache/servicecomb/governance/policy/CircuitBreakerPolicy.java
+++ b/governance/src/main/java/org/apache/servicecomb/governance/policy/CircuitBreakerPolicy.java
@@ -16,13 +16,13 @@
*/
package org.apache.servicecomb.governance.policy;
+import java.time.Duration;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.governance.utils.GovernanceUtils;
import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig.SlidingWindowType;
-import java.time.Duration;
-
public class CircuitBreakerPolicy extends AbstractPolicy {
public static final float DEFAULT_FAILURE_RATE_THRESHOLD = 50;
@@ -136,10 +136,12 @@
if (StringUtils.isEmpty(slidingWindowType)) {
return SlidingWindowType.TIME_BASED;
}
- if (SlidingWindowType.COUNT_BASED.equals(slidingWindowType)) {
- return SlidingWindowType.COUNT_BASED;
+
+ try {
+ return SlidingWindowType.valueOf(slidingWindowType);
+ } catch (Exception e) {
+ return SlidingWindowType.TIME_BASED;
}
- return SlidingWindowType.TIME_BASED;
}
public String getSlidingWindowType() {