[JBoss JIRA] (DROOLS-538) Unable to resolve class error , drools 5.5 in concurrent execution. JSR94Support and Spring
by Maruthi Shanmugam (JIRA)
[ https://issues.jboss.org/browse/DROOLS-538?page=com.atlassian.jira.plugin... ]
Maruthi Shanmugam commented on DROOLS-538:
------------------------------------------
ClassName : ClassFieldAccessorCache
This is the method which throws Exception during concurrency. Highlighted Line number throws the exception
public Class getClass(String className) {
try {
return this.classLoader.loadClass( className ); // Exception happens here. And This happens only during multithreading or concurrent calls.
} catch ( ClassNotFoundException e ) {
throw new RuntimeDroolsException( "Unable to resolve class '" + className + "'" );
}
}
> 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.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
12 years
[JBoss JIRA] (DROOLS-538) Unable to resolve class error , drools 5.5 in concurrent execution. JSR94Support and Spring
by Maruthi Shanmugam (JIRA)
[ https://issues.jboss.org/browse/DROOLS-538?page=com.atlassian.jira.plugin... ]
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.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
12 years
[JBoss JIRA] (DROOLS-538) Unable to resolve class error , drools 5.5 in concurrent execution. JSR94Support and Spring
by Maruthi Shanmugam (JIRA)
[ https://issues.jboss.org/browse/DROOLS-538?page=com.atlassian.jira.plugin... ]
Maruthi Shanmugam commented on DROOLS-538:
------------------------------------------
The same error is reproduced in the 5.6.0.Final as well.
The error occurs only during the following scenarios.
We load the Rules using RuleSource , and RegisterRuleSets using RuleAdministrator.
And we periodically refresh the Rulesource and register the rulesets , the drls again.
After the refresh of rulesource , the first concurrent Request throws this error.
> 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.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
12 years
[JBoss JIRA] (DROOLS-538) Unable to resolve class error , drools 5.5 in concurrent execution. JSR94Support and Spring
by Maruthi Shanmugam (JIRA)
[ https://issues.jboss.org/browse/DROOLS-538?page=com.atlassian.jira.plugin... ]
Maruthi Shanmugam commented on DROOLS-538:
------------------------------------------
Hi Davide,
I am in the process of updating the same to 5.6.0.Final.
Will keep you posted.
> 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.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
12 years
[JBoss JIRA] (DROOLS-538) Unable to resolve class error , drools 5.5 in concurrent execution. JSR94Support and Spring
by Davide Sottara (JIRA)
[ https://issues.jboss.org/browse/DROOLS-538?page=com.atlassian.jira.plugin... ]
Davide Sottara commented on DROOLS-538:
---------------------------------------
If upgrading does not solve your issue, we would appreciate a minimal, self-contained reproducer.
As a side note, 5.5 is a community version from several years ago. It is unlikely that it will be re-released even if a fix is needed.
If you can not upgrade, you may have to rebuild the sources yourself.
Thanks!
Davide
> 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.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
12 years
[JBoss JIRA] (DROOLS-538) Unable to resolve class error , drools 5.5 in concurrent execution. JSR94Support and Spring
by Davide Sottara (JIRA)
[ https://issues.jboss.org/browse/DROOLS-538?page=com.atlassian.jira.plugin... ]
Davide Sottara commented on DROOLS-538:
---------------------------------------
Could you please try a later version such as 5.6 or 6.1?
5.5 did not support multi-threading properly, but many related
issues were fixed in later versions.
> 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.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
12 years