You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Prodoc <ag...@hobba.nl> on 2009/05/19 09:23:18 UTC

Enhancing entities: getting desperate

Hi,

I don't know what I'm doing wrong but I can't seem to get OpenJPA to work in
my project. I keep running into entity enhancement issues. The more methods
I try, to more problem it seems to be causing.

*Using*
- NetBeans 6.5.1
- Java jdk1.5.0_16
- OpenJPA 1.2.1
- Derby 10.5.1.1

*Structure*
- MPSF
 - lib
    - apache-openjpa-1.2.1
 - src
    - META-INF
    - mpsf
       - entities
 - build.xml

If I leave 'RuntimeUnenhancedClasses' set to 'supported' I get the following
error:

-------------------------------------------------------------------------------------------------
297  MPSFPU  INFO   [AWT-EventQueue-0] openjpa.Runtime - Starting OpenJPA
1.2.1
875  MPSFPU  INFO   [AWT-EventQueue-0] openjpa.jdbc.JDBC - Using dictionary
class "org.apache.openjpa.jdbc.sql.DerbyDictionary".
2187  MPSFPU  INFO   [AWT-EventQueue-0] openjpa.Enhance - Creating subclass
for "[class mpsf.entities.SearchDetection, class mpsf.entities.RotationRate,
class mpsf.entities.Weapon, class mpsf.entities.Sensor, class
mpsf.entities.TrackDetection, class mpsf.entities.Environment, class
mpsf.entities.Trainer, class mpsf.entities.EngagementRange, class
mpsf.entities.KillProbability, class mpsf.entities.TimeOfFlight, class
mpsf.entities.Threat]". 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.
May 18, 2009 3:57:20 PM org.jdesktop.application.Application$1 run
SEVERE: Application class mpsf.MPSFApp failed to launch
<openjpa-1.2.1-r752877:753278 fatal user error>
org.apache.openjpa.persistence.ArgumentException: Errors encountered while
resolving metadata.  See nested exceptions for details.
      at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:563)
      at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
      at
org.apache.openjpa.enhance.ManagedClassSubclasser.configureMetaData(ManagedClassSubclasser.java:209)
      at
org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:165)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:310)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:228)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
      at
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
      at mpsf.MPSFView.initComponents(MPSFView.java:181)
      at mpsf.MPSFView.<init>(MPSFView.java:47)
      at mpsf.MPSFApp.startup(MPSFApp.java:21)
      at org.jdesktop.application.Application$1.run(Application.java:171)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
      at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
      at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
      at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
      at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: <openjpa-1.2.1-r752877:753278 fatal user error>
org.apache.openjpa.persistence.ArgumentException: The type "class
mpsf.entities.SearchDetectionPK" has not been enhanced.
      at
org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1652)
      at
org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
      at
org.apache.openjpa.meta.ValueMetaDataImpl.resolve(ValueMetaDataImpl.java:417)
      at
org.apache.openjpa.jdbc.meta.ValueMappingImpl.resolve(ValueMappingImpl.java:470)
      at
org.apache.openjpa.meta.FieldMetaData.resolve(FieldMetaData.java:1674)
      at
org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:416)
      at
org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1691)
      at
org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
      at
org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
      at
org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
      at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
      ... 21 more
NestedThrowables:
<openjpa-1.2.1-r752877:753278 fatal user error>
org.apache.openjpa.persistence.ArgumentException: Unable to resolve type
"mpsf.entities.Environment" due to previous errors resolving related type
"mpsf.entities.SearchDetection".
      at
org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:731)
      at
org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
      at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
      at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
      at
org.apache.openjpa.enhance.ManagedClassSubclasser.configureMetaData(ManagedClassSubclasser.java:209)
      at
org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:165)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:310)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:228)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
      at
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
      at mpsf.MPSFView.initComponents(MPSFView.java:181)
      at mpsf.MPSFView.<init>(MPSFView.java:47)
      at mpsf.MPSFApp.startup(MPSFApp.java:21)
      at org.jdesktop.application.Application$1.run(Application.java:171)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
      at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
      at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
      at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
      at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
<openjpa-1.2.1-r752877:753278 fatal user error>
org.apache.openjpa.persistence.ArgumentException: Unable to resolve type
"mpsf.entities.RotationRate" due to previous errors resolving related type
"mpsf.entities.SearchDetection".
      at
org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:731)
      at
org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
      at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
      at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
      at
org.apache.openjpa.enhance.ManagedClassSubclasser.configureMetaData(ManagedClassSubclasser.java:209)
      at
org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:165)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:310)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:228)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
      at
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
      at mpsf.MPSFView.initComponents(MPSFView.java:181)
      at mpsf.MPSFView.<init>(MPSFView.java:47)
      at mpsf.MPSFApp.startup(MPSFApp.java:21)
      at org.jdesktop.application.Application$1.run(Application.java:171)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
      at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
      at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
      at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
      at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class
mpsf.MPSFApp failed to launch
      at org.jdesktop.application.Application$1.run(Application.java:177)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
      at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
      at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
      at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
      at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: <openjpa-1.2.1-r752877:753278 fatal user error>
org.apache.openjpa.persistence.ArgumentException: Errors encountered while
resolving metadata.  See nested exceptions for details.
      at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:563)
      at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
      at
org.apache.openjpa.enhance.ManagedClassSubclasser.configureMetaData(ManagedClassSubclasser.java:209)
      at
org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:165)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:310)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:228)
      at
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
      at
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
      at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
      at mpsf.MPSFView.initComponents(MPSFView.java:181)
      at mpsf.MPSFView.<init>(MPSFView.java:47)
      at mpsf.MPSFApp.startup(MPSFApp.java:21)
      at org.jdesktop.application.Application$1.run(Application.java:171)
      ... 7 more
Caused by: <openjpa-1.2.1-r752877:753278 fatal user error>
org.apache.openjpa.persistence.ArgumentException: The type "class
mpsf.entities.SearchDetectionPK" has not been enhanced.
      at
org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1652)
      at
org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
      at
org.apache.openjpa.meta.ValueMetaDataImpl.resolve(ValueMetaDataImpl.java:417)
      at
org.apache.openjpa.jdbc.meta.ValueMappingImpl.resolve(ValueMappingImpl.java:470)
      at
org.apache.openjpa.meta.FieldMetaData.resolve(FieldMetaData.java:1674)
      at
org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:416)
      at
org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1691)
      at
org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
      at
org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
      at
