-
Bug
-
Resolution: Won't Do
-
Critical
-
jBPM 3.2.13
-
None
The fix for JBPM-2983 broke jBPM ability to handle externally managed transactions. In fact the changeset r6862:
- removed the DbPersistenceService.isTransactionPresent() method, which tested if no transaction was ever created (and this is the case for externally managed transactions)
- added a lot of checks for DbPersistenceService.isTransactionActive() (without any accompanying check for isTransactionPresent()), which can be true only when jBPM itself manages transactions, unless you use a JtaDbPersistenceService
The problem is that DbPersistenceService.isTransactionActive() only means "is there a currently active transaction I started?", rather than "does exist any currently active transaction for the current context".
I think that the fix for JBPM-2983 is not completely correct: in fact, if transactions are managed externally and there is no open transaction, jBPM should really complain by throwing an exception, because it's my fault.
- is related to
-
JBPM-2983 Check if transaction is active before performing save operations
- Resolved