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:58:18 GMT
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 <shikida@gmail.com>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 <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