Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Application not starting with @EnableTransactionManagement(mode = AdviceMode.ASPECTJ) #32882

Closed
aspan opened this issue May 23, 2024 · 6 comments
Assignees
Labels
in: core Issues in core modules (aop, beans, core, context, expression) in: data Issues in data modules (jdbc, orm, oxm, tx) status: backported An issue that has been backported to maintenance branches type: regression A bug that is also a regression
Milestone

Comments

@aspan
Copy link
Contributor

aspan commented May 23, 2024

When upgrading spring framework from 5.3.34 to 5.3.35 and 5.3.36 or from 6.1.6 to 6.1.7 or 6.1.8 the application context can't be initialised. When changing to @EnableTransactionManagement the application starts but we got other transaction related problems instead.

Here is the stack trace when run with spring framework 6.1.8:

[INFO] [stdout] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxx' defined in class path resource [configuration/DatabaseConfiguration.class]: BeanPostProcessor before instantiation of bean failed
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
[INFO] [stdout]         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
[INFO] [stdout]         at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:277)
[INFO] [stdout]         at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:805)
[INFO] [stdout]         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:608)
[INFO] [stdout]         at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
[INFO] [stdout]         at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)
[INFO] [stdout]         at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
[INFO] [stdout]         at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137)
[INFO] [stdout]         at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58)
[INFO] [stdout]         at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46)
[INFO] [stdout]         at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1454)
[INFO] [stdout]         at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:553)
[INFO] [stdout]         at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137)
[INFO] [stdout]         at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108)
[INFO] [stdout]         at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225)
[INFO] [stdout]         at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152)
[INFO] [stdout]         at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130)
[INFO] [stdout]         at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:142)
[INFO] [stdout]         at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:98)
[INFO] [stdout]         at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260)
[INFO] [stdout]         at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:163)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:378)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:383)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:378)
[INFO] [stdout]         at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:212)
[INFO] [stdout]         at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:194)
[INFO] [stdout]         at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1709)
[INFO] [stdout]         at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:556)
[INFO] [stdout]         at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:546)
[INFO] [stdout]         at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
[INFO] [stdout]         at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
[INFO] [stdout]         at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
[INFO] [stdout]         at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:782)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:377)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:290)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:289)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:279)
[INFO] [stdout]         at java.base/java.util.Optional.orElseGet(Optional.java:364)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:278)
[INFO] [stdout]         at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:106)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:105)
[INFO] [stdout]         at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90)
[INFO] [stdout]         at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
[INFO] [stdout]         at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
[INFO] [stdout]         at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
[INFO] [stdout]         at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
[INFO] [stdout]         at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
[INFO] [stdout]         at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
[INFO] [stdout]         at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
[INFO] [stdout]         at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
[INFO] [stdout]         at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
[INFO] [stdout]         at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
[INFO] [stdout]         at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
[INFO] [stdout]         at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
[INFO] [stdout]         at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
[INFO] [stdout]         at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
[INFO] [stdout]         at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
[INFO] [stdout]         at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
[INFO] [stdout]         at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
[INFO] [stdout]         at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
[INFO] [stdout]         at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
[INFO] [stdout]         at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
[INFO] [stdout] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.annotation.ProxyCachingConfiguration': BeanPostProcessor before instantiation of bean failed
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
[INFO] [stdout]         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
[INFO] [stdout]         at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:409)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1337)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1167)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
[INFO] [stdout]         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
[INFO] [stdout]         at org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.findAdvisorBeans(BeanFactoryAdvisorRetrievalHelper.java:91)
[INFO] [stdout]         at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:111)
[INFO] [stdout]         at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.findCandidateAdvisors(AnnotationAwareAspectJAutoProxyCreator.java:92)
[INFO] [stdout]         at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.shouldSkip(AspectJAwareAdvisorAutoProxyCreator.java:101)
[INFO] [stdout]         at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:281)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:1130)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:1105)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:511)
[INFO] [stdout]         ... 92 common frames omitted
[INFO] [stdout] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.jcache.config.ProxyJCacheConfiguration': BeanPostProcessor before instantiation of bean failed
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
[INFO] [stdout]         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
[INFO] [stdout]         at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:409)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1337)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1167)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
[INFO] [stdout]         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
[INFO] [stdout]         at org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.findAdvisorBeans(BeanFactoryAdvisorRetrievalHelper.java:91)
[INFO] [stdout]         at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:111)
[INFO] [stdout]         at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.findCandidateAdvisors(AnnotationAwareAspectJAutoProxyCreator.java:92)
[INFO] [stdout]         at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.shouldSkip(AspectJAwareAdvisorAutoProxyCreator.java:101)
[INFO] [stdout]         at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:281)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:1130)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:1105)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:511)
[INFO] [stdout]         ... 113 common frames omitted
[INFO] [stdout] Caused by: java.lang.IllegalStateException: Expecting to find 3 arguments to bind by name in advice, but actually found 2 arguments.
[INFO] [stdout]         at org.springframework.aop.aspectj.AbstractAspectJAdvice.bindExplicitArguments(AbstractAspectJAdvice.java:472)
[INFO] [stdout]         at org.springframework.aop.aspectj.AbstractAspectJAdvice.bindArgumentsByName(AbstractAspectJAdvice.java:438)
[INFO] [stdout]         at org.springframework.aop.aspectj.AbstractAspectJAdvice.calculateArgumentBindings(AbstractAspectJAdvice.java:389)
[INFO] [stdout]         at org.springframework.aop.aspectj.annotation.ReflectiveAspectJAdvisorFactory.getAdvice(ReflectiveAspectJAdvisorFactory.java:306)
[INFO] [stdout]         at org.springframework.aop.aspectj.annotation.InstantiationModelAwarePointcutAdvisorImpl.instantiateAdvice(InstantiationModelAwarePointcutAdvisorImpl.java:152)
[INFO] [stdout]         at org.springframework.aop.aspectj.annotation.InstantiationModelAwarePointcutAdvisorImpl.<init>(InstantiationModelAwarePointcutAdvisorImpl.java:116)
[INFO] [stdout]         at org.springframework.aop.aspectj.annotation.ReflectiveAspectJAdvisorFactory.getAdvisor(ReflectiveAspectJAdvisorFactory.java:216)
[INFO] [stdout]         at org.springframework.aop.aspectj.annotation.ReflectiveAspectJAdvisorFactory.getAdvisors(ReflectiveAspectJAdvisorFactory.java:146)
[INFO] [stdout]         at org.springframework.aop.aspectj.annotation.BeanFactoryAspectJAdvisorsBuilder.buildAspectJAdvisors(BeanFactoryAspectJAdvisorsBuilder.java:110)
[INFO] [stdout]         at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.findCandidateAdvisors(AnnotationAwareAspectJAutoProxyCreator.java:95)
[INFO] [stdout]         at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.shouldSkip(AspectJAwareAdvisorAutoProxyCreator.java:101)
[INFO] [stdout]         at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:281)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:1130)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:1105)
[INFO] [stdout]         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:511)
[INFO] [stdout]         ... 134 common frames omitted
[INFO] [stdout] 

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged or decided on label May 23, 2024
@jhoeller jhoeller added in: data Issues in data modules (jdbc, orm, oxm, tx) type: regression A bug that is also a regression in: core Issues in core modules (aop, beans, core, context, expression) and removed status: waiting-for-triage An issue we've not yet triaged or decided on labels May 23, 2024
@jhoeller jhoeller self-assigned this May 23, 2024
@jhoeller jhoeller added this to the 6.1.9 milestone May 23, 2024
@github-actions github-actions bot added status: backported An issue that has been backported to maintenance branches and removed for: backport-to-6.0.x labels May 23, 2024
@jhoeller
Copy link
Contributor

