-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
None
If you have a rule with both noloop and update where there are multiple matches on the LHS, the RHS only runs for first match instead of running for all matches. The following example shows the problem:
@Test public void testMultipleNoLoop1() { String str = "import org.drools.compiler.Person\n" + "rule R no-loop\n" + "when\n" + " String()\n" + " $p : Person( $age : age )\n" + "then\n" + " modify($p) { setAge( $age + 1 ) }\n" + "end\n"; KnowledgeBase kbase = loadKnowledgeBaseFromString(str); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); Person mario = new Person("Mario", 38); ksession.insert("a"); ksession.insert("b"); ksession.insert(mario); ksession.fireAllRules(); assertEquals(40, mario.getAge()); }