意外的 AOP 异常;嵌套异常是 java.lang.IllegalStateException:无法加载缓存项
Unexpected AOP exception; nested exception is java.lang.IllegalStateException: Unable to load cache item
A Spring 启动应用程序版本 2.1。5.RELEASE 已升级到版本 2.2。5.RELEASE 即
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<!-- <version>2.1.5.RELEASE</version> -->
</parent>
此外,背景 java 已从版本 11 升级到版本 13,即“
openjdk 11 2018-09-25
openjdk 版本“13”2019-09-17
购买升级后,我注意到 none 的集成测试(> 60)正在运行。我能够从我的项目中编译 jar 文件,但没有一个测试成功。它们都显示了下面提到的相同异常。有趣的是,测试曾经在更改之前起作用。我在 Stackoveflow 上注意到一个更确切的问题,即 java.lang.VerifyError: Stack map does not match the one at exception handle,但它也没有答案。
我在 google 上唯一能找到关于类似异常签名的是那两页(不幸的是我看不懂中文)
https://gitmemory.com/issue/eclipse/openj9/5676/489772592
和
https://blog.csdn.net/Zhao_yanpeng/article/details/102835149
在最后一个人提到它正在使用 openjdk“12.0.1”,但我目前是 运行 版本 13,但我仍然遇到该异常。
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepositoryImpl' defined in file [Projects/server/target/classes/org/server/Repository/account/user/impl/UserRepositoryImpl.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is java.lang.IllegalStateException: Unable to load cache item
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean[=12=](AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
... 121 more
Caused by: org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is java.lang.IllegalStateException: Unable to load cache item
at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:214)
at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:471)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:350)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:299)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)
... 130 more
Caused by: java.lang.IllegalStateException: Unable to load cache item
at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:79)
at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:134)
at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:319)
at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:569)
at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:416)
at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:57)
at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:205)
... 137 more
Caused by: java.lang.VerifyError: Stack map does not match the one at exception handler 9
Exception Details:
Location:
org/server/Repository/account/user/impl/UserRepositoryImpl$$EnhancerBySpringCGLIB$$f765df37.<init>()V @9: athrow
Reason:
Current frame's flags are not assignable to stack map frame's.
Current Frame:
bci: @0
flags: { flagThisUninit }
locals: { uninitializedThis }
stack: { 'java/lang/RuntimeException' }
Stackmap Frame:
bci: @9
flags: { }
locals: { }
stack: { 'java/lang/Throwable' }
Bytecode:
0000000: 2a59 b702 8bb8 0192 b1bf bb01 9c5a 5fb7
0000010: 019f bf
Exception Handler Table:
bci [0, 9] => handler: 9
bci [0, 9] => handler: 9
bci [0, 9] => handler: 10
Stackmap Table:
full_frame(@9,{},{Object[#390]})
same_locals_1_stack_item_frame(@10,Object[#390])
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:571)
at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:363)
at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:582)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.apply(AbstractClassGenerator.java:110)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.apply(AbstractClassGenerator.java:108)
at org.springframework.cglib.core.internal.LoadingCache.call(LoadingCache.java:54)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
... 144 more
我正在使用 Spring 工具套件版本:4.5。1.RELEASE 构建 ID:202001211336 用于开发,如果这在某种程度上有用并且 jar 文件在 Linux 5.3.0 上运行-40-通用内核。
任何关于如何进一步调试的想法或提示都非常感谢。
2020 年 3 月 10 日更新:这是在 Keith 和 Kriegaex 的帮助下有效的解决方案:
我添加了工件 aspectjrt 和 aspectjweaver 及其对应的版本 1.9.5。然后我将工件 javassist 的版本升级到 3.26.0-GA,将 cglib-nodep 的版本升级到 3.3.0,并删除了工件 spring-aop。之后所有测试都恢复正常。
这似乎是 https://github.com/eclipse/openj9/issues/5676,应该在 jdk13 中修复。
您使用的是哪个特定版本的 jdk13('java -version' 说的是什么)?
它的版本问题在我的例子中,spring-core 的版本在 spring-aop 依赖与我声明的 spring-core 依赖不同,使用相同的版本修复问题
我遇到过这个问题,就我而言,问题是 spring-core 的版本冲突。我的服务依赖于另一项服务,并且该(核心)服务已将 spring-core 声明为依赖项。当我开始在我的应用程序中使用 spring-jdbc 时,它开始抛出此异常。解决方案是从 spring-jdbc 中排除 spring-core、spring-beans、spring-jcl 和 spring-tx我的 pom.xml。我还将我的应用程序中 spring-jdbc 的版本更改为与核心应用程序(我的应用程序所依赖的应用程序)中的 spring 版本相同。
在我的例子中,我有重复的 spring-core 依赖项。我删除了一个,我的应用程序开始工作了。我也注意到这个问题与 javaassist 依赖的不兼容版本有关。
A Spring 启动应用程序版本 2.1。5.RELEASE 已升级到版本 2.2。5.RELEASE 即
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<!-- <version>2.1.5.RELEASE</version> -->
</parent>
此外,背景 java 已从版本 11 升级到版本 13,即“
openjdk 11 2018-09-25
openjdk 版本“13”2019-09-17
购买升级后,我注意到 none 的集成测试(> 60)正在运行。我能够从我的项目中编译 jar 文件,但没有一个测试成功。它们都显示了下面提到的相同异常。有趣的是,测试曾经在更改之前起作用。我在 Stackoveflow 上注意到一个更确切的问题,即 java.lang.VerifyError: Stack map does not match the one at exception handle,但它也没有答案。
我在 google 上唯一能找到关于类似异常签名的是那两页(不幸的是我看不懂中文) https://gitmemory.com/issue/eclipse/openj9/5676/489772592 和 https://blog.csdn.net/Zhao_yanpeng/article/details/102835149
在最后一个人提到它正在使用 openjdk“12.0.1”,但我目前是 运行 版本 13,但我仍然遇到该异常。
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepositoryImpl' defined in file [Projects/server/target/classes/org/server/Repository/account/user/impl/UserRepositoryImpl.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is java.lang.IllegalStateException: Unable to load cache item
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean[=12=](AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
... 121 more
Caused by: org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is java.lang.IllegalStateException: Unable to load cache item
at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:214)
at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:471)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:350)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:299)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)
... 130 more
Caused by: java.lang.IllegalStateException: Unable to load cache item
at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:79)
at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:134)
at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:319)
at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:569)
at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:416)
at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:57)
at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:205)
... 137 more
Caused by: java.lang.VerifyError: Stack map does not match the one at exception handler 9
Exception Details:
Location:
org/server/Repository/account/user/impl/UserRepositoryImpl$$EnhancerBySpringCGLIB$$f765df37.<init>()V @9: athrow
Reason:
Current frame's flags are not assignable to stack map frame's.
Current Frame:
bci: @0
flags: { flagThisUninit }
locals: { uninitializedThis }
stack: { 'java/lang/RuntimeException' }
Stackmap Frame:
bci: @9
flags: { }
locals: { }
stack: { 'java/lang/Throwable' }
Bytecode:
0000000: 2a59 b702 8bb8 0192 b1bf bb01 9c5a 5fb7
0000010: 019f bf
Exception Handler Table:
bci [0, 9] => handler: 9
bci [0, 9] => handler: 9
bci [0, 9] => handler: 10
Stackmap Table:
full_frame(@9,{},{Object[#390]})
same_locals_1_stack_item_frame(@10,Object[#390])
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:571)
at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:363)
at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:582)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.apply(AbstractClassGenerator.java:110)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.apply(AbstractClassGenerator.java:108)
at org.springframework.cglib.core.internal.LoadingCache.call(LoadingCache.java:54)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
... 144 more
我正在使用 Spring 工具套件版本:4.5。1.RELEASE 构建 ID:202001211336 用于开发,如果这在某种程度上有用并且 jar 文件在 Linux 5.3.0 上运行-40-通用内核。
任何关于如何进一步调试的想法或提示都非常感谢。
2020 年 3 月 10 日更新:这是在 Keith 和 Kriegaex 的帮助下有效的解决方案:
我添加了工件 aspectjrt 和 aspectjweaver 及其对应的版本 1.9.5。然后我将工件 javassist 的版本升级到 3.26.0-GA,将 cglib-nodep 的版本升级到 3.3.0,并删除了工件 spring-aop。之后所有测试都恢复正常。
这似乎是 https://github.com/eclipse/openj9/issues/5676,应该在 jdk13 中修复。
您使用的是哪个特定版本的 jdk13('java -version' 说的是什么)?
它的版本问题在我的例子中,spring-core 的版本在 spring-aop 依赖与我声明的 spring-core 依赖不同,使用相同的版本修复问题
我遇到过这个问题,就我而言,问题是 spring-core 的版本冲突。我的服务依赖于另一项服务,并且该(核心)服务已将 spring-core 声明为依赖项。当我开始在我的应用程序中使用 spring-jdbc 时,它开始抛出此异常。解决方案是从 spring-jdbc 中排除 spring-core、spring-beans、spring-jcl 和 spring-tx我的 pom.xml。我还将我的应用程序中 spring-jdbc 的版本更改为与核心应用程序(我的应用程序所依赖的应用程序)中的 spring 版本相同。
在我的例子中,我有重复的 spring-core 依赖项。我删除了一个,我的应用程序开始工作了。我也注意到这个问题与 javaassist 依赖的不兼容版本有关。