<br>&nbsp;&nbsp; Are you using Drools 4.0.7 with MVEL 1.3.1?<br><br>&nbsp;&nbsp; If yes, can you please open a jira for this error stating if your program is doing multi-thread compilation/execution, paste the information in your e-mail bellow, and if possible add a test case to reproduce, even if the error is intermittent?<br>
<br>&nbsp;&nbsp; Thank&nbsp; you<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Edson<br><br><br><div class="gmail_quote">2008/6/9 Augusto Rodriguez &lt;<a href="mailto:augusto.rodriguez@globant.com">augusto.rodriguez@globant.com</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



  

<div bgcolor="#ffffff" text="#000000">
Dear All,<br>
<br>
We&#39;re using Drools in our project and we&#39;ve been hitting a sporadic
error when we insert Objects in a stateful session. Unfortunately we
haven&#39;t been able to reproduce it in a constant way. We tried quite a
lot of things but we haven&#39;t been able to track it to the core, but we
found a way to &quot;avoid&quot; it, but we would love to know why this error is
being triggered.<br>
<br>
&gt;From time to time we get the following stack trace and usually after
this the rulebase gets broken (all the stateful sessions we generate
with it get unusable) and we can&#39;t run anything else in it (we have to
restart the app in order to create a new rule base object).<br>
<br>
<font face="Arial" size="2">org.mvel.CompileException: cannot invoke
method<br>
&nbsp;&nbsp;&nbsp; at
org.mvel.optimizers.impl.refl.MethodAccessor.getValue(MethodAccessor.java:68)<br>
&nbsp;&nbsp;&nbsp; at
org.mvel.optimizers.impl.refl.VariableAccessor.getValue(VariableAccessor.java:39)<br>
&nbsp;&nbsp;&nbsp; at
org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated(VariableDeepPropertyNode.java:22)<br>
&nbsp;&nbsp;&nbsp; at
org.mvel.ast.PropertyASTNode.getReducedValueAccelerated(PropertyASTNode.java:21)<br>
&nbsp;&nbsp;&nbsp; at org.mvel.MVELRuntime.execute(MVELRuntime.java:88)<br>
&nbsp;&nbsp;&nbsp; at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111)<br>
&nbsp;&nbsp;&nbsp; at org.mvel.MVEL.executeExpression(MVEL.java:252)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.base.dataproviders.MVELDataProvider.getResults(MVELDataProvider.java:45)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.FromNode.assertTuple(FromNode.java:64)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.reteoo.SingleTupleSinkAdapter.createAndPropagateAssertTuple(SingleTupleSinkAdapter.java:55)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:116)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:22)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:140)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:153)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.Rete.assertObject(Rete.java:175)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:909)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:881)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:682)<br>
&nbsp;&nbsp;&nbsp; at
uk.co.vodco.sherbet.ccp.rules.availability.AvailabilityRulesEngineImpl.addProgramme(AvailabilityRulesEngineImpl.java:27)<br>
[removed a few lines]<br>
Caused by: java.lang.IllegalArgumentException: <a href="mailto:java.lang.ClassCastException@1366d44" target="_blank">java.lang.ClassCastException@1366d44</a><br>
&nbsp;&nbsp;&nbsp; at sun.reflect.GeneratedMethodAccessor194.invoke(Unknown Source)<br>
&nbsp;&nbsp;&nbsp; at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br>
&nbsp;&nbsp;&nbsp; at java.lang.reflect.Method.invoke(Method.java:585)<br>
&nbsp;&nbsp;&nbsp; at
org.mvel.optimizers.impl.refl.MethodAccessor.getValue(MethodAccessor.java:64)<br>
&nbsp;&nbsp;&nbsp; ... 69 common frames omitted<br>
<br>
</font>We found that adding a line to a few rules like the following
one removed the error:<br>
<div><span><font color="#808000" size="2">
<p># given the version, add the programme if it does not exist<br>
<b><font color="#960000" size="2">rule</font></b><font size="2"> </font><font color="#008000" size="2">&quot;insertion of programme given a version&quot;<br>
</font><b><font color="#960000" size="2">ruleflow-group</font></b><font size="2"> </font><font color="#008000" size="2">&quot;source-defaults&quot;</font><br>
<b><font color="#960000" size="2">&nbsp;&nbsp;&nbsp; when</font></b><br>
<font size="2">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $v: ProgrammeVersion()<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p: Programme() </font><b><font color="#960000" size="2">from</font></b><font size="2"> $v.getProgramme()</font><br>
<b><font color="#960000" size="2">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; not</font></b><font size="2">
Programme(</font><b><font color="#960000" size="2">this</font></b><font size="2"> == $p)</font><br>
<b><font color="#960000" size="2">&nbsp;&nbsp;&nbsp; then<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; insert</font></b><font size="2"> ($p);</font><br>
<b><font color="#960000" size="2">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; update</font></b><font size="2"> ($v); <font color="#ff0000"><b>&lt;-- Added Line</b></font><br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; LoggerFactory.getLogger(</font><font color="#008000" size="2">&quot;factinsertion.drl&quot;</font><font size="2">).info(</font><font color="#008000" size="2">&quot;Entered:
insertion of programme given version&quot;</font><font size="2">);</font><br>
<b><font color="#960000" size="2">end</font></b></p>
</font><b><font color="#960000" size="2"></font></b><font size="2">
</font><font size="2"></font><font size="2">
</font>
<font size="2">
</font>
<b><font color="#960000" size="2"></font></b></span></div>
<br>
Does anyone have an idea of what can be causing this error? We suppose
it&#39;s related to the <b>from</b> clause in the condition. Because we&#39;re
taking the object we&#39;re inserting in the working memory ($p) from the
object $v, so in the end, for some reason, we also need to update $v.<br>
<br>
<br>
Thanks in advance!<br>
Augusto<br>
</div>

<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br> Edson Tirelli<br> JBoss Drools Core Development<br> Office: +55 11 3529-6000<br> Mobile: +55 11 9287-5646<br> JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a>