You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Kevin Sutter (JIRA)" <ji...@apache.org> on 2007/01/09 17:55:28 UTC
[jira] Closed: (OPENJPA-96) Runtime Enhancement only processes
first persistence unit defined in persistence.xml
[ https://issues.apache.org/jira/browse/OPENJPA-96?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kevin Sutter closed OPENJPA-96.
-------------------------------
> 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