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.


Reply via email to