[rules-users] [BAD Bug]: Re: Drools Expert does not sort integers correctly

Wolfgang Laun wolfgang.laun at gmail.com
Thu Jan 17 06:38:08 EST 2013


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.llastt at 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 at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>


More information about the rules-users mailing list