One question do you get different reslts if you do the folowing for the first rule:

Message(  message == "somethingDifferent" ) # this should never match

All I did was eliminate the eval and the explicit call to equals

On Nov 21, 2007 4:05 AM, Michal Bali <michalbali@yahoo.ie> wrote:
Hi,

I have following rule that should never fire, but it does :)

package com.sample
import com.sample.DroolsTest.* ;
rule "ruleThatShouldNeverFire"
       when
               Message(  eval("somethingDifferent".equals(message)) ) # this should never match
               SomeBeanA( ) or SomeBeanB( )
       then
               System.out.println( drools.getRule().getName() + " fired and shouldn't" );
end

stateful ruleSession with following insertions:
           Message message = new Message();
           message.setMessage(  "Hello World" );
           workingMemory.insert( message );
           workingMemory.insert( new SomeBeanA() );
           workingMemory.insert( new SomeBeanB() );

It behaves the same way if we use predicates or retun values:
           #Message(  msg : message -> ("somethingDifferent".equals (msg)) ) # this should never match
           #Message(  message == ("somethingDifferent".equals (message)) ) # this should never match

It looks like the AlphaNode is missing from the Rete network.

Tested with Drools 4.0.3. Java build 1.5.0_11-b03.

Any ideas if this is a bug or am I doing something wrong?

Thanks.
Regards,
Michal

Send instant messages to your online friends http://uk.messenger.yahoo.com

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users