| Summary: | Error creating a KieBaseConfiguration in a OSGi environment with a custom ClassLoader | ||
|---|---|---|---|
| Product: | [Retired] JBoss BRMS Platform 6 | Reporter: | Mario Fusco <mfusco> |
| Component: | BRE | Assignee: | Mario Fusco <mfusco> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Marek Winkler <mwinkler> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 6.0.0 | ||
| Target Milestone: | ER5 | ||
| Target Release: | 6.0.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2014-08-06 20:18:19 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
The verification of this BZ is blocked by BZ 1042867. Found a workaround for BZ 1042867 (created a simple OSGi bundle with custom BundleActivator which creates a KieBase with custom classloader). Verified on BRMS 6.0.0 ER5. |
It is possible to create a KieBaseConfiguartion with an user provided ClassLoader from the KieServices. This is especially useful in OSGi environment, however when you do so it also tries to create a default configuration without using the provided classloader causing an Exception like the following: java.lang.ExceptionInInitializerError at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieBaseConfiguration(KieServicesImpl.java:153) at de.hs_rm.cs.vs.drools.reasoner.base.AbstractReasoner.compileRules(AbstractReasoner.java:149) at de.hs_rm.cs.vs.owl.drools.reasoner.Reasoner.activate(Reasoner.java:87) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:236) at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37) at org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:613) at org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:496) at org.apache.felix.scr.impl.helper.ActivateMethod.invoke(ActivateMethod.java:149) at org.apache.felix.scr.impl.manager.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:239) at org.apache.felix.scr.impl.manager.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:119) at org.apache.felix.scr.impl.manager.AbstractComponentManager$Unsatisfied.activate(AbstractComponentManager.java:1518) at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:550) at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:261) at org.apache.felix.scr.impl.config.ImmediateComponentHolder.enableComponents(ImmediateComponentHolder.java:328) at org.apache.felix.scr.impl.BundleComponentActivator.initialize(BundleComponentActivator.java:158) at org.apache.felix.scr.impl.BundleComponentActivator.<init>(BundleComponentActivator.java:113) at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:261) at org.apache.felix.scr.impl.Activator.loadAllComponents(Activator.java:199) at org.apache.felix.scr.impl.Activator.start(Activator.java:108) at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645) at org.apache.felix.framework.Felix.activateBundle(Felix.java:2146) at org.apache.felix.framework.Felix.startBundle(Felix.java:2064) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955) at aQute.launcher.Launcher.update(Launcher.java:378) at aQute.launcher.Launcher.activate(Launcher.java:303) at aQute.launcher.Launcher.run(Launcher.java:193) at aQute.launcher.Launcher.main(Launcher.java:89) Caused by: java.lang.IllegalArgumentException: conflict Resolver 'org.drools.core.conflict.DepthConflictResolver' not found at org.drools.core.RuleBaseConfiguration.determineConflictResolver(RuleBaseConfiguration.java:866) at org.drools.core.RuleBaseConfiguration.init(RuleBaseConfiguration.java:457) at org.drools.core.RuleBaseConfiguration.init(RuleBaseConfiguration.java:413) at org.drools.core.RuleBaseConfiguration.<init>(RuleBaseConfiguration.java:264) at org.drools.core.RuleBaseConfiguration.<clinit>(RuleBaseConfiguration.java:174) ... 31 more