org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
      at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
      ... 21 more
-------------------------------------------------------------------------------------------------

Why do I get errors like 'The type "class mpsf.entities.SearchDetectionPK"
has not been enhanced.' while OpenJPA is supposed to be subclassing the lot?

Because I want to have the entities enhanced on a later stage anyway I
decided to deal with that right away in the hope to get things to work in
the first place. I set 'RuntimeUnenhancedClasses' to 'warn' and tried the
enhance at build time using ANT approaches. At least this got my program to
run in the first place but things are going wrong as soon as I try to
actually access the db. I'm always getting the following error using
different ANT configuration ways:

-------------------------------------------------------------------------------------------------
16  MPSFPU  INFO   [RunnableQueue-1] openjpa.Runtime - Starting OpenJPA
1.2.1
16  MPSFPU  INFO   [RunnableQueue-1] openjpa.jdbc.JDBC - Using dictionary
class "org.apache.openjpa.jdbc.sql.DerbyDictionary".
31  MPSFPU  WARN   [RunnableQueue-1] openjpa.Enhance - This configuration
disallows runtime optimization, but the following listed types were not
enhanced at build time or at class load time with a javaagent: "[class
mpsf.entities.SearchDetection, class mpsf.entities.RotationRate, class
mpsf.entities.Weapon, class mpsf.entities.Sensor, class
mpsf.entities.TrackDetection, class mpsf.entities.Environment, class
mpsf.entities.Trainer, class mpsf.entities.EngagementRange, class
mpsf.entities.KillProbability, class mpsf.entities.TimeOfFlight, class
mpsf.entities.Threat]".
<openjpa-1.2.1-r752877:753278 nonfatal user error>
org.apache.openjpa.persistence.ArgumentException: An error occurred while
parsing the query filter "SELECT d FROM mpsf.Entities.Threat d". Error
message: The name "mpsf.Entities.Threat" is not a recognized entity or
identifier. Known entity names: []
      at
org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.parseException(AbstractExpressionBuilder.java:118)
      at
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(JPQLExpressionBuilder.java:180)
      at
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:150)
      at
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:225)
      at
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:195)
      at
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType(JPQLExpressionBuilder.java:188)
      at
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$600(JPQLExpressionBuilder.java:69)
      at
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(JPQLExpressionBuilder.java:1756)
      at
org.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:56)
      at
org.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation(ExpressionStoreQuery.java:153)
      at
org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:658)
      at
org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:639)
      at
org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:605)
      at
org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:667)
      at
org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1492)
      at
org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:123)
      at
org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:243)
      at
org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294)
      at mpsf.AddDeviceTool.getDeviceList(AddDeviceTool.java:182)
      at mpsf.AddDeviceTool.access$400(AddDeviceTool.java:29)
      at mpsf.AddDeviceTool$1.run(AddDeviceTool.java:70)
      at org.apache.batik.util.RunnableQueue.run(Unknown Source)
      at java.lang.Thread.run(Thread.java:595)
-------------------------------------------------------------------------------------------------

The entity I try to use is 'Threat'. In the error above it states
'mpsf.Entities.Threat'. I tried both 'Threat' and 'mpsf.Entities.Threat',
the latter incase I had to specify the packages but it didn't make any
difference.

First attempt in build.xml:
-------------------------------------------------------------------------------------------------
 <target name="enhance">
    <taskdef name="openjpac"
classname="org.apache.openjpa.ant.PCEnhancerTask"/>
    <openjpac>
       <fileset dir=".">
          <include name="**/entities/*.java" />
       </fileset>
    </openjpac>
 </target>
-------------------------------------------------------------------------------------------------

After some reading up [1] I got to the following with different inbetween
attempts in the hope to get a cleaner result then this:
-------------------------------------------------------------------------------------------------
 <path id="jpa.enhancement.classpath">
    <pathelement location="bin"/>
    <fileset dir="lib/apache-openjpa-1.2.1">
       <include name="**/*.jar"/>
    </fileset>
 </path>

 <target name="enhance">
    <copy includeemptydirs="false" todir="bin">
       <fileset dir="src" excludes="**/*.launch, **/*.java"/>
    </copy>
        <taskdef name="openjpac"
classname="org.apache.openjpa.ant.PCEnhancerTask">
       <classpath refid="jpa.enhancement.classpath"/>
    </taskdef>

    <openjpac>
       <classpath refid="jpa.enhancement.classpath"/>
    </openjpac>
 </target>
-------------------------------------------------------------------------------------------------

All attempts just result in the same: none of the entities get enhanced,
never are there any known entity names.
The mentioned website does include an additional 'depends="build"' attribute
in the target element but doing so results in a different error: 'Target
"build" does not exist in the project "MPSF". It is used from target
"enhance".'

What is it that I keep doing wrong? What does it take to get the entities
enhanced?

I hope you can help me out.

Yours,

Age Bosma

P.s. As you might have figured, I'm new to JPA and ANT.

[1]
http://webspherepersistence.blogspot.com/2009/02/openjpa-enhancement.html
-- 
View this message in context: http://n2.nabble.com/Enhancing-entities%3A-getting-desperate-tp2937944p2937944.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Re: Enhancing entities: getting desperate

Posted by Michael Dick <mi...@gmail.com>.
Enabling trace when you run the enhancer should print a list of the classes
as they are enhanced.

Try adding the following to persistence.xml :

<property name="openjpa.Log" value="Enhance=TRACE"/>

-mike

On Wed, May 20, 2009 at 9:20 AM, Prodoc <ag...@hobba.nl> wrote:

>
>
>
> Kevin Sutter wrote:
> >
> > The doPrivileged call is used for Java2 Security permission checking.  If
> > you are not running with Java2 Security enabled, then this turns into
> > "noise".  I'm assuming you are not running with Java2 Security.
> >
>
> You are right, I'm not running with Java2 Security.
>
>
>
> Kevin Sutter wrote:
> >
> > As you can see, we need to get access to the declared methods of the
> given
> > Class.  And, we will recursively call this method to go up the Class
> > heirarchy.  It would seem that something in your Entity definition is
> > using
> > this org/w3c/dom/svg/SVGDocument Class.  Either directly or indirectly.
> > And, as Rick has pointed out, this Class would need to be available for
> > the
> > PCEnhancing process to be successful.
> >
>
> Rick, Kevin: Many thanks, adding the librabry to the classpath did the
> trick. I'm finally able to actually use OpenJPA now.
>
> The fact that it goes through all the librabry classes used elsewhere, is
> this also the reason why the enhancement process takes quite some time to
> finish?
> At first I was affraid that it that enhancer was enhancing all class files,
> not just the classes to persist, because of the access requirement of other
> libraries and the time it takes to enhance. I assume that this isn't the
> case? Is there a way to check which classes are/where actually enhanced?
>
> Age
> --
> View this message in context:
> http://n2.nabble.com/Enhancing-entities%3A-getting-desperate-tp2937944p2946353.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>
>

