[rules-users] ClassCastException when debugging as a drools unit test with a ruleflow

Kris Verlaenen kris.verlaenen at cs.kuleuven.be
Tue Mar 2 10:04:24 EST 2010


That is strange ... Only thing I can image is that you are using the 
internal drools jars that are shipped as part of the eclipse plugin in the 
Drools JUnit case and not in the normal JUnit case.  Could you try updating 
to the latest snapshot version of the Eclipse plugin (this will update your 
internal Drools jars)?

https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/

Kris

----- Original Message ----- 
From: "H.C." <canterburry at gmail.com>
To: <rules-users at lists.jboss.org>
Sent: Tuesday, March 02, 2010 6:32 AM
Subject: [rules-users] ClassCastException when debugging as a drools unit 
test with a ruleflow


>
> Hi,
>
> I have a unit test written which tests my rules. In my setup, I am loading
> my drl and rf files via a changeset into an agent and getting my knowledge
> base. The test then sets globals and facts on my stateful session and
> execute my ruleflow. I can execute this unit test in JUnit and debug. My 
> drl
> and rf files build ok and I can step through my java breakpoints.
>
> However, when I execute the very same Junit test using debug as Drools 
> Junit
> Test, I get the following exception when the knowledge agent is building 
> my
> drl and rf files in my junit setup.
>
> The only difference between the two scenarios is that I am using the debug
> as Drools Unit Test in the exception scenario and plain debug as junit 
> test
> in the first. I make no configuration or code changes.
>
> java.lang.ClassCastException: org.drools.workflow.core.node.RuleSetNode
> cannot be cast to org.drools.workflow.core.node.StateBasedNode
> at
> org.drools.process.builder.EventBasedNodeBuilder.build(EventBasedNodeBuilder.java:21)
> at 
> org.drools.compiler.ProcessBuilder.processNodes(ProcessBuilder.java:185)
> at org.drools.compiler.ProcessBuilder.buildNodes(ProcessBuilder.java:171)
> at 
> org.drools.compiler.ProcessBuilder.buildProcess(ProcessBuilder.java:139)
> at
> org.drools.compiler.ProcessBuilder.addProcessFromFile(ProcessBuilder.java:222)
> at
> org.drools.compiler.PackageBuilder.addProcessFromXml(PackageBuilder.java:448)
> at
> org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:504)
> at
> org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25)
> at
> org.drools.agent.impl.KnowledgeAgentImpl.rebuildResources(KnowledgeAgentImpl.java:386)
> at
> org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:120)
> at
> org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:109)
> at com.ac.logistics.usps.IQ.UspsIQEngine.<init>(UspsIQEngine.java:21)
> at
> com.ac.logistics.usps.transformation.UspsRateRequestTransformer.<init>(UspsRateRequestTransformer.java:25)
> at
> com.ac.logistics.usps.transformation.TestUspsRateRequestTransformer.setUp(TestUspsRateRequestTransformer.java:50)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.junit.runners.Suite.runChild(Suite.java:128)
> at org.junit.runners.Suite.runChild(Suite.java:24)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
>
>
> -- 
> View this message in context: 
> http://n3.nabble.com/ClassCastException-when-debugging-as-a-drools-unit-test-with-a-ruleflow-tp423325p423325.html
> Sent from the Drools - User mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users 


Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm



More information about the rules-users mailing list