jhoeller commented May 23, 2024

This is unfortunately yet another regression following up on #32793 and #32838. We need another defensive catch block there, this time in ReflectiveAspectJAdvisorFactory.getAdvisor, which we'll add for 6.1.9, 6.0.22 and 5.3.37 (to be released on June 13).

These problems come from mixed AspectJ weaving and proxying. In your scenario, you seem to be using @EnableTransactionManagement in AspectJ mode but @EnableCaching in proxy mode. For the time being, you could try to switch @EnableCaching and any other aspect-related functionality to AspectJ mode as well and remove any variant of@EnableAspectJAutoProxy completely, if that is feasible for your application.

@jhoeller
Copy link
Contributor

The fix will be available in the upcoming 6.1.8, 6.0.22 and 5.3.37 snapshots, allowing for such mixed weaving/proxying usage with the AspectJ transaction and caching aspects. Please give it an early try if you have the chance, ideally with your original application. That said, I still recommend revising your application setup towards exclusive weaving usage (no proxy setup at all).

jhoeller added a commit that referenced this issue May 23, 2024
This covers AspectJ transaction and caching aspects when encountered by Spring AOP.

Closes gh-32882
See gh-32793

(cherry picked from commit 6d7cd9c)
jhoeller added a commit that referenced this issue May 23, 2024
This covers AspectJ transaction and caching aspects when encountered by Spring AOP.

