Bug 724779 (BRMS-617)

Summary: Drools-persistence needs jbpm-persistence
Product: [JBoss] JBoss Enterprise BRMS Platform 5 Reporter: Tomas Schlosser <tschloss>
Component: BRE (Expert, Fusion)Assignee: John Graham <jgraham>
Status: VERIFIED --- QA Contact: Lukáš Petrovický <lpetrovi>
Severity: urgent Docs Contact:
Priority: high    
Version: BRMS 5.2.0-Dev1CC: jgraham, jlocker, lpetrovi, mproctor, rzhang
Target Milestone: ---   
Target Release: BRMS 5.2.0.GA   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/BRMS-617
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 724803    
Bug Blocks:    

Description Tomas Schlosser 2011-06-30 07:11:31 UTC
securitylevel_name: Public

When creating new KnowledgeSession using JPAKnowledgeService I get ClassNotFoundException:
Unable to load class: org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory

This affect both DEV1 and DEV2 builds and works fine in Drools-5.2.0.Final. See JBRULES-3053

Full stacktrace:
java.lang.reflect.InvocationTargetException
org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:130)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:54)
at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122)
at org.jboss.qa.drools.features.PersistenceTest.createNewSession(PersistenceTest.java:94)
27 lines not shown

Caused by null
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:116)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:54)
at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122)
at org.jboss.qa.drools.features.PersistenceTest.createNewSession(PersistenceTest.java:94)
27 lines not shown

Caused by java.lang.ClassNotFoundException: Unable to load class: org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory
org.jbpm.process.instance.ProcessRuntimeImpl.loadClass(ProcessRuntimeImpl.java:101)
at org.jbpm.process.instance.ProcessRuntimeImpl.initProcessInstanceManager(ProcessRuntimeImpl.java:75)
at org.jbpm.process.instance.ProcessRuntimeImpl.<init>(ProcessRuntimeImpl.java:64)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:10)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:6)
at org.drools.runtime.process.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:12)
at org.drools.common.AbstractWorkingMemory.createProcessRuntime(AbstractWorkingMemory.java:359)
at org.drools.common.AbstractWorkingMemory.setKnowledgeRuntime(AbstractWorkingMemory.java:1260)
at org.drools.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:116)
at org.drools.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:109)
at org.drools.reteoo.ReteooRuleBase.newStatefulSession(ReteooRuleBase.java:372)
at org.drools.reteoo.ReteooRuleBase.newStatefulSession(ReteooRuleBase.java:352)
at org.drools.impl.KnowledgeBaseImpl.newStatefulKnowledgeSession(KnowledgeBaseImpl.java:175)
at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:101)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:116)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:54)
at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122)
at org.jboss.qa.drools.features.PersistenceTest.createNewSession(PersistenceTest.java:94)
27 lines not shown

Caused by Unable to load class: org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory
org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:92)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.jbpm.process.instance.ProcessRuntimeImpl.loadClass(ProcessRuntimeImpl.java:99)
at org.jbpm.process.instance.ProcessRuntimeImpl.initProcessInstanceManager(ProcessRuntimeImpl.java:75)
at org.jbpm.process.instance.ProcessRuntimeImpl.<init>(ProcessRuntimeImpl.java:64)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:10)
at org.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl.newProcessRuntime(ProcessRuntimeFactoryServiceImpl.java:6)
at org.drools.runtime.process.ProcessRuntimeFactory.newProcessRuntime(ProcessRuntimeFactory.java:12)
at org.drools.common.AbstractWorkingMemory.createProcessRuntime(AbstractWorkingMemory.java:359)
at org.drools.common.AbstractWorkingMemory.setKnowledgeRuntime(AbstractWorkingMemory.java:1260)
at org.drools.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:116)
at org.drools.impl.StatefulKnowledgeSessionImpl.<init>(StatefulKnowledgeSessionImpl.java:109)
at org.drools.reteoo.ReteooRuleBase.newStatefulSession(ReteooRuleBase.java:372)
at org.drools.reteoo.ReteooRuleBase.newStatefulSession(ReteooRuleBase.java:352)
at org.drools.impl.KnowledgeBaseImpl.newStatefulKnowledgeSession(KnowledgeBaseImpl.java:175)
at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:101)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:116)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:54)
at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122)
at org.jboss.qa.drools.features.PersistenceTest.createNewSession(PersistenceTest.java:94)
27 lines not shown

Comment 1 Tomas Schlosser 2011-06-30 07:12:04 UTC
Link: Added: This issue depends JBRULES-3053


Comment 2 Ryan Zhang 2011-07-15 05:39:25 UTC
I didn't see jbpm-persistence-jpa.jar existed in Drools-5.2.0.Final either.

Comment 3 Tomas Schlosser 2011-07-15 07:01:33 UTC
No, it wasn't there, but the dependency wasn't there either. I just tried removing all jbpm-*.jar from BRMS-5.2.0-DEV3 and the exception is gone. Problem probably is that Drools-5.2.0.Final doesn't contain any jbpm libraries, but BRMS contains some of them so it expects to have jbpm-persistence as well.

Comment 4 Ryan Zhang 2011-07-15 07:27:25 UTC
The 4 jbpm-*.jar (not including jbpm-persistence-jpa.jar) in BRMS 5.2.0-Dev3 are included by drools-camel and drools-camel-server dependencies.

Not sure we could exclude them in the release.  

Comment 5 Tomas Schlosser 2011-07-15 08:40:22 UTC
Could we not exclude drools-camel*? According to ERD Drools Execution server support is deffered (see ERD: BRMS-PR-05).

Comment 6 Ryan Zhang 2011-07-15 08:57:11 UTC
Yes, you are right, that feature is deferred.
I will exclude drools-camel* in next brms-p ER1 build. 

Comment 7 Ryan Zhang 2011-07-19 11:26:58 UTC
jbpm-bpmn2,jbpm-flow-builder, jbpm-flow will still be included as guvnor-webapp's dependencies and drools-pipeline's dependencies.

Compare to BRMS-5.2.0-dev3, only jbpm-workitems are excluded in drools-engine.

This issue might still need further investigation.

Comment 8 Tomas Schlosser 2011-07-20 08:22:13 UTC
Link: Added: This issue is incorporated by BRMS-644


Comment 9 Ryan Zhang 2011-08-05 03:06:02 UTC
This issue conflicts with Bug 727562 here. It seems that we can't get away with jbpm-flow and jbpm-flow-builder in BRE.

Comment 10 Mark Proctor 2011-08-16 16:13:17 UTC
jbpm-persistence will need to be added. Prakash has already agreed to this.

If there are no jBPM jars, Drools will persistence without jbpm-persistence. The moment there is jbpm core/builder on the path it'll need jbpm persistence.

Comment 11 lcarlon 2011-08-19 01:19:51 UTC
Marked as release note not required as this appears to be an issue between dev builds.

Comment 12 Prakash Aradhya 2011-08-24 14:41:06 UTC
Ryan,

please add jbpm-persistence jar to the build.  That is the only viable way this issue can be resolved.  And what will be supported in this release is only drools persistence..

Please add this to ER3.

Comment 13 Ryan Zhang 2011-08-25 01:35:09 UTC
Yes, this has been added in ER3. I am preparing to pass the ER3 to QE.

Comment 14 Tomas Schlosser 2011-08-29 05:48:50 UTC
In ER3 jbpm-persistence was added and the problem is gone.