<br>   Although it is good to have your facts being serializable, it should not be mandatory. That was a mistake. I will reopen that ticket to fix that.<br><br>   []s<br>   Edson<br><br><br><br><div class="gmail_quote">2009/7/15 Steve Ronderos <span dir="ltr">&lt;<a href="mailto:steve.ronderos@ni.com">steve.ronderos@ni.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><font face="sans-serif" size="2">Hello,</font>
<br>
<br><font face="sans-serif" size="2">I&#39;ve been working on upgrading an application
that uses Drools 4.0.7 to 5.0.1.  For the most part things have been
going well.  </font>
<br>
<br><font face="sans-serif" size="2">After I got the rules running with 5.0.1
I started getting a ClassCastException on one of my model classes within
the class MVELAccumulatorFunctionExecutor.  Here is the full stacktrace</font>
<br>
<br><font face="Tahoma" size="1">org.drools.runtime.rule.ConsequenceException:
org.drools.RuntimeDroolsException: java.lang.ClassCastException: com.example.Slot</font>
<br><font face="Tahoma" size="1">        at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:23)</font>
<br><font face="Tahoma" size="1">        at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:945)</font>
<br><font face="Tahoma" size="1">        at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:885)</font>
<br><font face="Tahoma" size="1">        at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1091)</font>
<br><font face="Tahoma" size="1">        at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:684)</font>
<br><font face="Tahoma" size="1">        at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:650)</font>
<br><font face="Tahoma" size="1">        at com.example.StatefulDroolsRuleManager.execute(StatefulDroolsRuleManager.java:59)</font>
<br><font face="Tahoma" size="1">        at com.example.common.TestMaxQuantity.multipleMaximum4Slot(TestMaxQuantity.java:115)</font>
<br><font face="Tahoma" size="1">        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)</font>
<br><font face="Tahoma" size="1">        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)</font>
<br><font face="Tahoma" size="1">        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)</font>
<br><font face="Tahoma" size="1">        at java.lang.reflect.Method.invoke(Method.java:585)</font>
<br><font face="Tahoma" size="1">        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)</font>
<br><font face="Tahoma" size="1">        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)</font>
<br><font face="Tahoma" size="1">        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)</font>
<br><font face="Tahoma" size="1">        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)</font>
<br><font face="Tahoma" size="1">        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)</font>
<br><font face="Tahoma" size="1">        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)</font>
<br><font face="Tahoma" size="1">        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)</font>
<br><font face="Tahoma" size="1">        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)</font>
<br><font face="Tahoma" size="1">        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)</font>
<br><font face="Tahoma" size="1">        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)</font>
<br><font face="Tahoma" size="1">        at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)</font>
<br><font face="Tahoma" size="1">        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)</font>
<br><font face="Tahoma" size="1">        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)</font>
<br><font face="Tahoma" size="1">        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)</font>
<br><font face="Tahoma" size="1">        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)</font>
<br><font face="Tahoma" size="1">        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)</font>
<br><font face="Tahoma" size="1">        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)</font>
<br><font face="Tahoma" size="1">        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)</font>
<br><font face="Tahoma" size="1">        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)</font>
<br><font face="Tahoma" size="1">        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)</font>
<br><font face="Tahoma" size="1">        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)</font>
<br><font face="Tahoma" size="1">        at java.lang.reflect.Method.invoke(Method.java:585)</font>
<br><font face="Tahoma" size="1">        at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)</font>
<br><font face="Tahoma" size="1">        at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)</font>
<br><font face="Tahoma" size="1">Caused by: org.drools.RuntimeDroolsException:
java.lang.ClassCastException: com.example.Slot</font>
<br><font face="Tahoma" size="1">        at org.drools.rule.Accumulate.accumulate(Accumulate.java:172)</font>
<br><font face="Tahoma" size="1">        at org.drools.reteoo.AccumulateNode.modifyTuple(AccumulateNode.java:432)</font>
<br><font face="Tahoma" size="1">        at org.drools.reteoo.AccumulateNode.assertObject(AccumulateNode.java:284)</font>
<br><font face="Tahoma" size="1">        at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:360)</font>
<br><font face="Tahoma" size="1">        at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:344)</font>
<br><font face="Tahoma" size="1">        at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:147)</font>
<br><font face="Tahoma" size="1">        at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:360)</font>
<br><font face="Tahoma" size="1">        at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:337)</font>
<br><font face="Tahoma" size="1">        at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)</font>
<br><font face="Tahoma" size="1">        at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)</font>
<br><font face="Tahoma" size="1">        at org.drools.common.AbstractWorkingMemory.modifyInsert(AbstractWorkingMemory.java:1365)</font>
<br><font face="Tahoma" size="1">        at org.drools.base.DefaultKnowledgeHelper.modifyInsert(DefaultKnowledgeHelper.java:201)</font>
<br><font face="Tahoma" size="1">        at org.drools.base.DefaultKnowledgeHelper.modifyInsert(DefaultKnowledgeHelper.java:195)</font>
<br><font face="Tahoma" size="1">        at com.example.Rule_Update_Slot_s_valid_occupants_0.consequence(Rule_Update_Slot_s_valid_occupants_0.java:30)</font>
<br><font face="Tahoma" size="1">        at com.example.Rule_Update_Slot_s_valid_occupants_0ConsequenceInvoker.evaluate(Rule_Update_Slot_s_valid_occupants_0ConsequenceInvoker.java:33)</font>
<br><font face="Tahoma" size="1">        at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:936)</font>
<br><font face="Tahoma" size="1">        ...
34 more</font>
<br><font face="Tahoma" size="1">Caused by: java.lang.ClassCastException:
com.example.Slot</font>
<br><font face="Tahoma" size="1">        at org.drools.base.accumulators.MVELAccumulatorFunctionExecutor.accumulate(MVELAccumulatorFunctionExecutor.java:125)</font>
<br><font face="Tahoma" size="1">        at org.drools.rule.Accumulate.accumulate(Accumulate.java:164)</font>
<br><font face="Tahoma" size="1">        ...
49 more</font>
<br>
<br><font face="sans-serif" size="2">I then downloaded the code to see what
was going on and it looks like my fact types are being cast to Serializable
objects in the MVELAccumulatorFunctionExecutor.accumulate method.  I
don&#39;t remember reading anything about needing to make my model serializable,
did I miss some documentation somewhere? </font>
<br>
<br><font face="sans-serif" size="2">Also, I found this JIRA request that
looked related:  </font><a href="https://jira.jboss.org/jira/browse/JBRULES-2202" target="_blank"><font face="sans-serif" size="2">https://jira.jboss.org/jira/browse/JBRULES-2202</font></a>
<br>
<br><font face="sans-serif" size="2">Any help would be greatly appreciated.
 Thanks!</font>
<br><font color="#888888"><font face="sans-serif" size="2"><br>
</font><font size="3">Steve Ronderos</font></font><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>  JBoss by Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a><br>