[jboss-jira] [JBoss JIRA] (DROOLS-404) NoClassDefFoundError happens when using "function"s in drl
Nandor Galambosi (JIRA)
issues at jboss.org
Fri Jan 17 07:23:32 EST 2014
[ https://issues.jboss.org/browse/DROOLS-404?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nandor Galambosi updated DROOLS-404:
------------------------------------
Description:
If I reuse a KieSession for multiple times, it seems to forget about the function defined in the DRL file.
DRL:
<code>
package org.drools.example.api.defaultkiesession.Hal1
import org.drools.example.api.defaultkiesession.Message
function boolean alwaysTrue() {
return true;
}
rule "rule 1" when
m : Message( )
then
retract(m);
end
rule "rule 2" when
Message( alwaysTrue(), text == "Hello, HAL. Do you read me, HAL?" )
then
insert( new Message("HAL", "Dave. I read you." ) );
end
<code>
Exception:
java.lang.NoClassDefFoundError: org/drools/example/api/defaultkiesession/Hal1/AlwaysTrue
at ConditionEvaluator19fe4e382c304060b0046f5cdc6a59fa.evaluate(Unknown Source)
at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:217)
at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:174)
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:134)
at org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:502)
at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:387)
at org.drools.core.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:288)
at org.drools.core.reteoo.EntryPointNode.assertObject(EntryPointNode.java:260)
at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:360)
at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:279)
at org.drools.core.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1148)
at org.drools.core.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1092)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:308)
at org.drools.example.api.defaultkiesession.DefaultKieSessionExample.failCase1(DefaultKieSessionExample.java:17)
at org.drools.example.api.defaultkiesession.DefaultKieSessionExample.main(DefaultKieSessionExample.java:29)
Caused by: java.lang.ClassNotFoundException: org.drools.example.api.defaultkiesession.Hal1.AlwaysTrue
at org.drools.core.common.ProjectClassLoader.tryDefineType(ProjectClassLoader.java:123)
at org.drools.core.common.ProjectClassLoader.loadType(ProjectClassLoader.java:114)
at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:84)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 15 more
was:
If I reuse a KieSession for multiple times, it seems to forget about the function defined in the DRL file.
DRL:
[code]
package org.drools.example.api.defaultkiesession.Hal1
import org.drools.example.api.defaultkiesession.Message
function boolean alwaysTrue() {
return true;
}
rule "rule 1" when
m : Message( )
then
retract(m);
end
rule "rule 2" when
Message( alwaysTrue(), text == "Hello, HAL. Do you read me, HAL?" )
then
insert( new Message("HAL", "Dave. I read you." ) );
end
[code]
Exception:
java.lang.NoClassDefFoundError: org/drools/example/api/defaultkiesession/Hal1/AlwaysTrue
at ConditionEvaluator19fe4e382c304060b0046f5cdc6a59fa.evaluate(Unknown Source)
at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:217)
at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:174)
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:134)
at org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:502)
at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:387)
at org.drools.core.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:288)
at org.drools.core.reteoo.EntryPointNode.assertObject(EntryPointNode.java:260)
at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:360)
at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:279)
at org.drools.core.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1148)
at org.drools.core.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1092)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:308)
at org.drools.example.api.defaultkiesession.DefaultKieSessionExample.failCase1(DefaultKieSessionExample.java:17)
at org.drools.example.api.defaultkiesession.DefaultKieSessionExample.main(DefaultKieSessionExample.java:29)
Caused by: java.lang.ClassNotFoundException: org.drools.example.api.defaultkiesession.Hal1.AlwaysTrue
at org.drools.core.common.ProjectClassLoader.tryDefineType(ProjectClassLoader.java:123)
at org.drools.core.common.ProjectClassLoader.loadType(ProjectClassLoader.java:114)
at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:84)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 15 more
> NoClassDefFoundError happens when using "function"s in drl
> ----------------------------------------------------------
>
> Key: DROOLS-404
> URL: https://issues.jboss.org/browse/DROOLS-404
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 6.0.0.Final, 6.0.1.Final
> Environment: The base environment is the same as DefaultKieSessionExample.
> See attached maven project for details.
> Reporter: Nandor Galambosi
> Assignee: Mark Proctor
>
> If I reuse a KieSession for multiple times, it seems to forget about the function defined in the DRL file.
> DRL:
> <code>
> package org.drools.example.api.defaultkiesession.Hal1
> import org.drools.example.api.defaultkiesession.Message
> function boolean alwaysTrue() {
> return true;
> }
> rule "rule 1" when
> m : Message( )
> then
> retract(m);
> end
> rule "rule 2" when
> Message( alwaysTrue(), text == "Hello, HAL. Do you read me, HAL?" )
> then
> insert( new Message("HAL", "Dave. I read you." ) );
> end
> <code>
> Exception:
> java.lang.NoClassDefFoundError: org/drools/example/api/defaultkiesession/Hal1/AlwaysTrue
> at ConditionEvaluator19fe4e382c304060b0046f5cdc6a59fa.evaluate(Unknown Source)
> at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:217)
> at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:174)
> at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:134)
> at org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:502)
> at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:387)
> at org.drools.core.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:288)
> at org.drools.core.reteoo.EntryPointNode.assertObject(EntryPointNode.java:260)
> at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:360)
> at org.drools.core.common.NamedEntryPoint.insert(NamedEntryPoint.java:279)
> at org.drools.core.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1148)
> at org.drools.core.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1092)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:308)
> at org.drools.example.api.defaultkiesession.DefaultKieSessionExample.failCase1(DefaultKieSessionExample.java:17)
> at org.drools.example.api.defaultkiesession.DefaultKieSessionExample.main(DefaultKieSessionExample.java:29)
> Caused by: java.lang.ClassNotFoundException: org.drools.example.api.defaultkiesession.Hal1.AlwaysTrue
> at org.drools.core.common.ProjectClassLoader.tryDefineType(ProjectClassLoader.java:123)
> at org.drools.core.common.ProjectClassLoader.loadType(ProjectClassLoader.java:114)
> at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:84)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> ... 15 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list