I just fixed this bug on the master and backported it on the 5.5.x branch.<br>Wolfgang, thanks again for your help.<br><br>Mario<br><br><div class="gmail_quote">On Sun, Jan 20, 2013 at 9:23 AM, Wolfgang Laun <span dir="ltr">&lt;<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Below is another couple of test cases, showing that the problem is not due<br>
a getter that isn&#39;t called get* - it&#39;s a more general problem. As far as I<br>
can tell this rule pattern, expecting to fire in ascending order of<br>
Fact.prop, is broken in 5.5.0:<br>
<br>
rule &quot;Rule xx&quot;<br>
when<br>
    $fact: Fact( $prop: prop )<br>
    not Fact(prop &lt; $prop)<br>
then<br>
    System.out.println(&quot;Fact.prop: &quot; + $prop);<br>
    retract($fact);<br>
end<br>
<br>
// Test case using String<br>
<div class="im"><br>
rule init<br>
salience 9999<br>
when<br>
then<br>
</div>    insert( &quot;AAA&quot; );<br>
    insert( &quot;DDD&quot; );<br>
    insert( &quot;EEE&quot; );<br>
    insert( &quot;CCC&quot; );<br>
    insert( &quot;BBB&quot; );<br>
end<br>
<br>
rule &quot;Rule 05&quot;<br>
when<br>
    $s : String()<br>
    not String( this &lt; $s)<br>
then<br>
    System.out.println(&quot;String found with value: &quot; + $s );<br>
    retract($s);<br>
end<br>
<br>
// Test case using declared type<br>
declare Fact<br>
  prop : long<br>
end<br>
<br>
rule init<br>
salience 999<br>
when<br>
then<br>
    insert( new Fact( 1 ) );<br>
    insert( new Fact( 5 ) );<br>
    insert( new Fact( 6 ) );<br>
    insert( new Fact( 4 ) );<br>
    insert( new Fact( 2 ) );<br>
end<br>
<br>
rule &quot;Rule 06&quot;<br>
salience 100<br>
when<br>
    $fact : Fact( $prop: prop )<br>
    not Fact( prop &lt; $prop )<br>
then<br>
    System.out.println(&quot;Fact.prop: &quot; + $prop);<br>
    retract($fact);<br>
end<br>
<div class="HOEnZb"><div class="h5"><br>
On 20/01/2013, Wolfgang Laun &lt;<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>&gt; wrote:<br>
&gt; [Sorry - the previous email &quot;escaped&quot; before I was complete.]<br>
&gt;<br>
&gt; This is a self-contained DRL demonstrating the erroneous handling of<br>
&gt; a condition involving Integer.intValue (same: Number.intValue), not<br>
&gt; and retract, which is meant to sort the integers. This fails with 5.5.0,<br>
&gt; but works correctly with 5.4.0 and previous versions.<br>
&gt;<br>
&gt; rule init<br>
&gt; salience 9999<br>
&gt; when<br>
&gt; then<br>
&gt;     insert( Integer.valueOf( 10 ) );<br>
&gt;     insert( Integer.valueOf( 50 ) );<br>
&gt;     insert( Integer.valueOf( 60 ) );<br>
&gt;     insert( Integer.valueOf( 40 ) );<br>
&gt;     insert( Integer.valueOf( 20 ) );<br>
&gt; end<br>
&gt;<br>
&gt; rule &quot;Rule 04&quot;<br>
&gt; when<br>
&gt;     $number : Integer( $i: intValue )<br>
&gt;     not Integer(intValue &lt; $i)<br>
&gt; then<br>
&gt;     System.out.println(&quot;Number found with value: &quot; + $number.intValue());<br>
&gt;     retract($number);<br>
&gt; end<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 17/01/2013, Wolfgang Laun &lt;<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; This BAD bug was introduced on the way from 5.4.0 to 5.5.0 (and seems<br>
&gt;&gt;&gt; to have sneaked into 6.0.0 as well).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Only 5.4.0 and predecessors work as expected.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Damage control? How far can 5.5.0 be trusted?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On 17/01/2013, John Smith &lt;<a href="mailto:ffirstt.llastt@gmail.com">ffirstt.llastt@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; I am new to Drools and am trying to get the sample program to work.<br>
&gt;&gt;&gt;&gt; This<br>
&gt;&gt;&gt;&gt; sample is given in the drools documentation<br>
&gt;&gt;&gt;&gt; <a href="http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/index.html#d0e9542" target="_blank">http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/index.html#d0e9542</a>.<br>

