yeah we found that bug, and will probably have RC2 out soon.
On 4/7/06, Juergen <[EMAIL PROTECTED]> wrote:
>
> Drools 3, rev. 3505 (or 3502)
>
> Modified helloworld example to experiment a bit with rules (DRL not
> meaningful, looping, ...), nontheless got:
>
> java.lang.ArrayIndexOutOfBoundsException: 2
> at org.drools.reteoo.FactHandleList.get(FactHandleList.java:107)
> at org.drools.reteoo.TupleKey.get(TupleKey.java:90)
> at org.drools.reteoo.ReteTuple.get(ReteTuple.java:153)
> at
> org.drools.reteoo.RightInputAdapterNode.assertTuple(
> RightInputAdapterNode.java:70)
> at org.drools.reteoo.TupleSource.propagateAssertTuple(
> TupleSource.java:156)
> at org.drools.reteoo.NotNode.assertTuple(NotNode.java:117)
> at org.drools.reteoo.TupleSource.propagateAssertTuple(
> TupleSource.java:133)
> at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:159)
> at
> org.drools.reteoo.ObjectSource.propagateAssertObject(ObjectSource.java
> :106)
> at org.drools.reteoo.ObjectTypeNode.assertObject(
> ObjectTypeNode.java:130)
> at org.drools.reteoo.Rete.assertObject(Rete.java:123)
> at org.drools.reteoo.RuleBaseImpl.assertObject(RuleBaseImpl.java
> :245)
> at
> org.drools.reteoo.WorkingMemoryImpl.assertObject(WorkingMemoryImpl.java
> :487)
> at
> org.drools.reteoo.WorkingMemoryImpl.assertObject(WorkingMemoryImpl.java
> :380)
> at
> org.drools.integrationtests.helloworld.HelloWorldTest.testSomething(
> HelloWorldTest.java:34)
>
> HelloWorld.drl:
> ---------------
> package HelloWorld
> import java.lang.String;
> import org.drools.integrationtests.helloworld.A;
>
> rule "rule"
> when
> a : String()
> b : String()
> exists A(a == a, b == b)
> then
> assert(new A(a, b));
> end
>
> HelloWorldTest.java:
> --------------------
> ...
> public void testSomething() {
> try {
>
> //load up the rulebase
> RuleBase ruleBase = readRule();
> WorkingMemory workingMemory = ruleBase.newWorkingMemory();
> workingMemory.assertObject(new A("a", "b"));
> workingMemory.assertObject("a");
> workingMemory.fireAllRules();
> workingMemory.assertObject("b");
> workingMemory.fireAllRules();
> //assertTrue( message.isFired() );
> } catch (Throwable t) {
> t.printStackTrace();
> fail(t.getMessage());
> }
> }
> ...
>
> A.java:
> -------
> package org.drools.integrationtests.helloworld;
> public class A{
> String a;
> String b;
> public A(String a, String b) {this.a = a;this.b = b;}
> public String getA() {return a;}
> public void setA(String a) {this.a = a;}
> public String getB() {return b;}
> public void setB(String b) {this.b = b;}
> }
>
> fyi, Juergen
>
>