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

gitgabrio 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 5456bc3135 [Incubator-kie-issues#1345] It shouldn't be possible to 
add\subtract a DateTime with a number (#6040)
5456bc3135 is described below

commit 5456bc313516fa7cfa8f1042a332480a3aaae5d5
Author: bncriju <[email protected]>
AuthorDate: Mon Aug 5 14:46:08 2024 +0530

    [Incubator-kie-issues#1345] It shouldn't be possible to add\subtract a 
DateTime with a number (#6040)
    
    * Removed the addition of temporal with number and added test cases
    
    * removed unused import
    
    * replaced null object with list of null
---
 .../java/org/kie/dmn/feel/lang/ast/infixexecutors/AddExecutor.java   | 5 -----
 .../java/org/kie/dmn/feel/runtime/FEEL12ExtendedForLoopTest.java     | 4 +++-
 .../test/java/org/kie/dmn/feel/runtime/FEELDateTimeDurationTest.java | 2 ++
 .../src/test/resources/valid_models/DMNv1_5/ForLoopDatesEvaluate.dmn | 2 +-
 4 files changed, 6 insertions(+), 7 deletions(-)

diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/infixexecutors/AddExecutor.java
 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/infixexecutors/AddExecutor.java
index a7bb6c668d..6eb78856b6 100644
--- 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/infixexecutors/AddExecutor.java
+++ 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/infixexecutors/AddExecutor.java
@@ -22,7 +22,6 @@ import java.math.BigDecimal;
 import java.math.MathContext;
 import java.time.Duration;
 import java.time.LocalDate;
-import java.time.Period;
 import java.time.chrono.ChronoPeriod;
 import java.time.temporal.Temporal;
 import java.time.temporal.TemporalAmount;
@@ -90,10 +89,6 @@ public class AddExecutor implements InfixExecutor {
             if (right instanceof TemporalAmount temporalAmount) {
                 return temporal.plus(temporalAmount);
             }
-            if (right instanceof BigDecimal bigDecimal) {
-                Period toAdd = Period.ofDays(bigDecimal.intValue());
-                return temporal.plus(toAdd);
-            }
         } else if (left instanceof TemporalAmount temporalAmount) {
             if (right instanceof Temporal temporal) {
                 return temporal.plus(temporalAmount);
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEEL12ExtendedForLoopTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEEL12ExtendedForLoopTest.java
index 3b7cb5b728..2512b4294c 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEEL12ExtendedForLoopTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEEL12ExtendedForLoopTest.java
@@ -21,6 +21,7 @@ package org.kie.dmn.feel.runtime;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -48,7 +49,8 @@ public class FEEL12ExtendedForLoopTest extends BaseFEELTest {
         final Object[][] cases = new Object[][] {
           //normal:
           {"for x in [1, 2, 3] return x+1", Stream.of(1, 2, 3 ).map(x -> 
BigDecimal.valueOf(x + 1 ) ).collect(Collectors.toList() ), null},
-          {"for x in @\"2021-01-01\"..@\"2021-01-03\" return x+1", 
Stream.of("2021-01-02", "2021-01-03", "2021-01-04" 
).map(LocalDate::parse).collect(Collectors.toList() ), null},
+                {"for x in @\"2021-01-01\"..@\"2021-01-03\" return x + 
@\"P1D\"", Stream.of("2021-01-02", "2021-01-03", "2021-01-04" 
).map(LocalDate::parse).collect(Collectors.toList() ), null},
+                {"for x in @\"2021-01-01\"..@\"2021-01-03\" return x+1", 
Arrays.asList(null, null, null), FEELEvent.Severity.ERROR},
 
           //extended:
           {"for x in 1..3 return x+1", Stream.of(1, 2, 3).map(x -> 
BigDecimal.valueOf(x + 1)).collect(Collectors.toList()), null},
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELDateTimeDurationTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELDateTimeDurationTest.java
index c22d69e572..e011f32ba7 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELDateTimeDurationTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELDateTimeDurationTest.java
@@ -51,6 +51,8 @@ public class FEELDateTimeDurationTest extends BaseFEELTest {
     private static Collection<Object[]> data() {
         final Object[][] cases = new Object[][] {
                 // date/time/duration function invocations
+                { "@\"2021-01-01\" + 10", null , FEELEvent.Severity.ERROR},
+                { "@\"2021-01-01T10:10:10\" + 10", null , 
FEELEvent.Severity.ERROR},
                 { "date(\"2016-07-29\")", DateTimeFormatter.ISO_DATE.parse( 
"2016-07-29", LocalDate::from ) , null},
                 { "@\"2016-07-29\"", DateTimeFormatter.ISO_DATE.parse( 
"2016-07-29", LocalDate::from ) , null},
                 { "date(\"-0105-07-29\")", DateTimeFormatter.ISO_DATE.parse( 
"-0105-07-29", LocalDate::from ) , null}, // 105 BC
diff --git 
a/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/ForLoopDatesEvaluate.dmn
 
b/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/ForLoopDatesEvaluate.dmn
index fe6ab52dfc..a1509a0d0c 100644
--- 
a/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/ForLoopDatesEvaluate.dmn
+++ 
b/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_5/ForLoopDatesEvaluate.dmn
@@ -40,7 +40,7 @@
     <dmn:extensionElements/>
     <dmn:variable id="_4608E42A-977F-4786-AD2A-DE62804DECBA" 
name="forloopdates" typeRef="tDates"/>
     <dmn:literalExpression id="_3BC54643-D567-4148-8931-7A5892E5863F">
-      <dmn:text>for x in @"2021-01-01"..@"2021-01-03" return x+1</dmn:text>
+      <dmn:text>for x in @"2021-01-01"..@"2021-01-03" return x + 
duration("P1D")</dmn:text>
     </dmn:literalExpression>
   </dmn:decision>
   <dmndi:DMNDI>


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

Reply via email to