java - Exception in Native part of openejb -
i start new topic problem, mentioned wrong things in older one.
i'm using openejb writing integration tests beans using jpa. i've exception in native calls done jpa:
info - creating subclass , redefining methods "[class contextkey, class contextentity]". means application less efficient if ran openjpa enhancer. severe - ejbtransactionutil.handlesystemexception: null <openjpa-2.3.0-nonfinal-1540826-r422266:1542644 fatal general error> org.apache.openjpa.persistence.persistenceexception: null @ org.apache.openjpa.enhance.classredefiner.redefineclasses(classredefiner.java:96) @ org.apache.openjpa.enhance.managedclasssubclasser.prepareunenhancedclasses(managedclasssubclasser.java:176) @ org.apache.openjpa.kernel.abstractbrokerfactory.loadpersistenttypes(abstractbrokerfactory.java:312) @ org.apache.openjpa.kernel.abstractbrokerfactory.initializebroker(abstractbrokerfactory.java:236) @ org.apache.openjpa.kernel.abstractbrokerfactory.newbroker(abstractbrokerfactory.java:212) @ org.apache.openjpa.kernel.delegatingbrokerfactory.newbroker(delegatingbrokerfactory.java:155) @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:226) @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:59) @ org.apache.openejb.assembler.classic.reloadableentitymanagerfactory.createentitymanager(reloadableentitymanagerfactory.java:159) @ org.apache.openejb.persistence.jtaentitymanagerregistry.getentitymanager(jtaentitymanagerregistry.java:115) @ org.apache.openejb.persistence.jtaentitymanager.getentitymanager(jtaentitymanager.java:91) @ org.apache.openejb.persistence.jtaentitymanager.persist(jtaentitymanager.java:137) @ com.six.ao.atm.database.context.atmcontextbean.persistwithcommit(atmcontextbean.java:24) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext$invocation.invoke(reflectioninvocationcontext.java:182) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext.proceed(reflectioninvocationcontext.java:164) @ org.apache.openejb.monitoring.statsinterceptor.record(statsinterceptor.java:180) @ org.apache.openejb.monitoring.statsinterceptor.invoke(statsinterceptor.java:99) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext$invocation.invoke(reflectioninvocationcontext.java:182) @ org.apache.openejb.core.interceptor.reflectioninvocationcontext.proceed(reflectioninvocationcontext.java:164) @ org.apache.openejb.core.interceptor.interceptorstack.invoke(interceptorstack.java:80) @ org.apache.openejb.core.stateless.statelesscontainer._invoke(statelesscontainer.java:212) @ org.apache.openejb.core.stateless.statelesscontainer.invoke(statelesscontainer.java:181) @ org.apache.openejb.core.ivm.ejbobjectproxyhandler.synchronizedbusinessmethod(ejbobjectproxyhandler.java:268) @ org.apache.openejb.core.ivm.ejbobjectproxyhandler.businessmethod(ejbobjectproxyhandler.java:263) @ org.apache.openejb.core.ivm.ejbobjectproxyhandler._invoke(ejbobjectproxyhandler.java:86) @ org.apache.openejb.core.ivm.baseejbproxyhandler.invoke(baseejbproxyhandler.java:303) @ com.sun.proxy.$proxy68.persistwithcommit(unknown source) @ com.six.ao.atm.database.context.atmcontextbeanit.persistwithcommit_readafter_sameobject(atmcontextbeanit.java:43) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.junit.runners.model.frameworkmethod$1.runreflectivecall(frameworkmethod.java:47) @ org.junit.internal.runners.model.reflectivecallable.run(reflectivecallable.java:12) @ org.junit.runners.model.frameworkmethod.invokeexplosively(frameworkmethod.java:44) @ org.junit.internal.runners.statements.invokemethod.evaluate(invokemethod.java:17) @ org.junit.internal.runners.statements.runbefores.evaluate(runbefores.java:26) @ org.junit.internal.runners.statements.runafters.evaluate(runafters.java:27) @ org.junit.runners.parentrunner.runleaf(parentrunner.java:271) @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:70) @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:50) @ org.junit.runners.parentrunner$3.run(parentrunner.java:238) @ org.junit.runners.parentrunner$1.schedule(parentrunner.java:63) @ org.junit.runners.parentrunner.runchildren(parentrunner.java:236) @ org.junit.runners.parentrunner.access$000(parentrunner.java:53) @ org.junit.runners.parentrunner$2.evaluate(parentrunner.java:229) @ org.junit.runners.parentrunner.run(parentrunner.java:309) @ org.eclipse.jdt.internal.junit4.runner.junit4testreference.run(junit4testreference.java:50) @ org.eclipse.jdt.internal.junit.runner.testexecution.run(testexecution.java:38) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:467) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:683) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.run(remotetestrunner.java:390) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.main(remotetestrunner.java:197) caused by: java.lang.reflect.invocationtargetexception @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.apache.openjpa.enhance.classredefiner.redefineclasses(classredefiner.java:85) ... 60 more caused by: java.lang.verifyerror @ sun.instrument.instrumentationimpl.retransformclasses0(native method) @ sun.instrument.instrumentationimpl.retransformclasses(instrumentationimpl.java:144) ... 65 more
first thought classes not enhanced, first line mentions, classes subclasses, i'm don't using java agent enhancing.
here persistence.xml
<?xml version="1.0" encoding="utf-8"?> <persistence ...> <persistence-unit name="atm"> <jta-data-source>java:/atmaods</jta-data-source> <properties> <property name="showsql" value="false"/> <property name="hibernate.dialect" value="org.hibernate.dialect.oracle10gdialect" /> </properties> </persistence-unit> </persistence>
any idea?
faced same error while testing code using openejb. actually, important final piece of exception trace.
caused by: java.lang.verifyerror @ sun.instrument.instrumentationimpl.retransformclasses0(native method) @ sun.instrument.instrumentationimpl.retransformclasses(instrumentationimpl.java:144)
the solution found in last answer here dominik java.lang.verifyerror: expecting stackmap frame. set -xx:-usesplitverifier.
ps: tried use enhancement mentioned here is method in jpa entity allowed throw exception? rick , here http://openjpa.208410.n2.nabble.com/fwd-org-apache-openjpa-persistence-persistenceexception-null-td7584865.html faced couple of hurdles. first overcame recipe above, second arguably bug https://issues.apache.org/jira/browse/openjpa-1879 when using enhancement eclipse.
the trace reads this.
<openjpa-2.3.0-nonfinal-1540826-r422266:1542644 nonfatal user error> org.apache.openjpa.persistence.invalidstateexception: primary key field your_class.id of your_class@755629fd has non-default value. instance life cycle in pnewstate state , hence existing non-default value identity field not permitted. either need remove @generatedvalue annotation or modify code remove initializer processing.
Comments
Post a Comment