Would it be possible to improve the content of the execption message:
java.lang.IllegalArgumentException: cross-group transaction need to be
explicitly specified, see TransactionOptions.Builder.withXGfound both
Element Element {
type: "EntntiA"
id: 1
}
and Element {
type: "EntityB"
id: 3
}
at
com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:33)
at
com.google.appengine.api.datastore.DatastoreApiHelper$1.convertException(DatastoreApiHelper.java:70)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:94)
at
com.google.appengine.api.datastore.FutureHelper$CumulativeAggregateFuture.get(FutureHelper.java:142)
at
com.google.appengine.api.datastore.FutureHelper$TxnAwareFuture.get(FutureHelper.java:218)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:86)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:86)
at
com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:71)
at
com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:58)
at
com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:50)
at
com.google.appengine.datanucleus.WrappedDatastoreService.get(WrappedDatastoreService.java:70)
at
com.google.appengine.datanucleus.EntityUtils.getEntityFromDatastore(EntityUtils.java:665)
It would be convenient if,
(A) more than just the ROOT parent persist groups involved in the execption
the underlying child entities belonging to each of these persistent groups
that were dirty were listed
(B) the respective user defined fields on these entities that were updated
that brough along the need to update the two distinct persistence groups
Addionally, It would be pretty useful if you reased the SOURCE code for the
API into maven, because it is otherwise pretty hard to debug this type of
errors.
I am presently having some difficulties figuring out why GAE would imagine
that it needs to update two persistence groups at the same time when the
entity being saved is only UNIDIRECTONALLY and UNONWED linked to the other
persistnce group, that according to JDO State manager is NOT DIRTY.
New EntntityAChild.unownedUnidictorionalField->
Element_EntityB.stateManagerSaysIsNotDirty
and GAE wants to update EntntityA and EntityB persistence groups in a
single transaction?
- makes no sense to me and there is no way I can debug this any further.
It is 100% clear to me that JDO is only trying to fetch from the google
datastroe, in the follwing call, the EntityA that is a parent of the
new EntntityAChild:
at
com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:50)
I will most liekly have to drop the Unowned relationship and JUST dump a
KEY property in EntityA child to dodge this bullet.
--
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-appengine/-/_uqboYsuegIJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.