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]