You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Matthew Broadhead <ma...@nbmlaw.co.uk.INVALID> on 2019/05/14 13:47:47 UTC

log info about current transaction

i have a strange case at the moment which i have not bumped into 
before.  EventController.deleteEvent looks like
public void deleteEvent(File file, CEvent event) {
     if (event.getSubType().equals("note")) {
             Note note = noteController.selectNote(file, 
event.getEventId());
             file.getNotes().remove(note);
         } else if (event.getSubType().equals("event")) {
             Event event_ = selectEvent(file, event.getEventId());
             file.getEvents().remove(event_);
         } else if (event.getSubType().equals("document")) {
             documentController.deleteDocument(event.getEventId());
         } else if (event.getSubType().equals("upload")) {
             documentController.deleteUploadView(event.getEventId());
         }
...

DocumentController.deleteDocument looks like
public void deleteDocument(int documentId) {
         Document document = documentDb.selectDocument(documentId);
         if (document != null) {
             document.setArchived(new Date());
             documentDb.flush();
         }
     }

removing events and notes works fine but deleting a document results in 
"org.apache.openjpa.persistence.TransactionRequiredException: Can only 
perform operation while a transaction is active."

everything uses the same entitymanager.  is there any way to output the 
current transaction details to see at what point the transaction is lost?

<openjpa-2.4.3-r422266:1833086 nonfatal user error> 
org.apache.openjpa.persistence.TransactionRequiredException: Can only 
perform operation while a transaction is active.
     at 
org.apache.openjpa.kernel.BrokerImpl.assertActiveTransaction(BrokerImpl.java:4729)
     at 
org.apache.openjpa.kernel.DelegatingBroker.assertActiveTransaction(DelegatingBroker.java:1385)
     at 
org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:663)
     at 
org.apache.webbeans.custom.persistence.EntityManager$$OwbNormalScopeProxy0.flush(javax/persistence/EntityManager.java)
     at 
uk.me.kissy.database.db.document.DocumentDb.flush(DocumentDb.java:120)
     at 
uk.me.kissy.database.db.document.DocumentDb$$OwbNormalScopeProxy0.flush(uk/me/kissy/database/db/document/DocumentDb.java)
     at 
uk.me.kissy.database.controllers.document.DocumentController.deleteDocument(DocumentController.java:769)
     at 
uk.me.kissy.database.controllers.document.DocumentController$$OwbNormalScopeProxy0.deleteDocument(uk/me/kissy/database/controllers/document/DocumentController.java)
     at 
uk.me.kissy.database.controllers.file.EventController.deleteEvent(EventController.java:94)
     at 
uk.me.kissy.database.controllers.file.EventController$$OwbNormalScopeProxy0.deleteEvent(uk/me/kissy/database/controllers/file/EventController.java)
     at uk.me.kissy.file.beans.EventsBean.deleteEvent(EventsBean.java:228)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)