]
Maruthi Shanmugam commented on DROOLS-538:
------------------------------------------
With the updated version I am getting this error.
Caused by: java.lang.NullPointerException
at
org.drools.reteoo.RuleTerminalNode$SortDeclarations.compare(RuleTerminalNode.java:427)
at
org.drools.reteoo.RuleTerminalNode$SortDeclarations.compare(RuleTerminalNode.java:420)
at java.util.Arrays.mergeSort(Arrays.java:2874)
at java.util.Arrays.sort(Arrays.java:3251)
at java.util.Arrays.sort(Arrays.java:3269)
at org.drools.reteoo.RuleTerminalNode.getDeclarations(RuleTerminalNode.java:374)
at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:84)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1282)
... 25 more
Unable to resolve class error , drools 5.5 in concurrent execution.
JSR94Support and Spring
--------------------------------------------------------------------------------------------
Key: DROOLS-538
URL:
https://issues.jboss.org/browse/DROOLS-538
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 5.5.0.Final
Environment: Linux Red Hat , Enterprise, JDK 1.6, Drools 5.5.Final
Reporter: Maruthi Shanmugam
Assignee: Mark Proctor
Priority: Blocker
We use Drools 5.5 and drool implementation is done through Spring JSR94Support API>
The Rule engine is called in concurrent mode,
i.e , JSR94Support.executeStateless(name,list) is executed through multiple threads.
And when the rules are executed we randomly get the following exception
org.drools.RuntimeDroolsException: Unable to resolve class 'someclass(this is
sample)here actual class is printed>'
at
org.drools.base.ClassFieldAccessorCache.getClass(ClassFieldAccessorCache.java:126)
at
org.drools.base.ClassFieldAccessorCache.getClassObjectType(ClassFieldAccessorCache.java:48)
at
org.drools.reteoo.ClassObjectTypeConf.<init>(ClassObjectTypeConf.java:83)
at
org.drools.common.ObjectTypeConfigurationRegistry.getObjectTypeConf(ObjectTypeConfigurationRegistry.java:71)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:159)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)
at
org.drools.reteoo.ReteooStatelessSession.executeWithResults(ReteooStatelessSession.java:273)
The rules are registered every 15 minutes through
RuleAdministrator.registerRuleExecutionset ,
so whenever we refresh the rules and the subsequent thread even after the registration is
completed, fails with the above message. This happens only when the rules are invoked
concurrently.