As fas as the released versions 5.5.0 and 5.5.1 are concerned, CEs "not" and "exist" using constraints employing the four comparison operators <, <=, >, >= are not safe to use if a retract changes the nodes relating to these CEs.
Mario has fixed this, so it'll be gone in 5.6 and later. -W On 17/01/2013, John Smith <[email protected]> wrote: > I am new to Drools and am trying to get the sample program to work. This > sample is given in the drools documentation > http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/index.html#d0e9542. > This drool rule is expected to sort integers. I just changed the numbers > from what are given in the sample and they do not get sorted as expected. > Tried using drools version 5.5.0, 5.5.1 and the master 6.0.0, but got the > same wrong results. > > Following is the main code: > package com.sample; > > public class Example2 { > public static void main(String[] args) throws Exception { > Number[] numbers = new Number[] { wrap(5), wrap(6), wrap(4), > wrap(1), wrap(2) }; > new RuleRunner().runRules(new String[] { "Example3.drl" }, > numbers); > } > > private static Integer wrap(int i) { > return new Integer(i); > } > } > > The RuleRunner class is the same as given in the example and I do not > think > I should give that here, since it will clutter the question. It simply > creates the KnowledgeBase, stateful session, inserts the facts as given in > the 'numbers' array above and then calls fireAllRules method on the > session. > > The rule file (Example3.drl) is: > > > rule "Rule 04" > dialect "mvel" > when > $number : Number() > not Number(intValue < $number.intValue) > then > System.out.println("Number found with value: " + $number.intValue()); > retract($number); > end > > > The output I get is as follows: > Loading file: Example3.drl > Inserting fact: 5 > Inserting fact: 6 > Inserting fact: 4 > Inserting fact: 1 > Inserting fact: 2 > Number found with value: 1 > Number found with value: 4 > Number found with value: 2 > Number found with value: 5 > Number found with value: 6 > > Not the correct expected ascending sorted order. > > What might I be doing wrong? I cannot imagine that the drools rule engine > would be broken at this basic level. > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Drools-Expert-does-not-sort-integers-correctly-tp4021606.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
