+++ 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.
backported to 6.2.x branch drools https://github.com/droolsjbpm/drools/commit/23edb880a9471f4abd65f9a6d07bcd7726b8dbbc jbpm https://github.com/droolsjbpm/jbpm/commit/25faad548264b69075332ffddb7ee60631b7693e
Verified in 6.1.3.