openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Igor Fedorenko <igor...@yahoo.com>
Subject Re: [jira] Created: (OPENJPA-96) Runtime Enhancement only processes first persistence unit defined in persistence.xml
Date Tue, 09 Jan 2007 16:56:49 GMT
Does this bugreport cover persistent units defined in different persistence.xml files too?
If I am not mistaken, OpenJPA looks at first persistent unit of randomly chosen persistence.xml
file.

----- Original Message ----
From: Kevin Sutter (JIRA) <jira@apache.org>
To: open-jpa-dev@incubator.apache.org
Sent: Tuesday, January 9, 2007 11:41:27 AM
Subject: [jira] Created: (OPENJPA-96) Runtime Enhancement only processes first persistence
unit defined in persistence.xml

Runtime Enhancement only processes first persistence unit defined in persistence.xml
------------------------------------------------------------------------------------

                 Key: OPENJPA-96
                 URL: https://issues.apache.org/jira/browse/OPENJPA-96
             Project: OpenJPA
          Issue Type: Bug
          Components: jpa
            Reporter: Kevin Sutter


(This Issue may be related to OPENJPA-9, but since that one was specific to static PCEnhancing,
I thought I would open a separate Issue.  Just in case the solutions are separate.)

I'm using dynamic runtime enhancement via the -javaagent parameter.  It seems that only the
first persistence-unit defined in the persistence.xml is being processed for the runtime enhancement.
 If the persistence.xml has only one entry, no problem.  But, if it has more than one entry,
then only the first persistence-unit definition is being processed for the dynamic enhancement.

When I turn trace on, I get the following message when the runtime enhancement works:

8312  my persistence unit  INFO   [main] openjpa.MetaData - Found 1 classes with metadata
in 0 milliseconds.
8943  my persistence unit  TRACE  [main] openjpa.Enhance - "com/ibm/ws/persistence/tests/simple/TestEntity"
requires runtime enhancement: true
9043  my persistence unit  TRACE  [main] openjpa.MetaData - Loading metadata for "class com.ibm.ws.persistence.tests.simple.TestEntity"
under mode "[META][QUERY]".

When this p-u definition is not first in my persistence.xml, the "8943" message is missing
and my test fails:

8512  my persistence unit  INFO   [main] openjpa.MetaData - Found 1 classes with metadata
in 0 milliseconds.
8522  my persistence unit  TRACE  [main] openjpa.MetaData - Using metadata factory "org.apache.openjpa.persistence.jdbc.PersistenceMappingFactory@37e837e8".
8522  my persistence unit  TRACE  [main] openjpa.MetaData - Loading metadata for "class com.ibm.ws.persistence.tests.simple.TestEntity"
under mode "[META][QUERY]".

I eventually get the following message when running the testcase:

<4|false|0.0.0> org.apache.openjpa.persistence.ArgumentException: Attempt to cast instance
"com.ibm.ws.persistence.tests.simple.TestEntity@60606060" to PersistenceCapable failed.  Ensure
that it has been enhanced.
FailedObject: com.ibm.ws.persistence.tests.simple.TestEntity@60606060
    at org.apache.openjpa.kernel.BrokerImpl.assertPersistenceCapable(BrokerImpl.java:4234)
    at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2344)
    at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2204)
    at org.apache.openjpa.kernel.DelegatingBroker.persist(DelegatingBroker.java:991)
    at org.apache.openjpa.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:525)
    at com.ibm.ws.persistence.tests.simple.TestInsertAndFind.test001(TestInsertAndFind.java:30)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:615)
    at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
    at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
    at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
    at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71)
    at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
    at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

Thanks,
Kevin


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        




Mime
View raw message