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)