Well the message just before "ATTENTION: Meta-data warning for com...." (see http://tinypaste.com/c2590) is that: INFO: Performing appengine-specific metadata validation for com.testgae.xp.domain.B 9 déc. 2009 20:48:57 org.datanucleus.store.appengine.MetaDataValidator warn
So don't you think it looks more like a Datanucleus defect? In addition metadata are provided by JDO/Datanucleus and not datastore if I am not wrong. Maybe Datanucleus could try to update twice the entity because of something wrong in is check algorithm. I created a simpler test case with everything. You can get it here if u interested http://tinypaste.com/37d2f I'll try to submit it later when I'll have more time ;) Thx anyway for your advise On 10 déc, 09:05, datanucleus <[email protected]> wrote: > > ATTENTION: Meta-data warning for com.testgae.xp.domain.B._cUpdates: > > The datastore does not support joins and therefore cannot honor > > requests to place child objects in the default fetch group. The field > > will be fetched lazily on first access. ... > > Not sure I like this one; if a user defines that a field should be > fetched eagerly, it shouldn't be put off to when the implementation > (GAE/J plugin) feels like it. It may have unknown consequences at > commit/detach time. One for the GAE/J guys to address. What I'd expect > to happen if the datastore can't do it in one call is for the GAE/J > plugin to retrieve all that was required in as many datastore calls as > necessary, and by all means put a log message in saying that this > couldn't be done in a single call ... but they must respect the users > fetch group settings. > > > > > Caused by: java.lang.IllegalArgumentException: can't update the same > >entitytwicein a transaction or operation > > at > > com.google.appengine.api.datastore.DatastoreApiHelper.translateError > > (DatastoreApiHelper.java:33) > > at > > com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall > > (DatastoreApiHelper.java:60) > > at com.google.appengine.api.datastore.DatastoreServiceImpl$2.run > > (DatastoreServiceImpl.java:173) > > at > > com.google.appengine.api.datastore.TransactionRunner.runInTransaction > > (TransactionRunner.java:30) > > at com.google.appengine.api.datastore.DatastoreServiceImpl.put > > (DatastoreServiceImpl.java:161) > > at com.google.appengine.api.datastore.DatastoreServiceImpl.put > > (DatastoreServiceImpl.java:141) > > at com.google.appengine.api.datastore.DatastoreServiceImpl.put > > (DatastoreServiceImpl.java:137) > > at > > org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.put > > (RuntimeExceptionWrappingDatastoreService.java:105) > > at org.datanucleus.store.appengine.DatastorePersistenceHandler.put > > (DatastorePersistenceHandler.java:172) > > at org.datanucleus.store.appengine.DatastorePersistenceHandler.put > > (DatastorePersistenceHandler.java:124) > > at org.datanucleus.store.appengine.DatastorePersistenceHandler.put > > (DatastorePersistenceHandler.java:119) > > at > > org.datanucleus.store.appengine.DatastorePersistenceHandler.updateObject > > (DatastorePersistenceHandler.java:492) > > at org.datanucleus.state.JDOStateManagerImpl.flush > > (JDOStateManagerImpl.java:4576) > > Ok, so the GAE/J plugin flushes any changes and the BigTable datastore > has some limit on not updating the same object more than once in the > same transaction. Why not split it down into a simple testcase for > Google, showing that there is only one change to eachentity, and then > they can identify why they are trying to update ittwice. -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. 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-java?hl=en.
