This is an automated email from the ASF dual-hosted git repository.

mariofusco pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git


The following commit(s) were added to refs/heads/main by this push:
     new 8d29d578e6 Little simplification in evaluation for queries (#6464)
8d29d578e6 is described below

commit 8d29d578e6a65d1b7f1803b3fca2dc2e25478159
Author: Paolo Bizzarri <[email protected]>
AuthorDate: Wed Sep 24 08:55:19 2025 +0200

    Little simplification in evaluation for queries (#6464)
---
 .../java/org/drools/core/phreak/PhreakTimerNode.java   |  4 +---
 .../org/drools/core/phreak/RuleNetworkEvaluator.java   | 18 ++++++------------
 .../org/drools/core/phreak/TupleEvaluationUtil.java    |  5 ++---
 3 files changed, 9 insertions(+), 18 deletions(-)

diff --git 
a/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java 
b/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
index fc8b7e0285..31ab2a3a9d 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
@@ -45,7 +45,6 @@ import org.drools.core.time.Job;
 import org.drools.core.time.JobContext;
 import org.drools.core.time.TimerService;
 import org.drools.core.time.impl.DefaultJobHandle;
-import org.drools.core.util.LinkedList;
 import org.drools.core.util.index.TupleList;
 import org.kie.api.definition.rule.Rule;
 import org.kie.api.runtime.Calendars;
@@ -455,8 +454,7 @@ public class PhreakTimerNode {
 
         RuleNetworkEvaluator.INSTANCE.outerEval(pmem, sink, bit, tm,
                                                 smems, smemIndex, 
trgLeftTuples,
-                                                activationsManager, new 
LinkedList<>(), true,
-                                                
pmem.getRuleAgendaItem().getRuleExecutor());
+                                                activationsManager, true, 
pmem.getRuleAgendaItem().getRuleExecutor());
     }
 
     public static class TimerNodeJobContext
diff --git 
a/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java 
b/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
index 643df2872c..335f49df2f 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
@@ -123,8 +123,6 @@ public class RuleNetworkEvaluator {
 
         LeftInputAdapterNode liaNode = (LeftInputAdapterNode) 
smem.getRootNode();
 
-        LinkedList<StackEntry> stack = new LinkedList<>();
-
         NetworkNode node;
         Memory nodeMem;
         boolean firstSegmentIsOnlyLia = liaNode == smem.getTipNode();
@@ -144,7 +142,7 @@ public class RuleNetworkEvaluator {
         if (log.isTraceEnabled()) {
             log.trace("Rule[name={}] segments={} {}", 
((TerminalNode)pmem.getPathEndNode()).getRule().getName(), smems.length, 
srcTuples.toStringSizes());
         }
-        outerEval(pmem, node, firstSegmentIsOnlyLia ? 1L : 2L, nodeMem, smems, 
firstSegmentIsOnlyLia ? 1 : 0, srcTuples, activationsManager, stack, true, 
executor);
+        outerEval(pmem, node, firstSegmentIsOnlyLia ? 1L : 2L, nodeMem, smems, 
firstSegmentIsOnlyLia ? 1 : 0, srcTuples, activationsManager, true, executor);
     }
 
     public static String indent(int size) {
@@ -183,18 +181,14 @@ public class RuleNetworkEvaluator {
                           int smemIndex,
                           TupleSets trgTuples,
                           ActivationsManager activationsManager,
-                          LinkedList<StackEntry> stack,
                           boolean processRian,
                           RuleExecutor executor) {
+
+        LinkedList<StackEntry> stack = new LinkedList<>();
         innerEval(pmem, node, bit, nodeMem, smems, smemIndex, trgTuples, 
activationsManager, stack, processRian, executor);
-        while (true) {
-            // eval
-            if (!stack.isEmpty()) {
-                StackEntry entry = stack.removeLast();
-                evalStackEntry(entry, stack, executor, activationsManager);
-            } else {
-                return; // stack is empty return;
-            }
+        while (!stack.isEmpty()) {
+            StackEntry entry = stack.removeLast();
+            evalStackEntry(entry, stack, executor, activationsManager);
         }
     }
 
diff --git 
a/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java 
b/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
index 9a0c765105..7861f0adc8 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
@@ -35,7 +35,6 @@ import org.drools.core.reteoo.PathEndNode;
 import org.drools.core.reteoo.PathMemory;
 import org.drools.core.reteoo.SegmentMemory;
 import org.drools.core.reteoo.Tuple;
-import org.drools.core.util.LinkedList;
 
 public class TupleEvaluationUtil {
     public static boolean flushLeftTupleIfNecessary(ReteEvaluator 
reteEvaluator, SegmentMemory sm, boolean streamMode) {
@@ -130,7 +129,7 @@ public class TupleEvaluationUtil {
 
         ActivationsManager activationsManager = 
pmem.getActualActivationsManager( reteEvaluator );
         RuleNetworkEvaluator.INSTANCE.outerEval(pmem, node, bit, mem, smems, 
sm.getPos(), leftTupleSets, activationsManager,
-                new LinkedList<>(),
-                true, 
rtnPmem.getOrCreateRuleAgendaItem(activationsManager).getRuleExecutor());
+                true,
+                
rtnPmem.getOrCreateRuleAgendaItem(activationsManager).getRuleExecutor());
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to