<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Arial, sans-serif" size="2">
<div>Hi,</div>
<div> </div>
<div>I get the following exception when trying to insert an object from within a rule consequence:</div>
<div> </div>
<div><font face="Courier New" color="#FF0000">[Error: object is not an instance of declaring class]</font></div>
<div><font face="Courier New" color="#FF0000"> </font></div>
<div>The rule is as follows:</div>
<div> </div>
<div><font face="Courier New" color="#960000"><b>rule</b><font color="#000000"> </font><font color="#008000">"Utran Cell Selection Rule"</font></font></div>
<div><font face="Courier New" color="#960000"><b>salience</b><font color="#000000"> 50</font></font></div>
<div><font face="Courier New" color="#960000"><b>dialect</b><font color="#000000"> </font><font color="#008000">"java"</font></font></div>
<div><font face="Courier New"> <font color="#960000"><b>when</b></font></font></div>
<div><font face="Courier New"> <font color="#960000"><b>then</b></font></font></div>
<div><font face="Courier New"> UtranCell[] ucells = TopologyService.getInstance().getUtranCells();</font></div>
<div><font face="Courier New"> <font color="#960000"><b>for</b></font> (<font color="#960000"><b>int</b></font> i=0; i<ucells.length; i++) {</font></div>
<div><font face="Courier New"> <font color="#960000"><b>insert</b></font>( ucells[i] );</font></div>
<div><font face="Courier New"> }</font></div>
<div><font face="Courier New" color="#960000"><b>end</b></font></div>
<div><font face="Courier New"> </font></div>
<div><font face="Courier New"> </font></div>
<div>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.</div>
<div> </div>
<div>I can't see what the problem is…any ideas?</div>
<div> </div>
<div>Thanks,</div>
<div>Ryan.</div>
<div> </div>
<div><font face="Courier New" color="#000080"><u>org.drools.runtime.rule.ConsequenceException</u><font color="#FF0000">: [Error: object is not an instance of declaring class]</font></font></div>
<div><font face="Courier New" color="#FF0000">[Near : {... Unknown ....}]</font></div>
<div><font face="Courier New" color="#FF0000"> ^</font></div>
<div><font face="Courier New" color="#FF0000">[Line: 1, Column: 0]</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(<font color="#000080"><u>DefaultConsequenceExceptionHandler.java:23</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.common.DefaultAgenda.fireActivation(<font color="#000080"><u>DefaultAgenda.java:943</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.common.DefaultAgenda.fireNextItem(<font color="#000080"><u>DefaultAgenda.java:885</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.common.DefaultAgenda.fireAllRules(<font color="#000080"><u>DefaultAgenda.java:1086</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.common.AbstractWorkingMemory.fireAllRules(<font color="#000080"><u>AbstractWorkingMemory.java:660</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.common.AbstractWorkingMemory.fireAllRules(<font color="#000080"><u>AbstractWorkingMemory.java:627</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(<font color="#000080"><u>StatefulKnowledgeSessionImpl.java:183</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at com.sample.DroolsTest.main(<font color="#000080"><u>DroolsTest.java:28</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000">Caused by: [Error: object is not an instance of declaring class]</font></div>
<div><font face="Courier New" color="#FF0000">[Near : {... Unknown ....}]</font></div>
<div><font face="Courier New" color="#FF0000"> ^</font></div>
<div><font face="Courier New" color="#FF0000">[Line: 1, Column: 0]</font></div>
<div><font face="Courier New" color="#FF0000"> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(<font color="#000080"><u>ReflectiveAccessorOptimizer.java:389</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(<font color="#000080"><u>ReflectiveAccessorOptimizer.java:138</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.mvel2.ast.ASTNode.getReducedValueAccelerated(<font color="#000080"><u>ASTNode.java:133</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.mvel2.MVELRuntime.execute(<font color="#000080"><u>MVELRuntime.java:85</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.mvel2.compiler.CompiledExpression.getValue(<font color="#000080"><u>CompiledExpression.java:104</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.mvel2.MVEL.executeExpression(<font color="#000080"><u>MVEL.java:995</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.base.dataproviders.MVELDataProvider.getResults(<font color="#000080"><u>MVELDataProvider.java:91</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.FromNode.evaluateAndPropagate(<font color="#000080"><u>FromNode.java:124</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.FromNode.assertLeftTuple(<font color="#000080"><u>FromNode.java:104</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(<font color="#000080"><u>SingleLeftTupleSinkAdapter.java:117</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(<font color="#000080"><u>SingleLeftTupleSinkAdapter.java:28</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.JoinNode.assertLeftTuple(<font color="#000080"><u>JoinNode.java:116</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(<font color="#000080"><u>SingleLeftTupleSinkAdapter.java:117</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(<font color="#000080"><u>SingleLeftTupleSinkAdapter.java:28</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.JoinNode.assertLeftTuple(<font color="#000080"><u>JoinNode.java:116</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(<font color="#000080"><u>SingleLeftTupleSinkAdapter.java:117</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(<font color="#000080"><u>SingleLeftTupleSinkAdapter.java:28</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.JoinNode.assertLeftTuple(<font color="#000080"><u>JoinNode.java:116</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(<font color="#000080"><u>SingleLeftTupleSinkAdapter.java:117</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(<font color="#000080"><u>SingleLeftTupleSinkAdapter.java:78</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.LeftInputAdapterNode.assertObject(<font color="#000080"><u>LeftInputAdapterNode.java:142</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(<font color="#000080"><u>SingleObjectSinkAdapter.java:42</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.ObjectTypeNode.assertObject(<font color="#000080"><u>ObjectTypeNode.java:185</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.reteoo.EntryPointNode.assertObject(<font color="#000080"><u>EntryPointNode.java:146</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.common.AbstractWorkingMemory.insert(<font color="#000080"><u>AbstractWorkingMemory.java:1046</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.common.AbstractWorkingMemory.insert(<font color="#000080"><u>AbstractWorkingMemory.java:1001</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.base.DefaultKnowledgeHelper.insert(<font color="#000080"><u>DefaultKnowledgeHelper.java:114</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.base.DefaultKnowledgeHelper.insert(<font color="#000080"><u>DefaultKnowledgeHelper.java:108</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at com.sample.Rule_Utran_Cell_Selection_Rule_0.consequence(<font color="#000080"><u>Rule_Utran_Cell_Selection_Rule_0.java:9</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at com.sample.Rule_Utran_Cell_Selection_Rule_0ConsequenceInvoker.evaluate(<font color="#000080"><u>Rule_Utran_Cell_Selection_Rule_0ConsequenceInvoker.java:18</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.drools.common.DefaultAgenda.fireActivation(<font color="#000080"><u>DefaultAgenda.java:934</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> ... 6 more</font></div>
<div><font face="Courier New" color="#FF0000">Caused by: <font color="#000080"><u>java.lang.IllegalArgumentException</u></font>: object is not an instance of declaring class</font></div>
<div><font face="Courier New" color="#FF0000"> at sun.reflect.NativeMethodAccessorImpl.invoke0(<font color="#000080"><u>Native Method</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)</font></div>
<div><font face="Courier New" color="#FF0000"> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)</font></div>
<div><font face="Courier New" color="#FF0000"> at java.lang.reflect.Method.invoke(Unknown Source)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(<font color="#000080"><u>ReflectiveAccessorOptimizer.java:931</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(<font color="#000080"><u>ReflectiveAccessorOptimizer.java:316</u></font>)</font></div>
<div><font face="Courier New" color="#FF0000"> ... 36 more</font></div>
<div><font face="Courier New"> </font></div>
<div> </div>
</font>
</body>
</html>