#META-INF/microprofile-config.properties
my.service.MyResource/alwaysFail/CircuitBreaker/delayUnit=java.time.temporal.ChronoUnit.MILLIS
java.lang.ClassCastException: java.lang.String cannot be cast to java.time.temporal.ChronoUnit at fish.payara.microprofile.faulttolerance.interceptors.CircuitBreakerInterceptor.circuitBreak(CircuitBreakerInterceptor.java:220) at fish.payara.microprofile.faulttolerance.interceptors.CircuitBreakerInterceptor.intercept(CircuitBreakerInterceptor.java:129) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:73) at org.jboss.weld.interceptor.proxy.NonTerminalAroundInvokeInvocationContext.proceedInternal(NonTerminalAroundInvokeInvocationContext.java:66) at org.jboss.weld.interceptor.proxy.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:78) at fish.payara.microprofile.metrics.cdi.interceptor.TimedInterceptor.applyInterceptor(TimedInterceptor.java:67) at fish.payara.microprofile.metrics.cdi.interceptor.AbstractInterceptor.preInterceptor(AbstractInterceptor.java:91) at fish.payara.microprofile.metrics.cdi.interceptor.AbstractInterceptor.methodInvocation(AbstractInterceptor.java:78)
MILLIS
as the value:
my.service.MyResource/alwaysFail/CircuitBreaker/delayUnit=MILLIS
will automatically convert to ChronoUnit using its static method valueOf(String), which accepts only the simple name, not full name.
java.lang.ClassCastException: java.lang.String cannot be cast to java.time.temporal.ChronoUnit at fish.payara.microprofile.faulttolerance.interceptors.CircuitBreakerInterceptor.circuitBreak(CircuitBreakerInterceptor.java:220) at fish.payara.microprofile.faulttolerance.interceptors.CircuitBreakerInterceptor.intercept(CircuitBreakerInterceptor.java:129) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:73) at org.jboss.weld.interceptor.proxy.NonTerminalAroundInvokeInvocationContext.proceedInternal(NonTerminalAroundInvokeInvocationContext.java:66) at org.jboss.weld.interceptor.proxy.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:78)
ChronoUnit delayUnit = (ChronoUnit) FaultToleranceCdiUtils.getOverrideValue(
config, CircuitBreaker.class, "delayUnit", invocationContext, String.class)
.orElse(circuitBreaker.delayUnit());