I also was getting this error. I brought out package building logic to execute 
once, and KnowledgeSession realted logic to repeat the required number of times.

Seems there required some delay in preparing rules related classes into one 
package during iteration. Above step was working fine for me.

Pseudo code:

          KnowledgeBuilder kbuilder = 
KnowledgeBuilderFactory.newKnowledgeBuilder();

      // this will parse and compile in one step

      // get the compiled packages (which are serializable)
      Collection<KnowledgePackage> pkgs = null;

      // add the packages to a knowledgebase (deploy the knowledge packages).
      KnowledgeBase kbase = null;

      StatefulKnowledgeSession ksession = null;
          // constructor to be called once
public RuleEngine (byte[] rules) {
            
kbuilder.add(ResourceFactory.newByteArrayResource(rules),ResourceType.DRL);
//          Check the builder for errors
            if (kbuilder.hasErrors()) {
                  System.out.println(kbuilder.getErrors().toString());
                  throw new RuntimeException("Unable to compile drl.");
            }
            pkgs = kbuilder.getKnowledgePackages();

            // add the packages to a knowledgebase (deploy the knowledge 
packages).
            kbase = KnowledgeBaseFactory.newKnowledgeBase();
            kbase.addKnowledgePackages(pkgs);
      }

// this method will be called required number of times
      public void fire(Object obj) {

            ksession = kbase.newStatefulKnowledgeSession();
            ksession.addEventListener(new DebugAgendaEventListener());
            ksession.addEventListener(new DebugWorkingMemoryEventListener());

            // setup the audit logging
            //KnowledgeRuntimeLogger logger = 
KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "log/drools.log");

            ksession.insert(obj);

            ksession.fireAllRules();

            //logger.close();

            ksession.dispose();
      }


Check this out.

Thanks & Regards
Santhosh
From: rules-users-boun...@lists.jboss.org 
[mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Wolfgang Laun
Sent: Tuesday, September 27, 2011 4:10 PM
To: Rules Users List
Subject: Re: [rules-users] Getting Exception while running rules continuously 
on the Event Streams from Mule Component.

Drools version?

Looks like a bug, I've seen similar NPE reports.

-W
On 27 September 2011 12:23, Hari Kishan 
<harikishan.tamm...@pass-consulting.com<mailto:harikishan.tamm...@pass-consulting.com>>
 wrote:
Please find attached the rule Code (.drl) below.

Frequently getting this below Exception while running rules.

Exception caught while executing action:
org.drools.reteoo.PropagationQueuingNode$PropagateAction@41c317<mailto:org.drools.reteoo.PropagationQueuingNode$PropagateAction@41c317>

java.lang.NullPointerException

     at org.drools.util.LeftTupleList.toArray(LeftTupleList.java:106)

     at org.drools.util.LeftTupleList.toArray(LeftTupleList.java:11)

     at org.drools.reteoo.CollectNode.assertObject(CollectNode.java:256)

     at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)

     at
org.drools.reteoo.RightInputAdapterNode.assertLeftTuple(RightInputAdapterNode.java:135)

     at
org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117)

     at
org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:28)

     at org.drools.reteoo.FromNode.evaluateAndPropagate(FromNode.java:156)

     at org.drools.reteoo.FromNode.assertLeftTuple(FromNode.java:104)

     at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:145)

     at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.propagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:39)

     at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:175)

     at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)

     at
org.drools.reteoo.PropagationQueuingNode$AssertAction.execute(PropagationQueuingNode.java:326)

     at
org.drools.reteoo.PropagationQueuingNode.propagateActions(PropagationQueuingNode.java:221)

     at
org.drools.reteoo.PropagationQueuingNode$PropagateAction.execute(PropagationQueuingNode.java:394)

     at
org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:1486)

     at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:158)

     at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:122)

     at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:80)

     at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:28)

     at org.mule.module.drools.Drools.assertEvent(Drools.java:165)

     at org.mule.module.bpm.Rules.handleEvent(Rules.java:131)

     at org.mule.module.bpm.RulesComponent.doInvoke(RulesComponent.java:84)

     at
org.mule.component.AbstractComponent.invokeInternal(AbstractComponent.java:120)

     at
org.mule.component.AbstractComponent.access$000(AbstractComponent.java:56)

     at
org.mule.component.AbstractComponent$1$1.process(AbstractComponent.java:234)

     at
org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:88)

     at
org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:89)

     at
org.mule.processor.chain.InterceptingChainLifecycleWrapper.doProcess(InterceptingChainLifecycleWrapper.java:63)

     at
org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:89)

     at
org.mule.processor.chain.InterceptingChainLifecycleWrapper.process(InterceptingChainLifecycleWrapper.java:94)

     at
org.mule.component.AbstractComponent.process(AbstractComponent.java:154)

     at
org.mule.processor.AbstractInterceptingMessageProcessor.processNext(AbstractInterceptingMessageProcessor.java:93)

     at
org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:55)

     at
org.mule.processor.AsyncInterceptingMessageProcessor.processNextTimed(AsyncInterceptingMessageProcessor.java:118)

     at
org.mule.processor.SedaStageInterceptingMessageProcessor$SedaStageWorker.doWork(SedaStageInterceptingMessageProcessor.java:197)

     at
org.mule.processor.SedaStageInterceptingMessageProcessor$SedaStageWorker.doRun(SedaStageInterceptingMessageProcessor.java:178)

     at
org.mule.work.AbstractMuleEventWork.run(AbstractMuleEventWork.java:43)

     at org.mule.work.WorkerContext.run(WorkerContext.java:309)

     at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

     at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

     at java.lang.Thread.run(Thread.java:619)

http://drools.46999.n3.nabble.com/file/n3372189/sensors.drl sensors.drl

--
View this message in context: 
http://drools.46999.n3.nabble.com/Getting-Exception-while-running-rules-continuously-on-the-Event-Streams-from-Mule-Component-tp3372189p3372189.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org<mailto:rules-users@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to