Re: Enhancing entities: getting desperate

Posted by Prodoc <ag...@hobba.nl>.


Kevin Sutter wrote:
> 
> The doPrivileged call is used for Java2 Security permission checking.  If
> you are not running with Java2 Security enabled, then this turns into
> "noise".  I'm assuming you are not running with Java2 Security.
> 

You are right, I'm not running with Java2 Security.



Kevin Sutter wrote:
> 
> As you can see, we need to get access to the declared methods of the given
> Class.  And, we will recursively call this method to go up the Class
> heirarchy.  It would seem that something in your Entity definition is
> using
> this org/w3c/dom/svg/SVGDocument Class.  Either directly or indirectly.
> And, as Rick has pointed out, this Class would need to be available for
> the
> PCEnhancing process to be successful.
> 

Rick, Kevin: Many thanks, adding the librabry to the classpath did the
trick. I'm finally able to actually use OpenJPA now.

The fact that it goes through all the librabry classes used elsewhere, is
this also the reason why the enhancement process takes quite some time to
finish?
At first I was affraid that it that enhancer was enhancing all class files,
not just the classes to persist, because of the access requirement of other
libraries and the time it takes to enhance. I assume that this isn't the
case? Is there a way to check which classes are/where actually enhanced?

Age
-- 
View this message in context: http://n2.nabble.com/Enhancing-entities%3A-getting-desperate-tp2937944p2946353.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Re: Enhancing entities: getting desperate

Posted by Kevin Sutter <kw...@gmail.com>.
Hi Prodoc,
The call stack indicates that we are attempting to process the Access Type
for a Method (Field or Property).

enhance:
java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
     at java.lang.Class.getDeclaredMethods0(Native Method)
     at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
     at java.lang.Class.getDeclaredMethods(Class.java:1791)
     at
org.apache.openjpa.lib.util.J2DoPrivHelper$9.run(J2DoPrivHelper.java:305)
      at java.security.AccessController.doPrivileged(Native Method)
     at
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:265)

Here's the code snippet from getAccessType (I'm assuming a 1.2.x OpenJPA
code base):

        if (annotated((Method[]) AccessController.doPrivileged(
            J2DoPriv5Helper.getDeclaredMethodsAction(cls))).size() > 0
            || cls.isInterface()) // OpenJPA managed ifaces must use prop
access
            access |= ClassMetaData.ACCESS_PROPERTY;
        return getAccessType(cls.getSuperclass()) | access;

The doPrivileged call is used for Java2 Security permission checking.  If
you are not running with Java2 Security enabled, then this turns into
"noise".  I'm assuming you are not running with Java2 Security.

As you can see, we need to get access to the declared methods of the given
Class.  And, we will recursively call this method to go up the Class
heirarchy.  It would seem that something in your Entity definition is using
this org/w3c/dom/svg/SVGDocument Class.  Either directly or indirectly.
And, as Rick has pointed out, this Class would need to be available for the
PCEnhancing process to be successful.

Kevin

On Wed, May 20, 2009 at 2:53 AM, Prodoc <ag...@hobba.nl> wrote:

