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]