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]