I've created a sample Drools project and replaced the Sample.drl with the following:
package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
when
forall( Message( )
Message() )
then
System.out.println("executed");
end
--------------------------------------------
If I run the sample application like this everything is fine - "executed" is printed. However, if I modify the main method and insert some additional fact just before the message fact is inserted, like this:
--DroolsTest.java-----------------------------------
.....
ksession.insert(new Object());
ksession.insert(message);
.....
-----------------------------------------------------------
then the rule won't fire any more.
Please note that if you change the fact insertion order (first the message then the Object) it will work as expected.
Is this a bug or am I missing something? I can file a JIRA if needed.
Thank you!
Best regards,
Michal