>
>
> Prodoc wrote:
> > I just performed a clean and with the same build config as mentioned in
> my
> > last post I now get presented with a different error:
> >
> > java.lang.IllegalArgumentException: java.lang.ClassNotFoundException:
> > mpsf.entities.EngagementRange
> >
>
> Fixed now. A simple later calling of the enhance target did the trick.
> I'm now back at the 'NoClassDefFoundError' error. Any idea what the cause
> of
> this could be?
>
> Here's the complete error:
>
> -------------------------------------------------------------------------------------------------
> enhance:
> java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
>      at java.lang.Class.getDeclaredMethods0(Native Method)
>      at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
>      at java.lang.Class.getDeclaredMethods(Class.java:1791)
>      at
> org.apache.openjpa.lib.util.J2DoPrivHelper$9.run(J2DoPrivHelper.java:305)
>       at java.security.AccessController.doPrivileged(Native Method)
>      at
>
> org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:265)
>      at
>
> org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:250)
>      at
>
> org.apache.openjpa.meta.AbstractMetaDataDefaults.populate(AbstractMetaDataDefaults.java:155)
>      at
>
> org.apache.openjpa.persistence.PersistenceMetaDataDefaults.populate(PersistenceMetaDataDefaults.java:227)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:794)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:780)
>      at
>
> org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.getMetaData(AnnotationPersistenceMetaDataParser.java:657)
>      at
>
> org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parseClassAnnotations(AnnotationPersistenceMetaDataParser.java:480)
>      at
>
> org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parse(AnnotationPersistenceMetaDataParser.java:352)
>      at
>
> org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:229)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:474)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:294)
>      at
>
> org.apache.openjpa.meta.ValueMetaDataImpl.resolveDeclaredType(ValueMetaDataImpl.java:431)
>      at
>
> org.apache.openjpa.meta.ValueMetaDataImpl.resolve(ValueMetaDataImpl.java:410)
>       at
> org.apache.openjpa.meta.FieldMetaData.resolve(FieldMetaData.java:1674)
>      at
> org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1691)
>      at
> org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
>       at
>
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
>       at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:249)
>      at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4493)
>      at
> org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89)
>      at
> org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:172)
>      at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>      at sun.reflect.GeneratedMethodAccessor385.invoke(Unknown Source)
>      at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>      at java.lang.reflect.Method.invoke(Method.java:597)
>      at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>      at org.apache.tools.ant.Task.perform(Task.java:348)
>      at org.apache.tools.ant.Target.execute(Target.java:357)
>      at org.apache.tools.ant.Target.performTasks(Target.java:385)
>      at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
>      at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
>      at
>
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>      at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
>      at
> org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:273)
>      at
> org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:499)
>      at
> org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:151)
> Caused by: java.lang.ClassNotFoundException: org.w3c.dom.svg.SVGDocument
>      at
>
> org.apache.openjpa.lib.util.TemporaryClassLoader.loadClass(TemporaryClassLoader.java:64)
>      at
>
> org.apache.openjpa.lib.util.TemporaryClassLoader.loadClass(TemporaryClassLoader.java:44)
>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>      ... 45 more
> java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
>      at java.lang.Class.getDeclaredMethods0(Native Method)
>      at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
>      at java.lang.Class.getDeclaredMethods(Class.java:1791)
>      at
> org.apache.openjpa.lib.util.J2DoPrivHelper$9.run(J2DoPrivHelper.java:305)
>       at java.security.AccessController.doPrivileged(Native Method)
>      at
>
> org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:265)
>      at
>
> org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:250)
>      at
>
> org.apache.openjpa.meta.AbstractMetaDataDefaults.populate(AbstractMetaDataDefaults.java:155)
>      at
>
> org.apache.openjpa.persistence.PersistenceMetaDataDefaults.populate(PersistenceMetaDataDefaults.java:227)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:794)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:780)
>      at
>
> org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.getMetaData(AnnotationPersistenceMetaDataParser.java:657)
>      at
>
> org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parseClassAnnotations(AnnotationPersistenceMetaDataParser.java:480)
>      at
>
> org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parse(AnnotationPersistenceMetaDataParser.java:352)
>      at
>
> org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:229)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:474)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:294)
>      at
>
> org.apache.openjpa.meta.ValueMetaDataImpl.resolveDeclaredType(ValueMetaDataImpl.java:431)
>      at
>
> org.apache.openjpa.meta.ValueMetaDataImpl.resolve(ValueMetaDataImpl.java:410)
>       at
> org.apache.openjpa.meta.FieldMetaData.resolve(FieldMetaData.java:1674)
>      at
> org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1691)
>      at
> org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
>       at
>
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
>       at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:249)
>      at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4493)
>      at
> org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89)
>      at
> org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:172)
>      at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>      at sun.reflect.GeneratedMethodAccessor385.invoke(Unknown Source)
>      at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>      at java.lang.reflect.Method.invoke(Method.java:597)
>      at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>      at org.apache.tools.ant.Task.perform(Task.java:348)
>      at org.apache.tools.ant.Target.execute(Target.java:357)
>      at org.apache.tools.ant.Target.performTasks(Target.java:385)
>      at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
>      at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
>      at
>
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>      at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
>      at
> org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:273)
>      at
> org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:499)
>      at
> org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:151)
> Caused by: java.lang.ClassNotFoundException: org.w3c.dom.svg.SVGDocument
>      at
>
> org.apache.openjpa.lib.util.TemporaryClassLoader.loadClass(TemporaryClassLoader.java:64)
>      at
>
> org.apache.openjpa.lib.util.TemporaryClassLoader.loadClass(TemporaryClassLoader.java:44)
>      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>      ... 45 more
>
> -------------------------------------------------------------------------------------------------
>
> This only pops up because of the enhance procedure.
>
> Yours,
>
> Age
> --
> View this message in context:
> http://n2.nabble.com/Enhancing-entities%3A-getting-desperate-tp2937944p2944823.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>
>

Re: Enhancing entities: getting desperate

Posted by Rick Curtis <cu...@gmail.com>.
It would appear that the class org.w3c.dom.svg.SVGDocument isn't on the
classpath when you run the enhancer.

-Rick



Prodoc wrote:
> 
> Fixed now. A simple later calling of the enhance target did the trick.
> I'm now back at the 'NoClassDefFoundError' error. Any idea what the cause
> of this could be?
> 
> Here's the complete error:
> -------------------------------------------------------------------------------------------------
> enhance:
> java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
>       at java.lang.Class.getDeclaredMethods0(Native Method)
>       at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
>       at java.lang.Class.getDeclaredMethods(Class.java:1791)
>       at
> org.apache.openjpa.lib.util.J2DoPrivHelper$9.run(J2DoPrivHelper.java:305)
>       at java.security.AccessController.doPrivileged(Native Method)
>   .....
> Caused by: java.lang.ClassNotFoundException: org.w3c.dom.svg.SVGDocument
>       at
> org.apache.openjpa.lib.util.TemporaryClassLoader.loadClass(TemporaryClassLoader.java:64)
>       at
> org.apache.openjpa.lib.util.TemporaryClassLoader.loadClass(TemporaryClassLoader.java:44)
>       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>       ... 45 more
> ...
> This only pops up because of the enhance procedure.
> 
> Yours,
> 
> Age
> 

-- 
View this message in context: http://n2.nabble.com/Enhancing-entities%3A-getting-desperate-tp2937944p2946034.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Re: @Version annotated Field not included in SELECT (prepstmnt)

Posted by Craig L Russell <Cr...@Sun.COM>.
Hi Heiko,

<jpa spec p. 383>
The following types are supported for version properties: int,  
Integer, short, Short, long,
Long, Timestamp.
</jpa spec>

Try changing the type of the version field and see if that helps.

If so, please file a JIRA to give an error message instead of a silent  
fail.

Thanks,

Craig

On May 20, 2009, at 2:10 AM, it-media.kopp@daimler.com wrote:

