We will be releasing 5.6 soon. Mark On 20 Jan 2013, at 17:26, Wolfgang Laun <wolfgang.l...@gmail.com> wrote:
> Isn't this bug hefty enough to render 5.5.0 unusable? > -W > > On 20/01/2013, Mark Proctor <mproc...@codehaus.org> wrote: >> We tracked it down to the range indexing iterator, in not and exist nodes. >> Should be fixed next week. >> >> Mark >> >> >> On 20 Jan 2013, at 08:23, Wolfgang Laun <wolfgang.l...@gmail.com> wrote: >> >>> Below is another couple of test cases, showing that the problem is not >>> due >>> a getter that isn't called get* - it's a more general problem. As far as >>> I >>> can tell this rule pattern, expecting to fire in ascending order of >>> Fact.prop, is broken in 5.5.0: >>> >>> rule "Rule xx" >>> when >>> $fact: Fact( $prop: prop ) >>> not Fact(prop < $prop) >>> then >>> System.out.println("Fact.prop: " + $prop); >>> retract($fact); >>> end >>> >>> // Test case using String >>> >>> rule init >>> salience 9999 >>> when >>> then >>> insert( "AAA" ); >>> insert( "DDD" ); >>> insert( "EEE" ); >>> insert( "CCC" ); >>> insert( "BBB" ); >>> end >>> >>> rule "Rule 05" >>> when >>> $s : String() >>> not String( this < $s) >>> then >>> System.out.println("String found with value: " + $s ); >>> retract($s); >>> end >>> >>> // Test case using declared type >>> declare Fact >>> prop : long >>> end >>> >>> rule init >>> salience 999 >>> when >>> then >>> insert( new Fact( 1 ) ); >>> insert( new Fact( 5 ) ); >>> insert( new Fact( 6 ) ); >>> insert( new Fact( 4 ) ); >>> insert( new Fact( 2 ) ); >>> end >>> >>> rule "Rule 06" >>> salience 100 >>> when >>> $fact : Fact( $prop: prop ) >>> not Fact( prop < $prop ) >>> then >>> System.out.println("Fact.prop: " + $prop); >>> retract($fact); >>> end >>> >>> On 20/01/2013, Wolfgang Laun <wolfgang.l...@gmail.com> wrote: >>>> [Sorry - the previous email "escaped" before I was complete.] >>>> >>>> This is a self-contained DRL demonstrating the erroneous handling of >>>> a condition involving Integer.intValue (same: Number.intValue), not >>>> and retract, which is meant to sort the integers. This fails with 5.5.0, >>>> but works correctly with 5.4.0 and previous versions. >>>> >>>> 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" >>>> 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 >> >> >> _______________________________________________ >> 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 _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users