Closes gh-32882
See gh-32793

(cherry picked from commit 6d7cd9c)
@aspan
Copy link
Contributor Author

aspan commented May 23, 2024

Thanks @jhoeller I'll try that.

eshryane added a commit to RIPE-NCC/whois that referenced this issue May 31, 2024
…s/spring-framework#32882 (comment)

"These problems come from mixed AspectJ weaving and proxying. In your scenario, you seem to be using @EnableTransactionManagement in AspectJ mode but @EnableCaching in proxy mode. For the time being, you could try to switch @EnableCaching and any other aspect-related functionality to AspectJ mode as well and remove any variant of@EnableAspectJAutoProxy completely, if that is feasible for your application."
@xtermi2
Copy link

xtermi2 commented Jun 3, 2024

The fix will be available in the upcoming 6.1.8, 6.0.22 and 5.3.37 snapshots, ...

@jhoeller you mean 6.1.9, right, because in 6.1.8 its still broken.

@jhoeller
Copy link
Contributor

jhoeller commented Jun 3, 2024

@xtermi2 indeed, 6.1.9 of course (as per the assigned milestone of this issue).

eshryane added a commit to RIPE-NCC/whois that referenced this issue Jun 4, 2024
* Switch back to Mojo aspectj plugin for Java 21 support

* Update AspectJ

* Update Jacoco plugin to support Java 21

* Update to Mockito 5 for Java 21 support

* update dependencies

* feat: use java 21 image

* Update spring framework dependency

* Explicitly enable annotation processing during compilation.

[INFO] Annotation processing is enabled because one or more processors were found
  on the class path. A future release of javac may disable annotation processing
  unless at least one processor is specified by name (-processor), or a search
  path is specified (--processor-path, --processor-module-path), or annotation
  processing is enabled explicitly (-proc:only, -proc:full).
  Use -Xlint:-options to suppress this message.
  Use -proc:none to disable annotation processing.

* Mock and Spy integration test components

* Rename duplicate classes

* Fix Tag import

* Use MockFactoryBean everywhere

* Upgraded shedlock to latest

"If you are using JDK >17 and up-to-date libraries like Spring 6, use version 5.1.0 (Release Notes)" according to https://github.com/lukas-krecan/ShedLock

* Shedlock breaks with latest Spring

* Specify aspectj mode for cache configuration

* Specify aspectj mode for scheduler config

* Updated Spring by applying AOP workaround suggested in spring-projects/spring-framework#32882 (comment)

"These problems come from mixed AspectJ weaving and proxying. In your scenario, you seem to be using @EnableTransactionManagement in AspectJ mode but @EnableCaching in proxy mode. For the time being, you could try to switch @EnableCaching and any other aspect-related functionality to AspectJ mode as well and remove any variant of@EnableAspectJAutoProxy completely, if that is feasible for your application."

* Replace deprecated thread.getId() with threadId().

* use whois-build:v0.0.5 - java21, amazoncorretto, node18, firefox114

---------

Co-authored-by: mherran <mherran@ripe.net>
@efenderbosch-atg
Copy link

efenderbosch-atg commented Jun 14, 2024

Any ideas on other annotations to check? I've updated:

@EnableMethodSecurity(mode = AdviceMode.ASPECTJ)
@EnableAsync(mode = AdviceMode.ASPECTJ)
@EnableCaching(mode = AdviceMode.ASPECTJ)

to match @EnableTransactionManagement(mode = AdviceMode.ASPECTJ) but I'm still getting this on startup. I assume there's some implicit behavior going on somewhere?

I also had to add org.springframework.security:spring-security-aspects dependency.

edit: I think it is @EnableRetry

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@EnableAspectJAutoProxy(proxyTargetClass = false)
@Import(RetryConfiguration.class)
@Documented
public @interface EnableRetry { ... }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in: core Issues in core modules (aop, beans, core, context, expression) in: data Issues in data modules (jdbc, orm, oxm, tx) status: backported An issue that has been backported to maintenance branches type: regression A bug that is also a regression
Projects
None yet
Development

No branches or pull requests

5 participants