tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leonardo K. Shikida" <shik...@gmail.com>
Subject Re: org.apache.openjpa.persistence.PersistenceException: null
Date Wed, 18 Sep 2013 14:52:55 GMT
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 <curtisr7@gmail.com> 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
> <rmannibucau@gmail.com>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 <shikida@gmail.com>:
> > > 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
> > > <rmannibucau@gmail.com>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" <shikida@gmail.com>
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 <
> > shikida@gmail.com>
> > >> > 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*
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message