rule init salience 9999 when then insert( Integer.valueOf( 10 ) ); insert( Integer.valueOf( 50 ) ); insert( Integer.valueOf( 60 ) ); insert( Integer.valueOf( 40 ) ); insert( Integer.valueOf( 20 ) ); end
rule "Rule 04" ## dialect "mvel" when $number : Integer( $i: intValue ) not Integer(intValue < $i) then System.out.println("Number found with value: " + $number.intValue()); retract($number); end On 17/01/2013, Wolfgang Laun <wolfgang.l...@gmail.com> wrote: > This BAD bug was introduced on the way from 5.4.0 to 5.5.0 (and seems > to have sneaked into 6.0.0 as well). > > Only 5.4.0 and predecessors work as expected. > > Damage control? How far can 5.5.0 be trusted? > > > On 17/01/2013, John Smith <ffirstt.lla...@gmail.com> 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 >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users