Thanks for all answers.Finally I found the ticket for this issue:
Despite all the great functionality in Drools, this bug makes me really afraid. I can live with bugs that throw exceptions or even crash the application. But simply returning a wrong value is the worst case I can imagine for an algorithmic library.
Is this such a special case that it has no effect in every days use? I mean, this error occurs when starting one of the examples that are part of the release, that doesn't sound like a special case to me, isn't it?
Please don't misunderstand me, I have a deep respect for the developer of such complex systems like DROOLS, and I know from my own code that bugs simply happen. But I wonder why there is still this version without any warning the official release?
Is it better to use an older version?
best regards
Stefan
2013/4/18 Mark Proctor <mproctor@codehaus.org>
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 <wolfgang.laun@gmail.com> 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 <stefan.m.schuster@gmail.com> 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 <wolfgang.laun@gmail.com>
>>
>>> IIRC, this was a bug one or two minor versions ago. What version are you
>>> using?
>>> -W
>>>
>>> On 18/04/2013, Stefan Schuster <stefan.m.schuster@gmail.com> 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 <stefan.m.schuster@gmail.com>
>>>>
>>>>> 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
>>> rules-users@lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users