Hello again Pinaki et al,
>> is there any interest from commiters if I can provide a test case
>> which demonstrates and reproduces this?
> Yes. Please post a reproducer test case.
We ran into this again recently, and after some debugging and reducing a
more complex model to a simple version that reproduces this, I've
finally understood what causes this
org.apache.openjpa.persistence.PersistenceException: ...
org.apache.openjpa.kernel.StateManagerImpl.setExtraFieldData(StateManage
rImpl.java:720), under v1.2.0.
It's turns out to be actually pretty simple, to reproduce at least:
Create a simple domain model with an class A { @Id String code;
@PersistentCollection(elementEmbedded = true) Set<B> bs; } and class B {
@ManyToOne C cReq; } and class C { @Id String code; }. Create an A/B/C
and query the A by it's ID/PK code. The a.getBs() --> BOUM! I could
send the real .java for this simple test model by direct email, if of
any use.
Question: Is it simple to fix also? ;-) If that's "not supported", then
please say so in Doc and clear Error Message... :-) but I suspect this
may not be intended. Why? Because that
https://issues.apache.org/jira/browse/OPENJPA-593 is also about
@PersistentCollection(elementEmbedded = true), but agreed that's not the
same as this, however note what it's error message says: "Embedded
element/key/value types are limited to simple fields and direct
relations to other persistent types." ... and a "direct relations to
another persistent type" is exactly what that @ManyToOne C cReq on B is,
isn't it?
Should I file a JIRA?
Regards,
Michael
___
<openjpa-1.2.0-r422266:683325 fatal general error>
org.apache.openjpa.persistence.PersistenceException:
com.odcgroup.otf.mdf.jpa.gen.test.UseCase11ClassAEntity.bs.com.odcgroup.
otf.mdf.jpa.gen.test.UseCase11ClassBEntity.cReq
at
org.apache.openjpa.kernel.StateManagerImpl.setExtraFieldData(StateManage
rImpl.java:720)
at
org.apache.openjpa.kernel.StateManagerImpl.setIntermediate(StateManagerI
mpl.java:697)
at
org.apache.openjpa.jdbc.meta.strats.RelationFieldStrategy.loadEmbedded(R
elationFieldStrategy.java:968)
at
org.apache.openjpa.jdbc.meta.strats.EmbedValueHandler.toObjectValue(Embe
dValueHandler.java:165)
at
org.apache.openjpa.jdbc.meta.strats.ElementEmbedValueHandler.toObjectVal
ue(ElementEmbedValueHandler.java:132)
at
org.apache.openjpa.jdbc.meta.strats.HandlerStrategies.loadObject(Handler
Strategies.java:202)
at
org.apache.openjpa.jdbc.meta.strats.HandlerCollectionTableFieldStrategy.
loadElement(HandlerCollectionTableFieldStrategy.java:78)
at
org.apache.openjpa.jdbc.meta.strats.StoreCollectionFieldStrategy.load(St
oreCollectionFieldStrategy.java:606)
at
org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:819)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.ja
va:626)
at
org.apache.openjpa.kernel.DelegatingStoreManager.load(DelegatingStoreMan
ager.java:116)
at
org.apache.openjpa.kernel.ROPStoreManager.load(ROPStoreManager.java:78)
at
org.apache.openjpa.kernel.StateManagerImpl.loadFields(StateManagerImpl.j
ava:2920)
at
org.apache.openjpa.kernel.StateManagerImpl.loadField(StateManagerImpl.ja
va:2998)
at
org.apache.openjpa.kernel.StateManagerImpl.beforeAccessField(StateManage
rImpl.java:1492)
at
org.apache.openjpa.kernel.StateManagerImpl.accessingField(StateManagerIm
pl.java:1477)
at
com.odcgroup.otf.mdf.jpa.gen.test.UseCase11ClassAEntity.pcGetbs(UseCase1
1ClassAEntity.java)
at
com.odcgroup.otf.mdf.jpa.gen.test.UseCase11ClassAEntity.getBs(UseCase11C
lassAEntity.java:78)
at
com.odcgroup.mcqdb.poc.UseCase11Test.queryData(UseCase11Test.java:84)
at
com.odcgroup.mcqdb.poc.UseCase11Test.testUseCase11_JustQuery(UseCase11Te
st.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
at
org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:
98)
at
org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(Met
hodRoadie.java:87)
at
org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
at
org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
at
org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4Clas
sRunner.java:88)
at
org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunne
r.java:51)
at
org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.jav
a:44)
at
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:2
7)
at
org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
at
org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:
42)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4Tes
tReference.java:38)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.ja
va:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe
stRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe
stRunner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRun
ner.java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRu
nner.java:196)
-----Original Message-----
From: Pinaki Poddar [mailto:[EMAIL PROTECTED]
Sent: jeudi, 31. juillet 2008 03:12
To: [email protected]
Subject: Re: at
org.apache.openjpa.kernel.StateManagerImpl.setExtraFieldData(StateManage
rImpl.java:718)
Hi,
> is there any interest from commiters if I can provide a test case
> which demonstrates and reproduces this?
Yes. Please post a reproducer test case.
--
View this message in context:
http://n2.nabble.com/at-org.apache.openjpa.kernel.StateManagerImpl.setEx
traFieldData%28StateManagerImpl.java%3A718%29-tp534870p661496.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.
____________________________________________________________
This email and any files transmitted with it are CONFIDENTIAL and intended
solely for the use of the individual or entity to which they are addressed.
Any unauthorized copying, disclosure, or distribution of the material within
this email is strictly forbidden.
Any views or opinions presented within this e-mail are solely those of the
author and do not necessarily represent those of Odyssey Financial
Technologies SA unless otherwise specifically stated.
An electronic message is not binding on its sender. Any message referring to
a binding engagement must be confirmed in writing and duly signed.
If you have received this email in error, please notify the sender immediately
and delete the original.