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

tzimanyi 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 250b346a12 [kie-issues#1410] Fix type check for decision service input 
parameters. (#6133)
250b346a12 is described below

commit 250b346a12f2fb1deb1883f38526db01306ced98
Author: Tibor Zimányi <[email protected]>
AuthorDate: Tue Oct 22 13:11:54 2024 +0200

    [kie-issues#1410] Fix type check for decision service input parameters. 
(#6133)
---
 .../core/ast/DMNDecisionServiceFunctionDefinitionEvaluator.java   | 8 ++++++--
 .../kie/dmn/core/decisionservices/DMNDecisionServicesTest.java    | 4 ++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git 
a/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/ast/DMNDecisionServiceFunctionDefinitionEvaluator.java
 
b/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/ast/DMNDecisionServiceFunctionDefinitionEvaluator.java
index 00c2c0f50f..99700adc60 100644
--- 
a/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/ast/DMNDecisionServiceFunctionDefinitionEvaluator.java
+++ 
b/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/ast/DMNDecisionServiceFunctionDefinitionEvaluator.java
@@ -160,7 +160,7 @@ public class DMNDecisionServiceFunctionDefinitionEvaluator 
implements DMNExpress
                                                            
dsFormalParameter.type,
                                                            typeCheck,
                                                            (rx, tx) -> 
MsgUtil.reportMessage(LOG,
-                                                                               
              DMNMessage.Severity.WARN,
+                                                                               
              DMNMessage.Severity.ERROR,
                                                                                
              null,
                                                                                
              resultContext,
                                                                                
              null,
@@ -169,7 +169,11 @@ public class DMNDecisionServiceFunctionDefinitionEvaluator 
implements DMNExpress
                                                                                
              dsFormalParameter.name,
                                                                                
              tx,
                                                                                
              MsgUtil.clipString(rx.toString(), 50)));
-            return result;
+            if (param != null && result == null) {
+                throw new IllegalArgumentException("Parameter " + param + " 
cannot be assigned to parameter of type " + dsFormalParameter.type + "!");
+            } else {
+                return result;
+            }
         }
 
         @Override
diff --git 
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/decisionservices/DMNDecisionServicesTest.java
 
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/decisionservices/DMNDecisionServicesTest.java
index 69be0798dd..a98a5d1ea9 100644
--- 
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/decisionservices/DMNDecisionServicesTest.java
+++ 
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/decisionservices/DMNDecisionServicesTest.java
@@ -633,8 +633,8 @@ public class DMNDecisionServicesTest extends 
BaseInterpretedVsCompiledTest {
         final DMNResult dmnResult = runtime.evaluateAll(dmnModel, 
emptyContext);
         LOG.debug("{}", dmnResult);
         dmnResult.getDecisionResults().forEach(x -> LOG.debug("{}", x));
-        
assertThat(dmnResult.hasErrors()).as(DMNRuntimeUtil.formatMessages(dmnResult.getMessages())).isFalse();
-        assertThat((Map<String, Object>) dmnResult.getDecisionResultByName("my 
invoke DS1").getResult()).containsEntry("outDS1", true);
+        
assertThat(dmnResult.hasErrors()).as(DMNRuntimeUtil.formatMessages(dmnResult.getMessages())).isTrue();
+        assertThat((Map<String, Object>) dmnResult.getDecisionResultByName("my 
invoke DS1").getResult()).isNull();
     }
 
     @ParameterizedTest


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

Reply via email to