<div dir="ltr">It seams that I&#39;m not the first one with thie problem, an equal question was there a several months ago:<br><div><a href="http://drools.46999.n3.nabble.com/rules-users-Banking-Example-4-to-6-sorting-incorrect-tt4021041.html#none">http://drools.46999.n3.nabble.com/rules-users-Banking-Example-4-to-6-sorting-incorrect-tt4021041.html#none</a></div>
<div><br></div><div style>but there was no answer. Maybe someone has an idea today? <br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/18 Stefan Schuster <span dir="ltr">&lt;<a href="mailto:stefan.m.schuster@gmail.com" target="_blank">stefan.m.schuster@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi, thank you for your response.<div>I&#39;m using the latest stable release of Drools 5.5.0 final.</div>
<div>Eclipse is Juno Service Release 2.</div><div><br></div><div>Can you confirm, that the order 1,2,3 is the expected result?</div>
<div><br></div><div>If this is a known bug, is there some kind of jira or bugzilla numer assigned to it?</div><div> </div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">
2013/4/18 Wolfgang Laun <span dir="ltr">&lt;<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">IIRC, this was a bug one or two minor versions ago. What version are you using?<br>
-W<br>
<div><div><br>
On 18/04/2013, Stefan Schuster &lt;<a href="mailto:stefan.m.schuster@gmail.com" target="_blank">stefan.m.schuster@gmail.com</a>&gt; wrote:<br>
&gt; For the sake of  completeness, here is also the RuleRunner class used in<br>
&gt; this example:<br>
&gt;<br>
&gt; package org.drools.tutorials.banking;<br>
&gt;<br>
&gt; import java.util.Collection;<br>
&gt;<br>
&gt; import org.drools.KnowledgeBase;<br>
&gt; import org.drools.KnowledgeBaseFactory;<br>
&gt; import org.drools.builder.KnowledgeBuilder;<br>
&gt; import org.drools.builder.KnowledgeBuilderFactory;<br>
&gt; import org.drools.builder.ResourceType;<br>
&gt; import org.drools.definition.KnowledgePackage;<br>
&gt; import org.drools.io.ResourceFactory;<br>
&gt; import org.drools.runtime.StatefulKnowledgeSession;<br>
&gt;<br>
&gt; public class RuleRunner {<br>
&gt;<br>
&gt;     public RuleRunner() {<br>
&gt;     }<br>
&gt;<br>
&gt;     public void runRules(String[] rules,<br>
&gt;                          Object[] facts) {<br>
&gt;<br>
&gt;         KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();<br>
&gt;         KnowledgeBuilder kbuilder =<br>
&gt; KnowledgeBuilderFactory.newKnowledgeBuilder();<br>
&gt;<br>
&gt;         for ( int i = 0; i &lt; rules.length; i++ ) {<br>
&gt;             String ruleFile = rules[i];<br>
&gt;             System.out.println( &quot;Loading file: &quot; + ruleFile );<br>
&gt;             kbuilder.add( ResourceFactory.newClassPathResource( ruleFile,<br>
&gt;<br>
&gt; RuleRunner.class ),<br>
&gt;                                   ResourceType.DRL );<br>
&gt;         }<br>
&gt;<br>
&gt;         Collection&lt;KnowledgePackage&gt; pkgs =<br>
&gt; kbuilder.getKnowledgePackages();<br>
&gt;         kbase.addKnowledgePackages( pkgs );<br>
&gt;         StatefulKnowledgeSession ksession =<br>
&gt; kbase.newStatefulKnowledgeSession();<br>
&gt;<br>
&gt;         for ( int i = 0; i &lt; facts.length; i++ ) {<br>
&gt;             Object fact = facts[i];<br>
&gt;             System.out.println( &quot;Inserting fact: &quot; + fact );<br>
&gt;             ksession.insert( fact );<br>
&gt;         }<br>
&gt;<br>
&gt;         ksession.fireAllRules();<br>
&gt;     }<br>
&gt; }<br>
&gt;<br>
&gt;<br>
&gt; 2013/4/18 Stefan Schuster &lt;<a href="mailto:stefan.m.schuster@gmail.com" target="_blank">stefan.m.schuster@gmail.com</a>&gt;<br>
&gt;<br>
&gt;&gt; Hello,<br>
&gt;&gt;<br>
&gt;&gt; I have a problem with the banking tutorial number 3, which is part of the<br>
&gt;&gt; examples of drools expert.<br>
&gt;&gt; It simply adds some Numbers as facts, and retracts them in an increasing<br>
&gt;&gt; order.<br>
&gt;&gt;<br>
&gt;&gt; It is very short, therefore I post the whole Code:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; BankingExample3.java<br>
&gt;&gt; _________________________________________________<br>
&gt;&gt; package org.drools.tutorials.banking;<br>
&gt;&gt;<br>
&gt;&gt; public class BankingExample3 {<br>
&gt;&gt;     public static void main(String[] args) {<br>
&gt;&gt;         Number[] numbers = new Number[] {wrap(3), wrap(1), wrap(4),<br>
&gt;&gt; wrap(1), wrap(5)};<br>
&gt;&gt;         new RuleRunner().runRules( new String[] { &quot;Example3.drl&quot; },<br>
&gt;&gt;                                    numbers );<br>
&gt;&gt;     }<br>
&gt;&gt;<br>
&gt;&gt;     private static Integer wrap(int i) {<br>
&gt;&gt;         return new Integer(i);<br>
&gt;&gt;     }<br>
&gt;&gt; }<br>
&gt;&gt; _________________________________________________<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Example3.drl:<br>
&gt;&gt; _________________________________________________<br>
&gt;&gt; package org.drools.tutorials.banking<br>
&gt;&gt;<br>
&gt;&gt; rule &quot;Rule 01&quot;<br>
&gt;&gt;     when<br>
&gt;&gt;         $number : Number()<br>
&gt;&gt;         not Number( intValue &lt; $number.intValue )<br>
&gt;&gt;     then<br>
&gt;&gt;         System.out.println(&quot;Number found with value: &quot; +<br>
&gt;&gt; $number.intValue() );<br>
&gt;&gt;         retract( $number );<br>
&gt;&gt; end<br>
&gt;&gt; _________________________________________________<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Output:<br>
&gt;&gt; _________________________________________________<br>
&gt;&gt; Loading file: Example3.drl<br>
&gt;&gt; Inserting fact: 3<br>
&gt;&gt; Inserting fact: 1<br>
&gt;&gt; Inserting fact: 4<br>
&gt;&gt; Inserting fact: 1<br>
&gt;&gt; Inserting fact: 5<br>
&gt;&gt; Number found with value: 1<br>
&gt;&gt; Number found with value: 1<br>
&gt;&gt; Number found with value: 3<br>
&gt;&gt; Number found with value: 4<br>
&gt;&gt; Number found with value: 5<br>
&gt;&gt; _________________________________________________<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; that seams absolute logically to me.<br>
&gt;&gt; But now I alter the Numbers in the Java-Part:<br>
&gt;&gt;  Number[] numbers = new Number[] {wrap(3), wrap(1), wrap(2)};<br>
&gt;&gt;<br>
&gt;&gt; and the output destroys everything I thought I understood:<br>
&gt;&gt; Loading file: Example3.drl<br>
&gt;&gt; Inserting fact: 3<br>
&gt;&gt; Inserting fact: 1<br>
&gt;&gt; Inserting fact: 2<br>
&gt;&gt; Number found with value: 1<br>
&gt;&gt; Number found with value: 3<br>
&gt;&gt; Number found with value: 2<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Can someone  reproduce this behavior?? It seams absolutely strange to me.<br>
&gt;&gt; I would have expected the order 1,2,3. Any explanations?<br>
&gt;&gt;<br>
&gt;&gt; Thanks in advance for helping me!<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
</div></div>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>