> Hello,
>
> I'm having an issue in openJPA 1.2.1 with a entity model as follows:
>
> @Entity
> @Table(name = "PARTNER", schema = "PART")
> @NamedQuery(name = "getPartner", query = "SELECT p FROM Partner p  
> where
> p.partKey = :partKey")
> public class Partner
> {
>    @Id
>    @Column(name = "PART_KEY")
>    private BigDecimal partKey;
>
>    @OneToMany(mappedBy = "partner", fetch = FetchType.LAZY)
>    private List<PartnerRolle> rollen;
> }
>
> @Entity
> @Table(name = "PARTNERROLLE")
> public class PartnerRolle
> {
>    @EmbeddedId
>    private PartnerRolleKey key;
>
>         @Version
>    @Column(name = "VERSION")
>    private BigDecimal version;
>
>    @ManyToOne(fetch = FetchType.LAZY)
>    @JoinColumn(name = "PART_KEY")
>    private Partner partner;
> }
>
> When I ask for a Partner and later on call getRollen(), in the
> corresponding SELECT (prepstmt), the Column VERSION of PARTNERROLLE  
> is NOT
> queried (not listed in the SELECT). When I remove the @Version  
> annotation,
> it works corerctly, thus the VERSION is filled with the correct  
> value. It
> only works as expected, when I do NOT set @Version to that column.
>
> I doubt this is correct behaviour, cause even though its a simple  
> query,
> ALL annotated columns should be returned, whether or not they  
> changed. I
> was relying on the return of the VERSION field and ran into a
> NullPointerException because the BigDecimal was not correctly  
> instatiated.
>
> Any suggestion, even if it is "this is correct behaviour, because ..."
> would be appreciated.
>
> Thanx,
>
> Best regards,
>
> Heiko
>
> If you are not the intended addressee, please inform us immediately  
> that you have received this e-mail in error, and delete it. We thank  
> you for your cooperation.

Craig L Russell
Architect, Sun Java Enterprise System http://db.apache.org/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!


@Version annotated Field not included in SELECT (prepstmnt)

Posted by it...@daimler.com.
Hello,

I'm having an issue in openJPA 1.2.1 with a entity model as follows:

@Entity
@Table(name = "PARTNER", schema = "PART")
@NamedQuery(name = "getPartner", query = "SELECT p FROM Partner p where 
p.partKey = :partKey")
public class Partner
{
    @Id
    @Column(name = "PART_KEY")
    private BigDecimal partKey;

    @OneToMany(mappedBy = "partner", fetch = FetchType.LAZY)
    private List<PartnerRolle> rollen;
}

@Entity
@Table(name = "PARTNERROLLE")
public class PartnerRolle
{
    @EmbeddedId
    private PartnerRolleKey key;

         @Version
    @Column(name = "VERSION")
    private BigDecimal version;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "PART_KEY")
    private Partner partner;
}

When I ask for a Partner and later on call getRollen(), in the 
corresponding SELECT (prepstmt), the Column VERSION of PARTNERROLLE is NOT 
queried (not listed in the SELECT). When I remove the @Version annotation, 
it works corerctly, thus the VERSION is filled with the correct value. It 
only works as expected, when I do NOT set @Version to that column. 

I doubt this is correct behaviour, cause even though its a simple query, 
ALL annotated columns should be returned, whether or not they changed. I 
was relying on the return of the VERSION field and ran into a 
NullPointerException because the BigDecimal was not correctly instatiated.

Any suggestion, even if it is "this is correct behaviour, because ..." 
would be appreciated.

Thanx,

Best regards,

Heiko

If you are not the intended addressee, please inform us immediately that you have received this e-mail in error, and delete it. We thank you for your cooperation.  

Re: Enhancing entities: getting desperate

Posted by Prodoc <ag...@hobba.nl>.

Prodoc wrote:
> I just performed a clean and with the same build config as mentioned in my
> last post I now get presented with a different error:
> 
> java.lang.IllegalArgumentException: java.lang.ClassNotFoundException:
> mpsf.entities.EngagementRange
> 

Fixed now. A simple later calling of the enhance target did the trick.
I'm now back at the 'NoClassDefFoundError' error. Any idea what the cause of
this could be?

Here's the complete error:
-------------------------------------------------------------------------------------------------
enhance:
java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
      at java.lang.Class.getDeclaredMethods0(Native Method)
      at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
      at java.lang.Class.getDeclaredMethods(Class.java:1791)
      at
org.apache.openjpa.lib.util.J2DoPrivHelper$9.run(J2DoPrivHelper.java:305)
      at java.security.AccessController.doPrivileged(Native Method)
      at
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:265)
      at
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:250)
      at
org.apache.openjpa.meta.AbstractMetaDataDefaults.populate(AbstractMetaDataDefaults.java:155)
      at
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.populate(PersistenceMetaDataDefaults.java:227)
      at
org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:794)
      at
org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:780)
      at
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.getMetaData(AnnotationPersistenceMetaDataParser.java:657)
      at
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parseClassAnnotations(AnnotationPersistenceMetaDataParser.java:480)
      at
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parse(AnnotationPersistenceMetaDataParser.java:352)
      at
org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:229)
      at
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:474)
      at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:294)
      at
org.apache.openjpa.meta.ValueMetaDataImpl.resolveDeclaredType(ValueMetaDataImpl.java:431)
      at
org.apache.openjpa.meta.ValueMetaDataImpl.resolve(ValueMetaDataImpl.java:410)
      at
org.apache.openjpa.meta.FieldMetaData.resolve(FieldMetaData.java:1674)
      at
org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1691)
      at
org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
      at
org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
      at
org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
      at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
      at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
      at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:249)
      at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4493)
      at
org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89)
      at
org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:172)
      at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
      at sun.reflect.GeneratedMethodAccessor385.invoke(Unknown Source)
      at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
      at org.apache.tools.ant.Task.perform(Task.java:348)
      at org.apache.tools.ant.Target.execute(Target.java:357)
      at org.apache.tools.ant.Target.performTasks(Target.java:385)
      at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
      at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
      at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
      at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
      at
org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:273)
      at
org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:499)
      at
org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:151)
Caused by: java.lang.ClassNotFoundException: org.w3c.dom.svg.SVGDocument
      at
org.apache.openjpa.lib.util.TemporaryClassLoader.loadClass(TemporaryClassLoader.java:64)
      at
org.apache.openjpa.lib.util.TemporaryClassLoader.loadClass(TemporaryClassLoader.java:44)
      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
      ... 45 more
java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
      at java.lang.Class.getDeclaredMethods0(Native Method)
      at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
      at java.lang.Class.getDeclaredMethods(Class.java:1791)
      at
org.apache.openjpa.lib.util.J2DoPrivHelper$9.run(J2DoPrivHelper.java:305)
      at java.security.AccessController.doPrivileged(Native Method)
      at
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:265)
      at
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:250)
      at
org.apache.openjpa.meta.AbstractMetaDataDefaults.populate(AbstractMetaDataDefaults.java:155)
      at
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.populate(PersistenceMetaDataDefaults.java:227)
      at
org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:794)
      at
org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:780)
      at
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.getMetaData(AnnotationPersistenceMetaDataParser.java:657)
      at
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parseClassAnnotations(AnnotationPersistenceMetaDataParser.java:480)
      at
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parse(AnnotationPersistenceMetaDataParser.java:352)
      at
org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:229)
      at
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:474)
      at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:294)
      at
org.apache.openjpa.meta.ValueMetaDataImpl.resolveDeclaredType(ValueMetaDataImpl.java:431)
      at
org.apache.openjpa.meta.ValueMetaDataImpl.resolve(ValueMetaDataImpl.java:410)
      at
org.apache.openjpa.meta.FieldMetaData.resolve(FieldMetaData.java:1674)
      at
