[jboss-jira] [JBoss JIRA] Created: (JBRULES-506) Exception thrown when retract, reassert and retract again

Leo Liang (JIRA) jira-events at jboss.com
Sat Sep 30 00:56:42 EDT 2006


Exception thrown when retract, reassert and retract again
---------------------------------------------------------

                 Key: JBRULES-506
                 URL: http://jira.jboss.com/jira/browse/JBRULES-506
             Project: JBoss Rules
          Issue Type: Bug
      Security Level: Public (Everyone can see)
    Affects Versions: 3.0.4, 3.0.1
            Reporter: Leo Liang
         Assigned To: Mark Proctor
         Attachments: Fact.java, test.drl, TestDriver.java

In one rule retract the object and re-assert it, then retract the object again in the following activated rule. A null pointer exception will occur at this time.

java.lang.NullPointerException
	at org.drools.reteoo.TerminalNode.retractTuple(TerminalNode.java:216)
	at org.drools.reteoo.LeftInputAdapterNode.retractObject(LeftInputAdapterNode.java:207)
	at org.drools.reteoo.ObjectSource.propagateRetractObject(ObjectSource.java:141)
	at org.drools.reteoo.ObjectTypeNode.retractObject(ObjectTypeNode.java:180)
	at org.drools.reteoo.Rete.retractObject(Rete.java:150)
	at org.drools.reteoo.ReteooRuleBase.retractObject(ReteooRuleBase.java:207)
	at org.drools.reteoo.ReteooWorkingMemory.doRetract(ReteooWorkingMemory.java:77)
	at org.drools.common.AbstractWorkingMemory.retractObject(AbstractWorkingMemory.java:668)
	at org.drools.base.DefaultKnowledgeHelper.retractObject(DefaultKnowledgeHelper.java:86)
	at com.ericsson.ruletest.debug.Rule_test2_0.consequence(Rule_test2_0.java:8)
	at com.ericsson.ruletest.debug.Rule_test2_0ConsequenceInvoker.evaluate(Rule_test2_0ConsequenceInvoker.java:22)
	at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:437)
	at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:407)
	at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:269)
	at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:256)
	at com.ericsson.ruletest.TestDriver.main(TestDriver.java:26)

The given test case is the the simplified from my production code.

--------------- test.drl ------------------------

package com.ericsson.ruletest.debug

import com.ericsson.ruletest.Fact;

rule "test1"
	salience 10
	no-loop true
    when
        input:Fact();
    then
    	retract(input);
	assert(input);
end;


rule "test2"
	salience 0
	no-loop true
    when
        input:Fact();
    then
	retract(input);
end;




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list