I can not reproduce the problem in simple code. By the way the full-
size code also works, when uploaded. Anyway it consistently fails on
the development server - in one and the same way. If the above log
does not say enough, I will have to investigate more.

On Aug 27, 6:49 am, "Jason (Google)" <[email protected]> wrote:
> If I'm reading your logs correctly, you should be able to add both entities
> since you're supposedly not operating inside of a transaction. Can you post
> your full test code?
>
> - Jason
>
> On Tue, Aug 25, 2009 at 3:50 AM, eddyd <[email protected]> wrote:
>
> > This happens on the development server, using JPA. In the request
> > there are:
>
> > 1. transaction.begin;  run query;  transaction.commit;  log
> > (transaction.isActive)
> > 2. (w/o transaction)  delete entry;  log(transaction.isActive)
> > 3. (w/o transaction)  add entry;  log(transaction.isActive)
> > 4. (w/o transaction)  add entry;  log(transaction.isActive)
> > 5. log(transaction.isActive); close connection  (i.e. close
> > entityManager)
>
> > And "close connection" fails, because it tries to commit a
> > transaction, which fails because there are two entities in different
> > entity groups - see the messages bellow. And at any point the logs
> > show "transaction.isActive::false".
> > My question - why at "close connection" does it try to commit, if
> > there is no active transaction??
>
> > ==============
> > Aug 25, 2009 9:56:50 AM
> > com.mound.flexiview.fvstory.StoryEntryRepositoryJPA list
> > Entries
> > INFO: story::listEntries::transaction.isActive::false
> > Aug 25, 2009 9:56:50 AM
> > com.mound.flexiview.fvstory.StoryEntryRepositoryJPA dele
> > teEntries
> > INFO: story::deleteEntries::transaction.isActive::false
> > Aug 25, 2009 9:56:50 AM
> > com.mound.flexiview.fvstory.StoryEntryRepositoryJPA addE
> > ntry
> > INFO: story::addEntry::transaction.isActive::false
> > Aug 25, 2009 9:56:50 AM
> > com.mound.flexiview.fvstory.StoryEntryRepositoryJPA addE
> > ntry
> > INFO: story::addEntry::transaction.isActive::false
> > Aug 25, 2009 9:56:50 AM com.mound.flexiview.db.DBManagerJPA
> > closeConnection
> > INFO: closeConnection::transaction.isActive::false
> > Aug 25, 2009 9:56:50 AM com.mound.flexiview.db.DBManagerJPA
> > closeConnection
> > WARNING: closeConnection failed (close)::
> > javax.persistence.PersistenceException: Illegal argument
> >        at
> > org.datanucleus.jpa.NucleusJPAHelper.getJPAExceptionForJDOException(N
> > ucleusJPAHelper.java:214)
> >        at org.datanucleus.jpa.EntityManagerImpl.close
> > (EntityManagerImpl.java:15
> > 7)
> >        at
> > org.datanucleus.store.appengine.jpa.DatastoreEntityManager.close(Data
> > storeEntityManager.java:54)
> >        at com.mound.flexiview.db.DBManagerJPA.closeConnection(Unknown
> > Source)
> >        at com.mound.flexiview.db.DBPhaseListener.afterPhase(Unknown
> > Source)
> >        at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:
> > 179)
> >        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:103)
>
> > ...........
>
> > Caused by: java.lang.IllegalArgumentException: can't operate on
> > multiple entity
> > groups in a single transaction. found both
> > com.google.appengine.api.datastore.de
> > v.localdatastoreservice$profile$entitygr...@1bd427 and
> > com.google.appengine.api.
> > datastore.dev.localdatastoreservice$profile$entitygr...@1054f93
> >        at
> > com.google.appengine.api.datastore.DatastoreApiHelper.translateError(
> > DatastoreApiHelper.java:29)
> >        at
> > com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(Da
> > tastoreApiHelper.java:56)
> >        at com.google.appengine.api.datastore.DatastoreServiceImpl
> > $2.run(Datasto
> > reServiceImpl.java:169)
> >        at
> > com.google.appengine.api.datastore.TransactionRunner.runInTransaction
> > (TransactionRunner.java:30)
> >        at com.google.appengine.api.datastore.DatastoreServiceImpl.put
> > (Datastore
> > ServiceImpl.java:157)
> >        at com.google.appengine.api.datastore.DatastoreServiceImpl.put
> > (Datastore
> > ServiceImpl.java:137)
> >        at com.google.appengine.api.datastore.DatastoreServiceImpl.put
> > (Datastore
> > ServiceImpl.java:133)
> >        at
> > org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreServ
> > ice.put(RuntimeExceptionWrappingDatastoreService.java:104)
> >        at
> > org.datanucleus.store.appengine.DatastorePersistenceHandler.put(Datas
> > torePersistenceHandler.java:125)
> >        at
> > org.datanucleus.store.appengine.DatastorePersistenceHandler.put(Datas
> > torePersistenceHandler.java:94)
> >        at
> > org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObj
> > ect(DatastorePersistenceHandler.java:195)
> >        at
> > org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent(JDOS
> > tateManagerImpl.java:3185)
> >        at org.datanucleus.state.JDOStateManagerImpl.flush
> > (JDOStateManagerImpl.j
> > ava:4513)
> >        at org.datanucleus.ObjectManagerImpl.flushInternal
> > (ObjectManagerImpl.jav
> > a:2814)
> >        at org.datanucleus.ObjectManagerImpl.flush
> > (ObjectManagerImpl.java:2754)
> >        at org.datanucleus.ObjectManagerImpl.preCommit
> > (ObjectManagerImpl.java:28
> > 93)
> >        at org.datanucleus.TransactionImpl.internalPreCommit
> > (TransactionImpl.jav
> > a:369)
> >        at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:
> > 256)
> >        at org.datanucleus.ObjectManagerImpl.close
> > (ObjectManagerImpl.java:801)
> >        at org.datanucleus.jdo.JDOPersistenceManager.close
> > (JDOPersistenceManager
> > .java:271)
> >        at org.datanucleus.jpa.EntityManagerImpl.close
> > (EntityManagerImpl.java:15
> > 3)
>
> > ............
--~--~---------~--~----~------------~-------~--~----~
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