org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1691)
      at
org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
      at
org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
      at
org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
      at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
      at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
      at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:249)
      at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4493)
      at
org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89)
      at
org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:172)
      at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
      at sun.reflect.GeneratedMethodAccessor385.invoke(Unknown Source)
      at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
      at org.apache.tools.ant.Task.perform(Task.java:348)
      at org.apache.tools.ant.Target.execute(Target.java:357)
      at org.apache.tools.ant.Target.performTasks(Target.java:385)
      at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
      at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
      at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
      at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
      at
org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:273)
      at
org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:499)
      at
org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:151)
Caused by: java.lang.ClassNotFoundException: org.w3c.dom.svg.SVGDocument
      at
org.apache.openjpa.lib.util.TemporaryClassLoader.loadClass(TemporaryClassLoader.java:64)
      at
org.apache.openjpa.lib.util.TemporaryClassLoader.loadClass(TemporaryClassLoader.java:44)
      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
      ... 45 more
-------------------------------------------------------------------------------------------------

This only pops up because of the enhance procedure.

Yours,

Age
-- 
View this message in context: http://n2.nabble.com/Enhancing-entities%3A-getting-desperate-tp2937944p2944823.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Re: Enhancing entities: getting desperate

Posted by Prodoc <ag...@hobba.nl>.
Darn, I shouted too soon...
I just performed a clean and with the same build config as mentioned in my
last post I now get presented with a different error:

java.lang.IllegalArgumentException: java.lang.ClassNotFoundException:
mpsf.entities.EngagementRange

It appears to have worked before because I did a compile without the
enhancer. I just don't understand why getting enhancement to work is so
troublesome. I suspect that I'll be prented with the error in the previous
e-mail again as soon as I manage to fix this one.



