There are a lot of fixes in the 5.x master. Anyone verified their bugs against this? I suspect this is fixed in that.
Mark On 18 Apr 2013, at 16:21, Wolfgang Laun <[email protected]> wrote: > Ah, my memory :-) > > http://lists.jboss.org/pipermail/rules-dev/2013-January/004338.html > > Mark has promised a fix for 3 months ago, but of course 5.5.0 remains broken. > > -W > > On 18/04/2013, Stefan Schuster <[email protected]> wrote: >> 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 _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
