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

Reply via email to