[jboss-jira] [JBoss JIRA] Created: (JBRULES-794) ArrayIndexOutOfBoundException if duplicate declarations in rule

Juergen none (JIRA) jira-events at lists.jboss.org
Fri Apr 13 05:07:15 EDT 2007


ArrayIndexOutOfBoundException if duplicate declarations in rule
---------------------------------------------------------------

                 Key: JBRULES-794
                 URL: http://jira.jboss.com/jira/browse/JBRULES-794
             Project: JBoss Rules
          Issue Type: Feature Request
      Security Level: Public (Everyone can see)
    Affects Versions: 3.0.6
            Reporter: Juergen none
         Assigned To: Mark Proctor
            Priority: Minor


rule "yields-out-of-bound-exception"
 when
  a : A(
   b : b
  )
  C(b == b,
   n : n // FIRST DECLARATION
  )
  n : D(self == n) //SECOND DECLARATION
hen ...

valid rule file, rule is parsed, but yields exception
corrected (remove second declaration):
...
  C(b == b,
   n : n // FIRST DECLARATION
  )
  D(self == n)
then ...

valid rule file, rule is parsed, no exception

Exception stacktrace fragment:
java.lang.ArrayIndexOutOfBoundsException: 2
	at org.drools.reteoo.FactHandleList.get(FactHandleList.java:114)
	at org.drools.reteoo.TupleKey.get(TupleKey.java:98)
	at org.drools.reteoo.ReteTuple.get(ReteTuple.java:160)
	at org.drools.reteoo.ReteTuple.get(ReteTuple.java:167)
	at org.drools.rule.BoundVariableConstraint.isAllowed(BoundVariableConstraint.java:79)
	at org.drools.common.BetaNodeBinder.isAllowed(BetaNodeBinder.java:63)
	at org.drools.reteoo.TupleSource.attemptJoin(TupleSource.java:99)
	at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:166)
	at org.drools.reteoo.ObjectSource.propagateAssertObject(ObjectSource.java:119)
	at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:158)
	at org.drools.reteoo.Rete.assertObject(Rete.java:120)
	at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:180)
	at org.drools.reteoo.ReteooWorkingMemory.doAssertObject(ReteooWorkingMemory.java:68)
	at org.drools.common.AbstractWorkingMemory.assertObject(AbstractWorkingMemory.java:537)
	at org.drools.base.DefaultKnowledgeHelper.assertLogicalObject(DefaultKnowledgeHelper.java:70)
	at org.drools.base.DefaultKnowledgeHelper.assertLogicalObject(DefaultKnowledgeHelper.java:64)
	at Rule_assert_Child_from_TreeNodeIF_0.consequence(Rule_assert_Child_from_TreeNodeIF_0.java:65)


-- 
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