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 ac50f75c39 [incubator-kie-issues-6472] Make exec‑model consequence 
argument order deterministic (#6473)
ac50f75c39 is described below

commit ac50f75c39b97d46e109f96e7bd6e11f44feae32
Author: Haotian Wu <[email protected]>
AuthorDate: Wed Oct 8 02:19:10 2025 -0500

    [incubator-kie-issues-6472] Make exec‑model consequence argument order 
deterministic (#6473)
    
    * [incubator-kie-drools-6472] Make exec‑model consequence argument order 
deterministic
    
    * [incubator-kie-issues-6472] collect used declarations into LinkedHashSet
---
 .../org/drools/model/codegen/execmodel/generator/Consequence.java  | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/Consequence.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/Consequence.java
index 53cd3b2718..a15816f350 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/Consequence.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/Consequence.java
@@ -23,6 +23,8 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.LinkedHashSet;
+import java.util.stream.Collectors;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
@@ -67,6 +69,7 @@ import org.drools.util.StringUtils;
 
 import static com.github.javaparser.StaticJavaParser.parseExpression;
 import static java.util.stream.Collectors.toSet;
+import static java.util.stream.Collectors.toCollection;
 import static 
org.drools.model.codegen.execmodel.PackageModel.DOMAIN_CLASSESS_METADATA_FILE_NAME;
 import static 
org.drools.model.codegen.execmodel.PackageModel.DOMAIN_CLASS_METADATA_INSTANCE;
 import static 
org.drools.model.codegen.execmodel.generator.DrlxParseUtil.addCurlyBracesToBlock;
@@ -265,10 +268,10 @@ public class Consequence {
         }
 
         if (context.getRuleDialect() == RuleContext.RuleDialect.MVEL) {
-            return existingDecls.stream().filter(d -> containsWord(d, 
consequenceString)).collect(toSet());
+            return existingDecls.stream().filter(d -> containsWord(d, 
consequenceString)).collect(toCollection(LinkedHashSet::new));
         } else if (ruleConsequence != null) {
             Set<String> declUsedInRHS = 
ruleConsequence.findAll(NameExpr.class).stream().map(NameExpr::getNameAsString).collect(toSet());
-            return 
existingDecls.stream().filter(declUsedInRHS::contains).collect(toSet());
+            return 
existingDecls.stream().filter(declUsedInRHS::contains).collect(Collectors.toCollection(LinkedHashSet::new));
         }
 
         throw new IllegalArgumentException("Unknown rule dialect " + 
context.getRuleDialect() + "!");


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

Reply via email to