Ciao Sto facendo un test di prova usando maven 3.0.3 con versione finale 4.0.0 di hibernate e spring 3.1 su jdk7 update 2.Come faccio a eseguire il test dell'unità in java 7: java.lang.VerifyError: Aspettando un frame stackmap al target di diramazione
Ho ricevuto il seguente errore.
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)
Il metodo My Equals utilizza EqualsBuilder da commons-lang 2.6. Ho impostato il seguente Maven opta
SET MAVEN_OPTS=%MAVEN_OPTS% -XX:-UseSplitVerifier
dopo aver letto questo Java 7 JVM verifyError
Nota: Le mie opere test sotto JDK 1.6 update 29.
Come posso risolvere questo problema? Sembra che l'impostazione -XX: -UseSplitVerifier causi ancora l'errore.
Vorrei pulire e creare nuovamente tutto il progetto e provare altre lib di commons-lang. Sembra un po 'come questo: http://stackoverflow.com/a/8617057/1064325 – falsarella
Hibernate utilizza cglib e, a seconda di come è stato impostato Spring, potrebbe anche usare librerie simili, forse potrebbero essere la colpa. Prova ad usare una versione più recente di cglib nel tuo classpath e vedi se questo soddisfa. –