当前位置: 首页 > 面试题库 >

如何获得在Java 7中运行的单元测试:java.lang.VerifyError:在分支目标处期望有一个堆栈映射框架

田远
2023-03-14
问题内容

嗨,我正在jdk7更新2上使用maven 3.0.3和hibernate 4.0.0 Final release和spring 3.1进行maven测试。

我收到以下错误。

Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 63 in method ${myDomainClass}.equals(Ljava/lang/Object;)Z at offset 24
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
    at java.lang.Class.getDeclaredMethods(Class.java:1808)
    at org.hibernate.property.BasicPropertyAccessor.getterMethod(BasicPropertyAccessor.java:352)
    at org.hibernate.property.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:331)
    at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:314)
    at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:310)
    at org.hibernate.internal.util.ReflectHelper.getter(ReflectHelper.java:250)
    at org.hibernate.internal.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:229)
    at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:314)
    at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:447)
    at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:380)
    at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:320)
    at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:171)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXml(Configuration.java:3377)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXmlQueue(Configuration.java:3369)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3357)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1334)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1724)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1775)
    at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:184)
    at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:314)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)

我的Equals方法使用commons-lang 2.6中的EqualsBuilder。我设置以下Maven选项

SET MAVEN_OPTS=%MAVEN_OPTS% -XX:-UseSplitVerifier

阅读此Java 7 JVM
verifyError之后

注意:我的测试在jdk 1.6 update 29下工作。

我该如何解决?似乎设置-XX:-UseSplitVerifier仍然会导致错误。


问题答案:

根据surefire 插件文档, MAVEN_OPTS不会由衍生的JVM继承,因此您需要在maven-surefire-plugin配置元素中使用-
XX:-UseSplitVerifier 指定argLine配置参数。



 类似资料:
  • 成功地编译了项目,并与Maven一起构建。这是我的第一个maven项目。但我不知道为什么会出现下面的错误。 在tomcat上部署war,点击我的url,并在我的浏览器中显示以下错误。 有人能提供一些信息吗?谢谢你的帮助。 配置:

  • 一个运行良好的应用程序项目已经开始在Android Studio中给出这个错误。我尝试过各种各样的事情,比如改变主楼的结构。xml文件、更改Google Play服务版本等,但没有任何帮助。这个错误出现在“显示”选项卡中,我尝试使用api 18进行查看。此外,由于某些原因,间隙广告的填充率已降至0,并且不会返回任何填充。 建筑格拉德尔

  • 我正在开发我的公司项目。 我有2个表。我用一个多-多个关系连接到这个表。我使用postgreSql。 但我得到了这个错误。 原因:java。lang.VerifyError:在分支目标5处应为stackmap帧异常详细信息:位置:com/karcin/template/persistence/entities/TblAgentPropertyParameters。类$(Ljava/lang/Str

  • 升级到JDK 1.7后,我遇到了以下异常:

  • 我使用Cobertura进行代码覆盖,但在运行测试用例时,当我使用maven构建运行测试用例时,所有测试用例都失败了,错误如下。 但是,当我使用Eclipse作为JUnit命令运行相同的测试用例时,它工作得很好。

  • 使用jdk 1.8.051Source=1.7,target=1.7 Junit 4.6,ant 1.8.0 发生了什么事<所有以1.7通过的测试现在都失败了。我需要知道以下几点: 为什么会这样? 有没有像-XX:-UseSplitVeriator(java 1.7)这样的选项 如何找出问题的根源? 要采取什么步骤来解决这个问题? 我们有用于构建、部署和测试的ant目标 构建和部署工作正常,但Ju