resilience4j: Springboot application failing on startup with version 1.6.0
Resilience4j version: 1.6.0
Java version: 1.8
Hello Team,
We are trying to upgrade to resilience4j from Hystrix but during the update, our application fails to start with version 1.6.0 whereas it worked well with older version 1.5.0 (which doesn’t support multiple method parameters with @CircuitBreaker).
It is not clear from the release notes, what other dependencies have changed with 1.6.0. Could you please help me figure this out with the help of the below exception trace,
java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy at sun.reflect.annotation.AnnotationParser.parseClassArray(Unknown Source) ~[?:1.8.0_251] at sun.reflect.annotation.AnnotationParser.parseArray(Unknown Source) ~[?:1.8.0_251] at sun.reflect.annotation.AnnotationParser.parseMemberValue(Unknown Source) ~[?:1.8.0_251] at sun.reflect.annotation.AnnotationParser.parseAnnotation2(Unknown Source) ~[?:1.8.0_251] at sun.reflect.annotation.AnnotationParser.parseAnnotations2(Unknown Source) ~[?:1.8.0_251] at sun.reflect.annotation.AnnotationParser.parseAnnotations(Unknown Source) ~[?:1.8.0_251] at java.lang.reflect.Executable.declaredAnnotations(Unknown Source) ~[?:1.8.0_251] at java.lang.reflect.Executable.declaredAnnotations(Unknown Source) ~[?:1.8.0_251] at java.lang.reflect.Executable.getDeclaredAnnotations(Unknown Source) ~[?:1.8.0_251] at java.lang.reflect.Method.getDeclaredAnnotations(Unknown Source) ~[?:1.8.0_251] at org.springframework.core.annotation.AnnotationsScanner.getDeclaredAnnotations(AnnotationsScanner.java:499) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.core.annotation.AnnotationsScanner.isKnownEmpty(AnnotationsScanner.java:543) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.core.annotation.TypeMappedAnnotations.from(TypeMappedAnnotations.java:251) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.core.annotation.MergedAnnotations.from(MergedAnnotations.java:329) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.core.annotation.AnnotatedElementUtils.findAnnotations(AnnotatedElementUtils.java:764) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.core.annotation.AnnotatedElementUtils.hasAnnotation(AnnotatedElementUtils.java:531) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.annotation.BeanAnnotationHelper.isBeanAnnotated(BeanAnnotationHelper.java:41) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.isMatch(ConfigurationClassEnhancer.java:407) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.annotation.ConfigurationClassEnhancer$ConditionalCallbackFilter.accept(ConfigurationClassEnhancer.java:192) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.proxy.Enhancer.emitMethods(Enhancer.java:1217) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:726) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.core.ClassLoaderAwareGeneratorStrategy.generate(ClassLoaderAwareGeneratorStrategy.java:57) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:358) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:585) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:110) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:108) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_251] at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:134) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:319) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:572) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:419) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:137) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:109) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:423) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:257) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:291) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:131) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:707) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:533) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) ~[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) [spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) [spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]
Dependencies: compile “io.github.resilience4j:resilience4j-spring-boot2:1.6.0” compile “io.github.resilience4j:resilience4j-circuitbreaker:1.6.0”
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 1
- Comments: 15 (14 by maintainers)
Commits related to this issue
- Issue #1192 Move ConditionalOnclass annotation as class-level — committed to resilience4j/resilience4j by dlsrb6342 4 years ago
- Issue #1192: Moved ConditionalOnclass annotation as class-level (#1196) — committed to resilience4j/resilience4j by dlsrb6342 4 years ago
- Issue #1192: Moved ConditionalOnclass annotation as class-level (#1196) — committed to hexmind/resilience4j by dlsrb6342 4 years ago
1.6.1 has been released
@SimonScholz would you like to test the new 1.6.1-SNAPSHOT Should be available in some minutes
Strange. There is a
@ConditionalOnClass({Flux.class, ReactorAdapter.class})Maybe this annotation must be on class-level