[rules-dev] Evil bug in 5.4.0: wrong fact selected by simple constraint due to window:length()

Wolfgang Laun wolfgang.laun at gmail.com
Sat Jun 23 06:23:48 EDT 2012


It should be pretty obvious that the rule should not fire after the
insertion of a single fact.

declare MyEvent
@role(event)
end

rule FaultsCoincide
when
    f1 : MyEvent( key == "type1" ) over window:length( 1 )
    f2 : MyEvent( key == "type2" ) over window:length( 1 )
then
    System.out.println( ">>> f1=" + f1 + " f2=" + f2 );
    if( f2.getKey().equals( "type1" ) ) System.out.println( "*** BUG ***" );
end

insert MyEvent<type1,ALARM>
>>> f1=MyEvent<type1,ALARM> f2=MyEvent<type1,ALARM>
*** BUG ***
insert MyEvent<type2,ALARM>
>>> f1=MyEvent<type2,ALARM> f2=MyEvent<type2,ALARM>
>>> f1=MyEvent<type2,ALARM> f2=MyEvent<type1,ALARM>
*** BUG ***


More information about the rules-dev mailing list