-
Bug
-
Resolution: Done
-
Critical
-
6.1.0
-
None
+++ This bug was initially created as a clone of Bug #1241358 +++
Description of problem:
RuntimeManager adds OptimisticLockRetryInterceptor and TransactionLockInterceptor on top of SingleSessionCommandService$TransactionInterceptor on KieSession initialization.
But once a transaction is rolled back in later process execution, SingleSessionCommandService.commandService is overwritten by new TransactionInterceptor(kContext) in initExistingKnowledgeSession() hence the Interceptor stack is lost.
How reproducible:
Once a process execution transaction is rolled back, always reproducible. It could be serious in case of Singleton strategy because an application keeps using the ksession alive.
Steps to Reproduce:
1. Going to send a pull request.
— Additional comment from Toshiya Kobayashi on 2015-07-09 03:02:48 EDT —
PR test case:
https://github.com/droolsjbpm/jbpm/pull/274
— Additional comment from Toshiya Kobayashi on 2015-07-09 03:09:01 EDT —
PR fix proposal:
https://github.com/droolsjbpm/drools/pull/458
Please review.
- duplicates
-
RHBPMS-1206 SingleSessionCommandService Interceptor stack is lost when rollback
-
- Verified
-
- is blocked by
-
RHBPMS-1206 SingleSessionCommandService Interceptor stack is lost when rollback
-
- Verified
-