[rules-users] not sure if this is a bug of drools or my bad usage...

Benson Fung benson.redhat at gmail.com
Mon Mar 7 22:35:25 EST 2011


Hi Simon,

Could you tell me a bit more about your logic below in code level?  I
can't imagine how it goes.

So, I first insert an A(), print all the objects. Retract A(), and
print all the objects. Here's what I got:
com.sample.B at 42
com.sample.C at 43
com.sample.A at 548997d1
after retract!
com.sample.B at 42
com.sample.C at 43


Benson

On Tue, Mar 8, 2011 at 3:33 AM, Simon Chen <simonchennj at gmail.com> wrote:
> Hi all,
>
> An interesting finding:
>
> I have three simple rules:
> rule "A2B"
>        when
>                A()
>        then
>                insertLogical(new B());
> end
> rule "B2C"
>        when
>                B()
>        then
>                insertLogical(new C());
> end
> rule "C2B"
>        when
>                C()
>        then
>                insertLogical(new B());
> end
>
> Basically, once we have an A(), we'll logically insert a B(). Once we
> have a B(), we'll logically insert a C(). Once we have a C(), we'll
> logically insert a B().
>
> So, I first insert an A(), print all the objects. Retract A(), and
> print all the objects. Here's what I got:
> com.sample.B at 42
> com.sample.C at 43
> com.sample.A at 548997d1
> after retract!
> com.sample.B at 42
> com.sample.C at 43
>
> So, B() and C(), which should be logically depend on A(), somehow are
> not retracted. The problem I see is the truth maintenance system allow
> B() and C() to depend on each other, thus not affected by losing A().
>
> Is this a bug or my bad usage?
>
> Thanks.
> -Simon
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>




More information about the rules-users mailing list