It appears that you need to enhance your Entities[1]. Thanks, Rick
[1] http://openjpa.apache.org/entity-enhancement.html On Sat, Sep 28, 2013 at 6:34 PM, Arata Yamamoto <art...@gmail.com> wrote: > Dear group, > > I just started to try using OpenEJB for testing my EJB beans. So, I'm > pretty beginner with OpenEJB (and OpenJPA). > I hit the next exception (what I cannot overcome) in my test using > OpenEJB's ApplicationComposer: > Exception stacktrace: > Caused by: java.rmi.RemoteException: The bean encountered a non-application > exception; nested exception is: > <openjpa-2.2.0-r422266:1244990 fatal general error> > org.apache.openjpa.persistence.PersistenceException: null > at > > org.apache.openejb.core.transaction.EjbTransactionUtil.handleSystemException(EjbTransactionUtil.java:154) > ... 43 more > Caused by: <openjpa-2.2.0-r422266:1244990 fatal general error> > org.apache.openjpa.persistence.PersistenceException: null > at > > org.apache.openjpa.enhance.ClassRedefiner.redefineClasses(ClassRedefiner.java:96) > at > > org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:176) > at > > org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:314) > at > > org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:238) > at > > org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:212) > at > > org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156) > at > > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227) > at > > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60) > at > > org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.createEntityManager(ReloadableEntityManagerFactory.java:160) > at > > org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:115) > at > > org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:80) > at > > org.apache.openejb.persistence.JtaEntityManager.getMetamodel(JtaEntityManager.java:475) > at > > com.newmainsoftech.jecommerce.dao.impl.AbstractFacadeImpl.postConstruct(AbstractFacadeImpl.java:28) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) > at > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:213) > at > > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) > at > > org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:176) > at > > org.apache.openejb.monitoring.StatsInterceptor.PostConstruct(StatsInterceptor.java:104) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) > at > > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) > at > > org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:138) > at org.apache.openejb.BeanContext.newInstance(BeanContext.java:1478) > ... 42 more > Caused by: java.lang.reflect.InvocationTargetException > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at org.apache.openjpa.enhance.* > ClassRedefiner.redefineClasses(ClassRedefiner.java:85)* > ... 71 more > Caused by: java.lang.VerifyError > at sun.instrument.InstrumentationImpl.retransformClasses0(Native > Method) > at > > sun.instrument.InstrumentationImpl.retransformClasses(InstrumentationImpl.java:144) > ... 76 more > > Statement throwing exception in the test method: > @Test > public void test_create() { > final String testName = JUnitAssistAspect.getTestName(); > > final Category category = new Category(); > category.setName( testName); > > final CategoryFacade categoryFacade = getCategoryFacade(); > categoryFacade.create( category); // <-- Exception is thrown at here! > ... > } > > I traced and dumped the calls from ClassRedefiner.redefineClasses to > reflect.Method.invoke: > 16:27:24.078 [main] INFO > > c.n.j.d.i.AbstractCategoryFacadeImplTest$CreateEntityManagerDebugTraceAspect > - > Invocation start : org.apache.openjpa.enhance.* > ClassRedefiner.redefineClasses*( > > > conf(type:JDBCConfigurationImpl)=org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl@7a44ac1a > , > *classes(type:HashMap)={ > class com.newmainsoftech.jecommerce.dao.entity.Product*=[B@9d8e7b > *, > class com.newmainsoftech.jecommerce.dao.entity.OrderedProductPK* > =[B@1f54525*, > class com.newmainsoftech.jecommerce.dao.entity.Supplier*=[B@18eb67b > *, > > class com.newmainsoftech.jecommerce.dao.entity.Customer*=[B@6e7953 > *, > > class com.newmainsoftech.jecommerce.dao.entity.OrderedProduct* > =[B@df77f7*, > class com.newmainsoftech.jecommerce.dao.entity.Category*=[B@13d164c > *, > > class com.newmainsoftech.jecommerce.dao.entity.CustomerOrder* > =[B@1830452*, > class com.newmainsoftech.jecommerce.dao.entity.ContactBase* > =[B@90daa2* > }* > ) @ ClassRedefiner.java:55 > > 16:27:24.078 [main] INFO > c.n.j.d.i.AbstractCategoryFacadeImplTest$RedefineClassesDebugTraceAspect - > Invocation start : java.lang.reflect.Method.invoke( > > arg0(type:InstrumentationImpl)=sun.instrument.InstrumentationImpl@17b930d, > > arg1(type:Object[])=[org.apache.openjpa.enhance.ClassRedefiner$1@1f378ca, > true] > ) @ ClassRedefiner.java:82 > 16:27:24.078 [main] INFO > c.n.j.d.i.AbstractCategoryFacadeImplTest$RedefineClassesDebugTraceAspect - > Invocation end : java.lang.reflect.Method.invoke( > > arg0(type:InstrumentationImpl)=sun.instrument.InstrumentationImpl@17b930d, > > arg1(type:Object[])=[org.apache.openjpa.enhance.ClassRedefiner$1@1f378ca, > true] > ) @ ClassRedefiner.java:82 > Returned null > > 16:27:24.078 [main] INFO > c.n.j.d.i.AbstractCategoryFacadeImplTest$RedefineClassesDebugTraceAspect - > Invocation start : java.lang.reflect.*Method.invoke*( > *arg0*(type:InstrumentationImpl)=*sun.instrument.InstrumentationImpl* > @17b930d, > *arg1*(type:Object[])=*[[Ljava.lang.Class;@17f2629]* > ) *@ ClassRedefiner.java:85* > > It's puzzling me why sun.instrument.InstrumentationImpl.retransformClasses > method throws the VerifyError exception, since, from the above dump, it > appeared to me that the array local field in the > ClassRedefiner.redefineClasses method holds the array of the proper entity > bean classes. > > Environment: > OpenEJB ver 4.5.2 > OpenJPA ver 2.2.0 (as resolved openjpa-asm-shaded dependency from > openejb-core artifact dependency) > EJB 3 > JDK 1.7.0 > Windows box > > Can someone shed the guiding light? > I appreciate any advises since I am pretty beginner of OpenEJB (and > OpenJPA). > > Regards, > Art > -- *Rick Curtis*