&gt;&gt;&gt;&gt; This drool rule is expected to sort integers. I just changed the<br>
&gt;&gt;&gt;&gt; numbers<br>
&gt;&gt;&gt;&gt; from what are given in the sample and they do not get sorted as<br>
&gt;&gt;&gt;&gt; expected.<br>
&gt;&gt;&gt;&gt; Tried using drools version 5.5.0, 5.5.1 and the master 6.0.0, but got<br>
&gt;&gt;&gt;&gt; the<br>
&gt;&gt;&gt;&gt; same wrong results.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Following is the main code:<br>
&gt;&gt;&gt;&gt;     package com.sample;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     public class Example2 {<br>
&gt;&gt;&gt;&gt;       public static void main(String[] args) throws Exception {<br>
&gt;&gt;&gt;&gt;         Number[] numbers = new Number[] { wrap(5), wrap(6), wrap(4),<br>
&gt;&gt;&gt;&gt; wrap(1), wrap(2) };<br>
&gt;&gt;&gt;&gt;         new RuleRunner().runRules(new String[] { &quot;Example3.drl&quot; },<br>
&gt;&gt;&gt;&gt; numbers);<br>
&gt;&gt;&gt;&gt;       }<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;       private static Integer wrap(int i) {<br>
&gt;&gt;&gt;&gt;         return new Integer(i);<br>
&gt;&gt;&gt;&gt;       }<br>
&gt;&gt;&gt;&gt;     }<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;  The RuleRunner class is the same as given in the example and I do not<br>
&gt;&gt;&gt;&gt; think<br>
&gt;&gt;&gt;&gt; I should give that here, since it will clutter the question. It simply<br>
&gt;&gt;&gt;&gt; creates the KnowledgeBase, stateful session, inserts the facts as given<br>
&gt;&gt;&gt;&gt; in<br>
&gt;&gt;&gt;&gt; the &#39;numbers&#39; array above and then calls fireAllRules method on the<br>
&gt;&gt;&gt;&gt; session.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; The rule file (Example3.drl) is:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;  rule &quot;Rule 04&quot;<br>
&gt;&gt;&gt;&gt;      dialect &quot;mvel&quot;<br>
&gt;&gt;&gt;&gt;    when<br>
&gt;&gt;&gt;&gt;      $number : Number()<br>
&gt;&gt;&gt;&gt;      not Number(intValue &lt; $number.intValue)<br>
&gt;&gt;&gt;&gt;    then<br>
&gt;&gt;&gt;&gt;      System.out.println(&quot;Number found with value: &quot; +<br>
&gt;&gt;&gt;&gt; $number.intValue());<br>
&gt;&gt;&gt;&gt;      retract($number);<br>
&gt;&gt;&gt;&gt;  end<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; The output I get is as follows:<br>
&gt;&gt;&gt;&gt; Loading file: Example3.drl<br>
&gt;&gt;&gt;&gt; Inserting fact: 5<br>
&gt;&gt;&gt;&gt; Inserting fact: 6<br>
&gt;&gt;&gt;&gt; Inserting fact: 4<br>
&gt;&gt;&gt;&gt; Inserting fact: 1<br>
&gt;&gt;&gt;&gt; Inserting fact: 2<br>
&gt;&gt;&gt;&gt; Number found with value: 1<br>
&gt;&gt;&gt;&gt; Number found with value: 4<br>
&gt;&gt;&gt;&gt; Number found with value: 2<br>
&gt;&gt;&gt;&gt; Number found with value: 5<br>
&gt;&gt;&gt;&gt; Number found with value: 6<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Not the correct expected ascending sorted order.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; What might I be doing wrong? I cannot imagine that the drools rule<br>
&gt;&gt;&gt;&gt; engine<br>
&gt;&gt;&gt;&gt; would be broken at this basic level.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; View this message in context:<br>
&gt;&gt;&gt;&gt; <a href="http://drools.46999.n3.nabble.com/Drools-Expert-does-not-sort-integers-correctly-tp4021606.html" target="_blank">http://drools.46999.n3.nabble.com/Drools-Expert-does-not-sort-integers-correctly-tp4021606.html</a><br>

&gt;&gt;&gt;&gt; Sent from the Drools: User forum mailing list archive at Nabble.com.<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; rules-users mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
_______________________________________________<br>
rules-dev mailing list<br>
<a href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
</div></div></blockquote></div><br>