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 547e2d3246 [incubator-kie-drools-6514] kJar code generation is not 
failing when there is an unknown filed in OOPath (#6518)
547e2d3246 is described below

commit 547e2d32463c58fc8c6ec30f709af479483b94f6
Author: Toshiya Kobayashi <[email protected]>
AuthorDate: Sat Nov 15 01:10:55 2025 +0900

    [incubator-kie-drools-6514] kJar code generation is not failing when there 
is an unknown filed in OOPath (#6518)
---
 .../execmodel/generator/OOPathExprGenerator.java     |  6 ++++++
 .../model/codegen/execmodel/BaseModelTest.java       |  4 ++++
 .../drools/model/codegen/execmodel/OOPathTest.java   | 20 ++++++++++++++++++++
 3 files changed, 30 insertions(+)

diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/OOPathExprGenerator.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/OOPathExprGenerator.java
index 44c311a014..25a5e96c98 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/OOPathExprGenerator.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/generator/OOPathExprGenerator.java
@@ -33,6 +33,7 @@ import com.github.javaparser.ast.expr.NameExpr;
 import org.drools.model.codegen.execmodel.PackageModel;
 import org.drools.model.codegen.execmodel.errors.InvalidExpressionErrorResult;
 import org.drools.model.codegen.execmodel.generator.drlxparse.ConstraintParser;
+import org.drools.model.codegen.execmodel.generator.drlxparse.DrlxParseFail;
 import org.drools.model.codegen.execmodel.generator.drlxparse.DrlxParseResult;
 import org.drools.model.codegen.execmodel.generator.drlxparse.DrlxParseSuccess;
 import 
org.drools.model.codegen.execmodel.generator.drlxparse.SingleDrlxParseSuccess;
@@ -204,6 +205,11 @@ public class OOPathExprGenerator {
                     expr.setScope( patternExpr );
                     patternExpr = expr;
                 }
+            } else {
+                DrlxParseFail fail = (DrlxParseFail) drlx;
+                if (fail.getError() != null) {
+                    context.addCompilationError(fail.getError());
+                }
             }
         }
 
diff --git 
a/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/BaseModelTest.java
 
b/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/BaseModelTest.java
index f7521b02f9..bd46e08ff0 100644
--- 
a/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/BaseModelTest.java
+++ 
b/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/BaseModelTest.java
@@ -87,6 +87,10 @@ public abstract class BaseModelTest {
         return Stream.of(RUN_TYPE.STANDARD_FROM_DRL);
     }
 
+    public static Stream<RUN_TYPE> parametersPatternOnly() {
+        return Stream.of(RUN_TYPE.PATTERN_DSL);
+    }
+
     public BaseModelTest() {
     }
 
diff --git 
a/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/OOPathTest.java
 
b/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/OOPathTest.java
index 81c541a7fc..14d28234e6 100644
--- 
a/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/OOPathTest.java
+++ 
b/drools-model/drools-model-codegen/src/test/java/org/drools/model/codegen/execmodel/OOPathTest.java
@@ -30,6 +30,9 @@ import org.drools.model.codegen.execmodel.domain.Toy;
 import org.drools.model.codegen.execmodel.domain.Woman;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
+import org.kie.api.builder.KieBuilder;
+import org.kie.api.builder.Message;
+import org.kie.api.builder.Results;
 import org.kie.api.runtime.KieSession;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -478,4 +481,21 @@ public class OOPathTest extends BaseModelTest {
         assertThat(results).containsExactlyInAnyOrder("Big City", "Small 
City");
     }
 
+    @ParameterizedTest
+    @MethodSource("parameters")
+    public void testOOPathUnknownProperty(RUN_TYPE runType) {
+        final String str =
+                "import org.drools.model.codegen.execmodel.domain.*;\n" +
+                        "global java.util.List list\n" +
+                        "\n" +
+                        "rule R when\n" +
+                        " $man: Man( /wife/children[unknown > 10] )\n" +
+                        "then\n" +
+                        "  list.add( $man.getName() );\n" +
+                        "end\n";
+
+        Results results = createKieBuilder(runType, str).getResults();
+
+        assertThat(results.hasMessages(Message.Level.ERROR)).isTrue();
+    }
 }


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

Reply via email to