<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Mauricio,<div><br></div><div>Were you ever able to figure out what I am doing wrong?</div><div><br><div> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Regards, </div><div><br></div><div>Dan Nathanson</div></div></span> </div><br><div><div>On Dec 23, 2010, at 3:10 AM, Mauricio Salatino wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi There..<br>What version of Drools are you using?<br>I can help you to figure out what is happening..<br><br><div class="gmail_quote">2010/12/23 Dan Nathanson <span dir="ltr"><<a href="mailto:dan@ddnconsulting.com">dan@ddnconsulting.com</a>></span><br> <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>Hi,<br><br>I've been banging my head against this for days and just can't get it<br> to work. At this point I'd like to just get the example code working.<br> I've got a simple class that is currently being driven by a JUnit<br> test case. I just want to create a Process flow and execute it. I<br>don't care what it does at this point. Hello world level stuff.<br><br>My method under test:<br><br> public String runFlow() throws Exception {<br> <br> RuleFlowProcessFactory factory = RuleFlowProcessFactory.createProcess("org.drools.process");<br> factory<br> // header<br> .name("My process").packageName("org.drools")<br> // nodes<br> .startNode(1).name("Start").done()<br> .actionNode(2).name("Action")<br> .action("java", "System.out.println(\"Hello World\");").done()<br> .endNode(3).name("End").done()<br> // connections<br> .connection(1, 2)<br> .connection(2, 3);<br><br> RuleFlowProcess process = factory.validate().getProcess();<br> <br> KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();<br> KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(knowledgeBase);<br><br> Package pkg = new Package("package1");<br> pkg.addProcess(process);<br> RuleBase ruleBase = RuleBaseFactory.newRuleBase();<br> ruleBase.addPackage(pkg);<br><br> Collection<KnowledgePackage> kpackages = builder.getKnowledgePackages();<br> KnowledgePackage kpackage = new KnowledgePackageImp(pkg);<br> kpackages.add(kpackage);<br> knowledgeBase.addKnowledgePackages(kpackages);<br><br> StatefulKnowledgeSession ksession = knowledgeBase.newStatefulKnowledgeSession();<br> <br> KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newConsoleLogger(ksession);<br><br> ksession.startProcess("org.drools.process");<br><br> return "foo";<br> }<br><br> When I run this process, I get an exception when the Action node is<br>run. It is a NPE and it happens because the metaData map in the<br>underlying ActionNode does not contain a KVP for "Action". It looks<br> like that KVP is added in in the DroolsAction class when the public<br>void wire(Object object) method is called. Unfortunately, I can't<br>figure out what causes that method to be called. I'm pretty sure my<br> problem is with the set up of my knowledge base (the call to new<br>KnowledgePackageImp() is suspect), but I can't figure out how to set<br>up the knowledge base when building a RuleFlowProcess using the<br>RuleFlowProcessFactory. None of the examples I can find show how to<br> do this.<br><br>Note that if I take out the Action node and just have Start and End<br>nodes, it works fine.<br><br>I am using Drools 5.1.0, but it doesn't work with Drools 5.0.1 either.<br><br>Any help would be appreciated. The flat spot on my forehead is<br> getting flatter every day I continue to bang my head against the wall.<br><br>Here's the output (including KnowledgeRuntimeLogger output):<br><br>BEFORE RULEFLOW STARTED process:My process[id=org.drools.process]<br>BEFORE RULEFLOW NODE TRIGGERED node:Start[id=1] process:My<br> process[id=org.drools.process]<br>null process:My process[id=org.drools.process]<br>BEFORE RULEFLOW NODE TRIGGERED node:Action[id=2] process:My<br>process[id=org.drools.process]<br><br>java.lang.RuntimeException: unable to execute Action<br> at org.drools.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:56)<br> at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:117)<br> at org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:178)<br> at org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:144)<br> at org.drools.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:49)<br> at org.drools.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:41)<br> at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:117)<br> at org.drools.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:32)<br> at org.drools.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:192)<br> at org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:309)<br> at org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1644)<br> at org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1622)<br> at org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:301)<br> at com.proferi.epm.process.DroolsFlowManager.runFlow(DroolsFlowManager.java:75)<br> at com.proferi.epm.process.DroolsFlowManagerTest.testRunFlow(DroolsFlowManagerTest.java:33)<br> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br> at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)<br> at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)<br> at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)<br> at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)<br> at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)<br> at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)<br> at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)<br> at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)<br> at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)<br> at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)<br> at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)<br> at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)<br> at org.junit.runner.JUnitCore.run(JUnitCore.java:130)<br> at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:64)<br>Caused by: java.lang.NullPointerException<br> at org.drools.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:54)<br> ... 34 more<br clear="all"></div> <div> </div> <div>Regards,<br><br>Dan Nathanson<br><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> - CTO @ <a href="http://www.plugtree.com">http://www.plugtree.com</a> <br> - MyJourney @ <a href="http://salaboy.wordpress.com">http://salaboy.wordpress.com</a><br> - Co-Founder @ <a href="http://www.jbug.com.ar">http://www.jbug.com.ar</a><br> <br> - Salatino "Salaboy" Mauricio -<br> _______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>https://lists.jboss.org/mailman/listinfo/rules-users<br></blockquote></div><br></div></body></html>