Prodoc wrote:
> 
> 
> 
> Michael Dick wrote:
>> 
>> Do you have all your entities listed in persistence.xml? The exceptions
>> below look like the list is either missing, or doesn't have a complete
>> list
>> of your entities.
>> 
> 
> Thanks for your reply Michael. Yes, I do have all the entities included in
> persistence.xml except for all the embeddables.
> 
> After further investigation I found that the enhance target was never
> processed because I didn't know I had to call it from elsewhere in the
> build files *hits head against desk*. I now get the enhancer to run but I
> had to deal with serveral issues afterwards ('MetaDataFactory could not be
> configured', 'java.lang.ClassNotFoundException', etc.). I feel that I'm
> slowly getting closer to get it to start enhancing but I'm stuck with one
> more problem.
> 
> The build.xml file now contains the following:
> 
> ------------------------------------------------------------------------------------------------- 
>    <path id="jpa.enhancement.classpath"> 
>       <pathelement location="build/classes"/> 
>       
>       <fileset dir="lib/apache-openjpa-1.2.1"> 
>          <include name="**/*.jar"/> 
>       </fileset> 
>    </path>
>  
>    <target name="enhance">
>       <taskdef name="openjpac"
> classname="org.apache.openjpa.ant.PCEnhancerTask"> 
>          <classpath refid="jpa.enhancement.classpath"/> 
>       </taskdef> 
> 
>       <openjpac>
>          <config propertiesFile="./src/META-INF/persistence.xml"/>
> 
>          <fileset dir=".">
>             <include name="**/src/mpsf/entities/*.java">
>          </fileset>
> 
>          <classpath refid="jpa.enhancement.classpath"/> 
>       </openjpac> 
>    </target> 
> ------------------------------------------------------------------------------------------------- 
> 
> The error I'm now presented with is:
> 
> ------------------------------------------------------------------------------------------------- 
> enhance:
> java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
>     at java.lang.Class.getDeclaredMethods0(Native Method)
>     at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
>     at java.lang.Class.getDeclaredMethods(Class.java:1791)
>     at
> org.apache.openjpa.lib.util.J2DoPrivHelper$9.run(J2DoPrivHelper.java:305)
>     ...
> ------------------------------------------------------------------------------------------------- 
> 
> Any idea what this could be?
> 
> Yours,
> 
> Age
> 
> 

-- 
View this message in context: http://n2.nabble.com/Enhancing-entities%3A-getting-desperate-tp2937944p2939749.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Re: Enhancing entities: getting desperate

Posted by Prodoc <ag...@hobba.nl>.


Michael Dick wrote:
> 
> Do you have all your entities listed in persistence.xml? The exceptions
> below look like the list is either missing, or doesn't have a complete
> list
> of your entities.
> 

Thanks for your reply Michael. Yes, I do have all the entities included in
persistence.xml except for all the embeddables.

After further investigation I found that the enhance target was never
processed because I didn't know I had to call it from elsewhere in the build
files *hits head against desk*. I now get the enhancer to run but I had to
deal with serveral issues afterwards ('MetaDataFactory could not be
configured', 'java.lang.ClassNotFoundException', etc.). I feel that I'm
slowly getting closer to get it to start enhancing but I'm stuck with one
more problem.

The build.xml file now contains the following:

------------------------------------------------------------------------------------------------- 
   <path id="jpa.enhancement.classpath"> 
      <pathelement location="build/classes"/> 
      
      <fileset dir="lib/apache-openjpa-1.2.1"> 
         <include name="**/*.jar"/> 
      </fileset> 
   </path>
 
   <target name="enhance">
      <taskdef name="openjpac"
classname="org.apache.openjpa.ant.PCEnhancerTask"> 
         <classpath refid="jpa.enhancement.classpath"/> 
      </taskdef> 

      <openjpac>
         <config propertiesFile="./src/META-INF/persistence.xml"/>

         <fileset dir=".">
            <include name="**/src/mpsf/entities/*.java">
         </fileset>

         <classpath refid="jpa.enhancement.classpath"/> 
      </openjpac> 
   </target> 
------------------------------------------------------------------------------------------------- 

The error I'm now presented with is:

------------------------------------------------------------------------------------------------- 
enhance:
java.lang.NoClassDefFoundError: org/w3c/dom/svg/SVGDocument
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
    at java.lang.Class.getDeclaredMethods(Class.java:1791)
    at
org.apache.openjpa.lib.util.J2DoPrivHelper$9.run(J2DoPrivHelper.java:305)
    ...
------------------------------------------------------------------------------------------------- 

Any idea what this could be?

Yours,

Age

-- 
View this message in context: http://n2.nabble.com/Enhancing-entities%3A-getting-desperate-tp2937944p2939574.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Re: Enhancing entities: getting desperate

Posted by Michael Dick <mi...@gmail.com>.
Hi,

Do you have all your entities listed in persistence.xml? The exceptions
below look like the list is either missing, or doesn't have a complete list
of your entities.

-mike

On Tue, May 19, 2009 at 2:23 AM, Prodoc <ag...@hobba.nl> wrote:

>
> Hi,
>
> I don't know what I'm doing wrong but I can't seem to get OpenJPA to work
> in
> my project. I keep running into entity enhancement issues. The more methods
> I try, to more problem it seems to be causing.
>
> *Using*
> - NetBeans 6.5.1
> - Java jdk1.5.0_16
> - OpenJPA 1.2.1
> - Derby 10.5.1.1
>
> *Structure*
> - MPSF
>  - lib
>    - apache-openjpa-1.2.1
>  - src
>    - META-INF
>    - mpsf
>       - entities
>  - build.xml
>
> If I leave 'RuntimeUnenhancedClasses' set to 'supported' I get the
> following
> error:
>
>
> -------------------------------------------------------------------------------------------------
> 297  MPSFPU  INFO   [AWT-EventQueue-0] openjpa.Runtime - Starting OpenJPA
> 1.2.1
> 875  MPSFPU  INFO   [AWT-EventQueue-0] openjpa.jdbc.JDBC - Using dictionary
> class "org.apache.openjpa.jdbc.sql.DerbyDictionary".
> 2187  MPSFPU  INFO   [AWT-EventQueue-0] openjpa.Enhance - Creating subclass
> for "[class mpsf.entities.SearchDetection, class
> mpsf.entities.RotationRate,
> class mpsf.entities.Weapon, class mpsf.entities.Sensor, class
> mpsf.entities.TrackDetection, class mpsf.entities.Environment, class
> mpsf.entities.Trainer, class mpsf.entities.EngagementRange, class
> mpsf.entities.KillProbability, class mpsf.entities.TimeOfFlight, class
> mpsf.entities.Threat]". 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.
> May 18, 2009 3:57:20 PM org.jdesktop.application.Application$1 run
> SEVERE: Application class mpsf.MPSFApp failed to launch
> <openjpa-1.2.1-r752877:753278 fatal user error>
> org.apache.openjpa.persistence.ArgumentException: Errors encountered while
> resolving metadata.  See nested exceptions for details.
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:563)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
>      at
>
> org.apache.openjpa.enhance.ManagedClassSubclasser.configureMetaData(ManagedClassSubclasser.java:209)
>      at
>
> org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:165)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:310)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:228)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
>      at
>
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
>      at mpsf.MPSFView.initComponents(MPSFView.java:181)
>      at mpsf.MPSFView.<init>(MPSFView.java:47)
>      at mpsf.MPSFApp.startup(MPSFApp.java:21)
>      at org.jdesktop.application.Application$1.run(Application.java:171)
>      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
>      at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
>      at
>
> java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
>      at
>
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
>      at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
>      at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
>      at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
> Caused by: <openjpa-1.2.1-r752877:753278 fatal user error>
> org.apache.openjpa.persistence.ArgumentException: The type "class
> mpsf.entities.SearchDetectionPK" has not been enhanced.
>      at
> org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1652)
>      at
> org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
>      at
>
> org.apache.openjpa.meta.ValueMetaDataImpl.resolve(ValueMetaDataImpl.java:417)
>      at
>
> org.apache.openjpa.jdbc.meta.ValueMappingImpl.resolve(ValueMappingImpl.java:470)
>      at
> org.apache.openjpa.meta.FieldMetaData.resolve(FieldMetaData.java:1674)
>      at
> org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:416)
>      at
> org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1691)
>      at
> org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
>      ... 21 more
> NestedThrowables:
> <openjpa-1.2.1-r752877:753278 fatal user error>
> org.apache.openjpa.persistence.ArgumentException: Unable to resolve type
> "mpsf.entities.Environment" due to previous errors resolving related type
> "mpsf.entities.SearchDetection".
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:731)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
>      at
>
> org.apache.openjpa.enhance.ManagedClassSubclasser.configureMetaData(ManagedClassSubclasser.java:209)
>      at
>
> org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:165)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:310)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:228)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
>      at
>
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
>      at mpsf.MPSFView.initComponents(MPSFView.java:181)
>      at mpsf.MPSFView.<init>(MPSFView.java:47)
>      at mpsf.MPSFApp.startup(MPSFApp.java:21)
>      at org.jdesktop.application.Application$1.run(Application.java:171)
>      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
>      at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
>      at
>
> java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
>      at
>
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
>      at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
>      at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
>      at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
> <openjpa-1.2.1-r752877:753278 fatal user error>
> org.apache.openjpa.persistence.ArgumentException: Unable to resolve type
> "mpsf.entities.RotationRate" due to previous errors resolving related type
> "mpsf.entities.SearchDetection".
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:731)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
>      at
>
> org.apache.openjpa.enhance.ManagedClassSubclasser.configureMetaData(ManagedClassSubclasser.java:209)
>      at
>
> org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:165)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:310)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:228)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
>      at
>
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
>      at mpsf.MPSFView.initComponents(MPSFView.java:181)
>      at mpsf.MPSFView.<init>(MPSFView.java:47)
>      at mpsf.MPSFApp.startup(MPSFApp.java:21)
>      at org.jdesktop.application.Application$1.run(Application.java:171)
>      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
>      at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
>      at
>
> java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
>      at
>
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
>      at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
>      at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
>      at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
> Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class
> mpsf.MPSFApp failed to launch
>      at org.jdesktop.application.Application$1.run(Application.java:177)
>      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
>      at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
>      at
>
> java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
>      at
>
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
>      at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
>      at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
>      at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
> Caused by: <openjpa-1.2.1-r752877:753278 fatal user error>
> org.apache.openjpa.persistence.ArgumentException: Errors encountered while
> resolving metadata.  See nested exceptions for details.
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:563)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
>      at
>
> org.apache.openjpa.enhance.ManagedClassSubclasser.configureMetaData(ManagedClassSubclasser.java:209)
>      at
>
> org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:165)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:310)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:228)
>      at
>
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
>      at
>
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
>      at
>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
>      at mpsf.MPSFView.initComponents(MPSFView.java:181)
>      at mpsf.MPSFView.<init>(MPSFView.java:47)
>      at mpsf.MPSFApp.startup(MPSFApp.java:21)
>      at org.jdesktop.application.Application$1.run(Application.java:171)
>      ... 7 more
> Caused by: <openjpa-1.2.1-r752877:753278 fatal user error>
> org.apache.openjpa.persistence.ArgumentException: The type "class
> mpsf.entities.SearchDetectionPK" has not been enhanced.
>      at
> org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1652)
>      at
> org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
>      at
>
> org.apache.openjpa.meta.ValueMetaDataImpl.resolve(ValueMetaDataImpl.java:417)
>      at
>
> org.apache.openjpa.jdbc.meta.ValueMappingImpl.resolve(ValueMappingImpl.java:470)
>      at
> org.apache.openjpa.meta.FieldMetaData.resolve(FieldMetaData.java:1674)
>      at
> org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:416)
>      at
> org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1691)
>      at
> org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
>      at
>
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
>      ... 21 more
>
> -------------------------------------------------------------------------------------------------
>
> Why do I get errors like 'The type "class mpsf.entities.SearchDetectionPK"
> has not been enhanced.' while OpenJPA is supposed to be subclassing the
> lot?
>
> Because I want to have the entities enhanced on a later stage anyway I
> decided to deal with that right away in the hope to get things to work in
> the first place. I set 'RuntimeUnenhancedClasses' to 'warn' and tried the
> enhance at build time using ANT approaches. At least this got my program to
> run in the first place but things are going wrong as soon as I try to
> actually access the db. I'm always getting the following error using
> different ANT configuration ways:
>
>
> -------------------------------------------------------------------------------------------------
> 16  MPSFPU  INFO   [RunnableQueue-1] openjpa.Runtime - Starting OpenJPA
> 1.2.1
> 16  MPSFPU  INFO   [RunnableQueue-1] openjpa.jdbc.JDBC - Using dictionary
> class "org.apache.openjpa.jdbc.sql.DerbyDictionary".
> 31  MPSFPU  WARN   [RunnableQueue-1] openjpa.Enhance - This configuration
> disallows runtime optimization, but the following listed types were not
> enhanced at build time or at class load time with a javaagent: "[class
> mpsf.entities.SearchDetection, class mpsf.entities.RotationRate, class
> mpsf.entities.Weapon, class mpsf.entities.Sensor, class
> mpsf.entities.TrackDetection, class mpsf.entities.Environment, class
> mpsf.entities.Trainer, class mpsf.entities.EngagementRange, class
> mpsf.entities.KillProbability, class mpsf.entities.TimeOfFlight, class
> mpsf.entities.Threat]".
> <openjpa-1.2.1-r752877:753278 nonfatal user error>
> org.apache.openjpa.persistence.ArgumentException: An error occurred while
> parsing the query filter "SELECT d FROM mpsf.Entities.Threat d". Error
> message: The name "mpsf.Entities.Threat" is not a recognized entity or
> identifier. Known entity names: []
>      at
>
> org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.parseException(AbstractExpressionBuilder.java:118)
>      at
>
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(JPQLExpressionBuilder.java:180)
>      at
>
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:150)
>      at
>
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:225)
>      at
>
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:195)
>      at
>
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType(JPQLExpressionBuilder.java:188)
>      at
>
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$600(JPQLExpressionBuilder.java:69)
>      at
>
> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(JPQLExpressionBuilder.java:1756)
>      at
> org.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:56)
>      at
>
> org.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation(ExpressionStoreQuery.java:153)
>      at
> org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:658)
>      at
>
> org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:639)
>      at
>
> org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:605)
>      at
> org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:667)
>      at
> org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1492)
>      at
>
> org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:123)
>      at
> org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:243)
>      at
> org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294)
>      at mpsf.AddDeviceTool.getDeviceList(AddDeviceTool.java:182)
>      at mpsf.AddDeviceTool.access$400(AddDeviceTool.java:29)
>      at mpsf.AddDeviceTool$1.run(AddDeviceTool.java:70)
>      at org.apache.batik.util.RunnableQueue.run(Unknown Source)
>      at java.lang.Thread.run(Thread.java:595)
>
> -------------------------------------------------------------------------------------------------
>
> The entity I try to use is 'Threat'. In the error above it states
> 'mpsf.Entities.Threat'. I tried both 'Threat' and 'mpsf.Entities.Threat',
> the latter incase I had to specify the packages but it didn't make any
> difference.
>
> First attempt in build.xml:
>
> -------------------------------------------------------------------------------------------------
>  <target name="enhance">
>    <taskdef name="openjpac"
> classname="org.apache.openjpa.ant.PCEnhancerTask"/>
>    <openjpac>
>       <fileset dir=".">
>          <include name="**/entities/*.java" />
>       </fileset>
>    </openjpac>
>  </target>
>
> -------------------------------------------------------------------------------------------------
>
> After some reading up [1] I got to the following with different inbetween
> attempts in the hope to get a cleaner result then this:
>
> -------------------------------------------------------------------------------------------------
>  <path id="jpa.enhancement.classpath">
>    <pathelement location="bin"/>
>    <fileset dir="lib/apache-openjpa-1.2.1">
>       <include name="**/*.jar"/>
>    </fileset>
>  </path>
>
>  <target name="enhance">
>    <copy includeemptydirs="false" todir="bin">
>       <fileset dir="src" excludes="**/*.launch, **/*.java"/>
>    </copy>
>        <taskdef name="openjpac"
> classname="org.apache.openjpa.ant.PCEnhancerTask">
>       <classpath refid="jpa.enhancement.classpath"/>
>    </taskdef>
>
>    <openjpac>
>       <classpath refid="jpa.enhancement.classpath"/>
>    </openjpac>
>  </target>
>
> -------------------------------------------------------------------------------------------------
>
> All attempts just result in the same: none of the entities get enhanced,
> never are there any known entity names.
> The mentioned website does include an additional 'depends="build"'
> attribute
> in the target element but doing so results in a different error: 'Target
> "build" does not exist in the project "MPSF". It is used from target
> "enhance".'
>
> What is it that I keep doing wrong? What does it take to get the entities
> enhanced?
>
> I hope you can help me out.
>
> Yours,
>
> Age Bosma
>
> P.s. As you might have figured, I'm new to JPA and ANT.
>
> [1]
> http://webspherepersistence.blogspot.com/2009/02/openjpa-enhancement.html
> --
> View this message in context:
> http://n2.nabble.com/Enhancing-entities%3A-getting-desperate-tp2937944p2937944.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>
>