Also, it seems somehow consistent about the JDK. Both IBM 7 JDKs for windows and linux work, and both Oracle JDK for oracle 7 (u40) don't.
TIA Leo [] Leo On Wed, Sep 18, 2013 at 11:52 AM, Leonardo K. Shikida <[email protected]>wrote: > Hi Rick > > here what happens > > when I run from eclipse, using IBM JDK 7 on linux, I defaults to subclass > > > WARNING: Creating subclass for "[...]". This means that your application > will be less efficient and will consume more memory than it would if you > ran the OpenJPA enhancer. Additionally, lazy loading will not be available > for one-to-one and many-to-one persistent attributes in types using field > access; they will be loaded eagerly instead. > > but it works. > > now, the same thing but using the javaagent in eclipse run configurations > > -javaagent:/path/to/openejb-javaagent.jar > > then I get > > INFO: Creating subclass and redefining methods for "[...]". This means > that your application will be less efficient than it would if you ran the > OpenJPA enhancer. > > Exception in thread "main" javax.ejb.EJBException: 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 > > which is pretty the same error I get if I use Oracle JVM and no javaagent > > TIA > > Leo > > > [] > > Leo > > > On Wed, Sep 18, 2013 at 11:35 AM, Rick Curtis <[email protected]> wrote: > >> The waters are getting pretty muddy here.... but I'll try my best to clear >> things up. >> >> I'm not certain, but I suspect that when running on the IBM JVM, the >> openjpa.DynamicEnhancementAgent was kicking in an your Entities were >> getting enhanced automagically. For whatever reason it sounds like that >> wasn't working on the Windows Oracle JVM and it was falling back to >> subclassing. I know you mentioned that you don't have >> openjpa.RuntimeUnenhancedClass set to supported, but the initial stack >> trace that you posted indicates otherwise. >> >> The root issue here is that your entities weren't being enhanced. It >> sounds >> like now that you have the latest version of the tomEE agent hooked up, >> everything is working? If you prefer to not go the agent path, you could >> always use build time enhancement and not have to mess with any of this >> business. >> >> HTH, >> Rick >> >> >> >> >> On Wed, Sep 18, 2013 at 9:16 AM, Romain Manni-Bucau >> <[email protected]>wrote: >> >> > the javaagent was broken (fixed on trunk) so i fear you need to >> > enhance classes in your build >> > Romain Manni-Bucau >> > Twitter: @rmannibucau >> > Blog: http://rmannibucau.wordpress.com/ >> > LinkedIn: http://fr.linkedin.com/in/rmannibucau >> > Github: https://github.com/rmannibucau >> > >> > >> > >> > 2013/9/18 Leonardo K. Shikida <[email protected]>: >> > > Hi Romain >> > > >> > > thanks >> > > >> > > I am running some code using tomEE embedded in a main() method, using >> > > eclipse. >> > > >> > > So I've added to the run configurations->java application->my >> class->VM >> > > arguments >> > > >> > > -javaagent:/home/myuser/tomee/lib/openejb-javaagent.jar >> > > >> > > As suggested in (I guess) >> > > >> > > >> > >> http://webspherepersistence.blogspot.com.br/2009/02/openjpa-enhancement.html >> > > >> > > But I still get an error such as >> > > >> > > INFO: Creating subclass and redefining methods for "[class xyz]". This >> > > means that your application will be less efficient than it would if >> you >> > ran >> > > the OpenJPA enhancer. >> > > Exception in thread "main" javax.ejb.EJBException: 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 >> > > >> > > Am I missing something here? >> > > >> > > Your posts below talks about some system properties, is it enough to >> just >> > > drop them into properties.xml for tomee 1.5.2? >> > > >> > > >> > >> http://rmannibucau.wordpress.com/2012/07/26/tomee-and-openejb-jpa-deploy-time-enhancement/ >> > > >> > > TIA >> > > >> > > Leo >> > > >> > > >> > > >> > > >> > > >> > > [] >> > > >> > > Leo >> > > >> > > >> > > On Wed, Sep 18, 2013 at 1:36 AM, Romain Manni-Bucau >> > > <[email protected]>wrote: >> > > >> > >> Hi >> > >> >> > >> Note: In tomee on trunk if you list your classes in persistence-unit >> it >> > is >> > >> automatically done if the persistence.xml is in >> meta-inf/persistence.xml >> > >> Le 18 sept. 2013 04:40, "Leonardo K. Shikida" <[email protected]> a >> > écrit >> > >> : >> > >> >> > >> > So just answering myself (openJPA list brought the solution) >> > >> > >> > >> > It seems that if I use IBM JVM (J9) in both windows and linux, it >> > works. >> > >> > >> > >> > If I use oracle's, then I get the error. >> > >> > >> > >> > My persistence.xml does not have >> > >> > >> > >> > <property name="openjpa.RuntimeUnenhancedClasses" >> > value="unsupported"/> >> > >> > >> > >> > And I get the warning >> > >> > >> > >> > WARNING: Creating subclass for "[...]". >> > >> > This means that your application will be >> > >> > less efficient and will consume more memory >> > >> > than it would if you ran the OpenJPA enhancer. >> > >> > >> > >> > Additionally, lazy loading will not be >> > >> > available for one-to-one and many-to-one >> > >> > persistent attributes in types using field >> > >> > access; they will be loaded eagerly instead. >> > >> > >> > >> > And this procedure is not recommended as stated at >> > >> > http://openjpa.apache.org/entity-enhancement.html >> > >> > >> > >> > "The use of OpenJPA's subclassing support is not recommended, and >> is >> > >> > disabled by default in OpenJPA 2.0 and beyond." >> > >> > >> > >> > TIA >> > >> > >> > >> > >> > >> > Leo >> > >> > >> > >> > >> > >> > >> > >> > [] >> > >> > >> > >> > Leo >> > >> > >> > >> > >> > >> > On Tue, Sep 17, 2013 at 1:14 PM, Leonardo K. Shikida < >> > [email protected]> >> > >> > wrote: >> > >> > > >> > >> > > Hi >> > >> > > >> > >> > > I have an tomee 1.5.2 + that runs perfectly on linux, but when I >> > try to >> > >> > run from windows, it gives me the following error message (see >> > >> stacktrace) >> > >> > > >> > >> > > My doubts are >> > >> > > >> > >> > > - what does it mean :-) >> > >> > > - why only in windows >> > >> > > - is there any way to deal with this? >> > >> > > >> > >> > > My feeling it that it's somehow related to the OpenJPA >> enhancement >> > >> > process, but I really don't have a clue here. >> > >> > > >> > >> > > TIA >> > >> > > >> > >> > > Leo >> > >> > > >> > >> > > Exception in thread "main" javax.ejb.EJBException: 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.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:363) >> > >> > > at >> > >> > >> > >> > >> > >> >> > >> org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:283) >> > >> > > at (...) at >> > >> > > (...) >> > >> > > 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) >> > >> > > (...) >> > >> > > Caused by: java.lang.VerifyError >> > >> > > at >> sun.instrument.InstrumentationImpl.retransformClasses0(Native >> > >> > Method) >> > >> > > at >> > >> > >> > >> > >> > >> >> > >> sun.instrument.InstrumentationImpl.retransformClasses(InstrumentationImpl.java:144) >> > >> > > ... 52 more >> > >> > > >> > >> > > [] >> > >> > > >> > >> > > Leo >> > >> > >> > >> >> > >> >> >> >> -- >> *Rick Curtis* >> > >
