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