[rules-users] Exception during insert
Ryan Fitzgerald
ryan.fitzgerald at ericsson.com
Fri Mar 19 06:40:22 EDT 2010
**Apologies if this post starts a new thread**
Hi Thomas,
I get a series of com.sample.UtranCell strings printed expected.
So the array seems to be correctly comprised of UtranCell objects.
I have the following import statement in the drl file:
import com.sample.UtranCell;
Weird!
/Ryan.
From: rules-users-boun... at lists.jboss.org
[mailto:rules-users-boun... at lists.jboss.org] On Behalf Of Ryan Fitzgerald
Sent: 19 March 2010 09:41
To: rules-users at lists.jboss.org
Subject: [rules-users] Exception during insert
Hi,
I get the following exception when trying to insert an object from within a
rule consequence:
[Error: object is not an instance of declaring class]
The rule is as follows:
rule "Utran Cell Selection Rule"
salience 50
dialect "java"
when
then
UtranCell[] ucells =
TopologyService.getInstance().getUtranCells();
for (int i=0; i<ucells.length; i++) {
insert( ucells[i] );
}
end
And it works fine if I replace the insert with System.out.println(ucells[i]) -
it seems to be something problematic with the insert. Full trace is below.
I can't see what the problem is...any ideas?
Thanks,
Ryan.
org.drools.runtime.rule.ConsequenceException: [Error: object is not an instance
of declaring class]
[Near : {... Unknown ....}]
^
[Line: 1, Column: 0]
at
org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:23)
at
org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:943)
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:885)
at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1086)
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:660)
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:627)
at
org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:183)
at com.sample.DroolsTest.main(DroolsTest.java:28)
Caused by: [Error: object is not an instance of declaring class]
[Near : {... Unknown ....}]
^
[Line: 1, Column: 0]
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:389)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:138)
at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:133)
at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
at
org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:104)
at org.mvel2.MVEL.executeExpression(MVEL.java:995)
at
org.drools.base.dataproviders.MVELDataProvider.getResults(MVELDataProvider.java:91)
at org.drools.reteoo.FromNode.evaluateAndPropagate(FromNode.java:124)
at org.drools.reteoo.FromNode.assertLeftTuple(FromNode.java:104)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:28)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:116)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:28)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:116)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:28)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:116)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:78)
at
org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:142)
at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)
at
org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)
at
org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1001)
at
org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:114)
at
org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:108)
at
com.sample.Rule_Utran_Cell_Selection_Rule_0.consequence(Rule_Utran_Cell_Selection_Rule_0.java:9)
at
com.sample.Rule_Utran_Cell_Selection_Rule_0ConsequenceInvoker.evaluate(Rule_Utran_Cell_Selection_Rule_0ConsequenceInvoker.java:18)
at
org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:934)
... 6 more
Caused by: java.lang.IllegalArgumentException: object is not an instance of
declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:931)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:316)
... 36 more
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100319/d4f06466/attachment.html
More information about the rules-users
mailing list