有人知道Javassist 3.17.0-GA何时可用吗?
Javaassit中有一个错误(在3.17.0-GA中修复),在与Java 7一起使用时会破坏PowerMock:https://issues.jboss.org/browse/JASSIST-160?focusedCommentId=12718716&page=com.atlassian.jira.plugin.system.issuetabpanels:comment tabpanel#comment-12718716
关联的PowerMock错误http://code.google.com/p/powermock/issues/detail?id=355
它是可用的。更新版本似乎解决了我的问题,我相信这个问题会和你的类似。我认为您的问题是java.lang.VerifyError的一些变体:需要一个stackmap帧。
在撰写本文时,Javassist的3.19版本是可用的。PowerMock 1.5.1也更新为使用Javassist 3.18 GA。
替代修复
除了升级之外,其他推荐的解决方案之一是使用JVM参数-XX:-UseSplitVerifier,该参数来自Java 7堆栈映射问题的此处和关于Java.lang.VerifyError(您已链接到)的PowerMock问题注册表的此处。
替代修复的实现
在IntelliJ中,我已经将-UseSplitVerifier添加到我的JUnit运行程序中,但也有建议将其添加到构建中的MavenSurefire插件中,以使解决方案可移植,如本文所建议的。