This is fixed on 4.0.x branch. I will fix in trunk.
[]s
Edson
2008/2/8, Edson Tirelli <tirelli(a)post.com>:
Ok, I see the problem. It is a bug that happens when mixing alpha and
beta constraints under ||.
I will fix it.
[]s
Edson
2008/2/8, Jai Vasanth <jaivasanth(a)gmail.com>:
>
> Sorry... eval(reason == 'override') is not the right way to check for
> string equality doh. Yes yours is definitely the way to go. I have had the
> '==' work for many cases. In this case it seems to be not working when
> there are multiple boolean disjunctions along with them.
>
> Jai
>
> On Feb 8, 2008 8:52 AM, Jai Vasanth <jaivasanth(a)gmail.com> wrote:
>
> > Very interesting. I tried it too , I dont think its about the '=='
> > because it seems to be working for eval( reason == 'override'). So it
is
> > more to do with having the eval method call.
> > Nice find. Not too sure if this is a bug, or if there is a reason why
> > drools works this way.
> >
> >
> > Thanks
> >
> > Jai
> >
> >
> > On Feb 7, 2008 5:43 PM, ST <super_thunder2(a)hotmail.com> wrote:
> >
> > > I got it working by using the inline eval expression. The following
> > > is the
> > > modified version of the rules.
> > >
> > > rule "Remove smaller or non-overriden"
> > > dialect "java"
> > > when
> > > L : Response( $r : value && status != "override"
)
> > > Response( value > $r || eval
(status.equals("override")) )
> > > then
> > > System.out.println("Retracting " + L);
> > > retract( L );
> > > end
> > >
> > > The Response class has two fields one is value and the other is
> > > status. For
> > > convenience, I added a constructor where the first parameter is the
> > > value and
> > > the second is the status. I have added the following objects into
> > > the working
> > > memory for testing.
> > >
> > > final Response response1 = new Response(5,"override");
> > > final Response response2 = new Response(6,"not
override");
> > > final Response response3 = new Response(7,"not
override");
> > > final Response response4 = new Response(8,"not
override");
> > > session.insert( response1 );
> > > session.insert( response2 );
> > > session.insert( response3 );
> > > session.insert( response4 );
> > >
> > > session.fireAllRules();
> > >
> > > The result shows that the object, Response(5,"override"), is
the
> > > only one left
> > > after the all activated rules have been evaluated.
> > >
> > > I am not sure why "==" does not work in this example. Is this
a
> > > known bug?
> > >
> > >
> > >
> > > _______________________________________________
> > > rules-users mailing list
> > > rules-users(a)lists.jboss.org
> > >
https://lists.jboss.org/mailman/listinfo/rules-users
> > >
> >
> >
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
Edson Tirelli
JBoss Drools Core Development
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @
www.jboss.com
--
Edson Tirelli
JBoss Drools Core Development
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @