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.

Reply via email to