This is an automated email from the ASF dual-hosted git repository.
yesamer 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 d271f6747c2 [incubator-kie-issues#2260] fix date time conversion issue
(#6789)
d271f6747c2 is described below
commit d271f6747c27ed3d6af77d3d0319d5d4c6c02365
Author: AthiraHari77 <[email protected]>
AuthorDate: Tue Jun 30 20:57:36 2026 +0530
[incubator-kie-issues#2260] fix date time conversion issue (#6789)
Co-authored-by: athira <[email protected]>
---
.../java/org/kie/dmn/core/util/CoerceUtilTest.java | 23 +++++-----
.../org/kie/dmn/feel/util/DateTimeEvalHelper.java | 4 +-
.../java/org/kie/dmn/feel/util/CoerceUtilTest.java | 51 +++++++++++-----------
3 files changed, 39 insertions(+), 39 deletions(-)
diff --git
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/util/CoerceUtilTest.java
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/util/CoerceUtilTest.java
index c9a77c9ae20..ab0d5c8468d 100644
---
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/util/CoerceUtilTest.java
+++
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/util/CoerceUtilTest.java
@@ -21,15 +21,14 @@ package org.kie.dmn.core.util;
import java.math.BigDecimal;
import java.time.LocalDate;
-import java.time.LocalDateTime;
import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
import java.util.Collections;
import org.junit.jupiter.api.Test;
import org.kie.dmn.api.core.DMNType;
import org.kie.dmn.core.impl.SimpleTypeImpl;
import org.kie.dmn.feel.lang.types.BuiltInType;
+import org.kie.dmn.feel.runtime.custom.FormattedZonedDateTime;
import static org.assertj.core.api.Assertions.assertThat;
@@ -112,14 +111,14 @@ class CoerceUtilTest {
BuiltInType.DATE_TIME);
Object retrieved = CoerceUtil.coerceValue(requiredType, value);
assertThat(retrieved).isNotNull();
- assertThat(retrieved).isInstanceOf(ZonedDateTime.class);
- ZonedDateTime zdtRetrieved = (ZonedDateTime)retrieved;
+ assertThat(retrieved).isInstanceOf(FormattedZonedDateTime.class);
+ FormattedZonedDateTime zdtRetrieved =
(FormattedZonedDateTime)retrieved;
assertThat(zdtRetrieved.toLocalDate()).isEqualTo(value);
assertThat(zdtRetrieved.getOffset()).isEqualTo(ZoneOffset.UTC);
- assertThat(zdtRetrieved.getHour()).isEqualTo(0);
- assertThat(zdtRetrieved.getMinute()).isEqualTo(0);
- assertThat(zdtRetrieved.getSecond()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getHour()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getMinute()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getSecond()).isEqualTo(0);
}
@Test
@@ -206,13 +205,13 @@ class CoerceUtilTest {
BuiltInType.DATE_TIME);
Object retrieved = CoerceUtil.actualCoerceValue(requiredType, value);
assertThat(retrieved).isNotNull();
- assertThat(retrieved).isInstanceOf(ZonedDateTime.class);
- ZonedDateTime zdtRetrieved = (ZonedDateTime)retrieved;
+ assertThat(retrieved).isInstanceOf(FormattedZonedDateTime.class);
+ FormattedZonedDateTime zdtRetrieved =
(FormattedZonedDateTime)retrieved;
assertThat(zdtRetrieved.toLocalDate()).isEqualTo(value);
assertThat(zdtRetrieved.getOffset()).isEqualTo(ZoneOffset.UTC);
- assertThat(zdtRetrieved.getHour()).isEqualTo(0);
- assertThat(zdtRetrieved.getMinute()).isEqualTo(0);
- assertThat(zdtRetrieved.getSecond()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getHour()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getMinute()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getSecond()).isEqualTo(0);
}
@Test
diff --git
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/util/DateTimeEvalHelper.java
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/util/DateTimeEvalHelper.java
index ca5cd7f6fea..bbbc7625f24 100644
---
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/util/DateTimeEvalHelper.java
+++
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/util/DateTimeEvalHelper.java
@@ -33,8 +33,8 @@ import org.slf4j.LoggerFactory;
public class DateTimeEvalHelper {
public static final Logger LOG =
LoggerFactory.getLogger(DateTimeEvalHelper.class);
- public static ZonedDateTime coerceDateTime(final LocalDate value) {
- return ZonedDateTime.of(value, LocalTime.of(0, 0, 0, 0),
ZoneOffset.UTC);
+ public static FormattedZonedDateTime coerceDateTime(final LocalDate value)
{
+ return FormattedZonedDateTime.of(value, LocalTime.of(0, 0, 0, 0),
ZoneOffset.UTC);
}
public static String toParsableString(TemporalAccessor temporalAccessor) {
diff --git
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/CoerceUtilTest.java
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/CoerceUtilTest.java
index 5fb1630baa8..77fc33e8d7f 100644
---
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/CoerceUtilTest.java
+++
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/CoerceUtilTest.java
@@ -30,6 +30,7 @@ import java.util.Set;
import org.junit.jupiter.api.Test;
import org.kie.dmn.feel.lang.types.BuiltInType;
+import org.kie.dmn.feel.runtime.custom.FormattedZonedDateTime;
import static org.assertj.core.api.Assertions.assertThat;
@@ -66,13 +67,13 @@ class CoerceUtilTest {
retrieved = CoerceUtil.coerceParam(currentIdxActualParameterType,
expectedParameterType, actualObject);
assertThat(retrieved).isNotNull();
assertThat(retrieved).isPresent();
- assertThat(retrieved.get() instanceof ZonedDateTime).isTrue();
- ZonedDateTime zdtRetrieved = (ZonedDateTime) retrieved.get();
+ assertThat(retrieved.get() instanceof FormattedZonedDateTime).isTrue();
+ FormattedZonedDateTime zdtRetrieved = (FormattedZonedDateTime)
retrieved.get();
assertThat(zdtRetrieved.toLocalDate()).isEqualTo(actualObject);
assertThat(zdtRetrieved.getOffset()).isEqualTo(ZoneOffset.UTC);
- assertThat(zdtRetrieved.getHour()).isEqualTo(0);
- assertThat(zdtRetrieved.getMinute()).isEqualTo(0);
- assertThat(zdtRetrieved.getSecond()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getHour()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getMinute()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getSecond()).isEqualTo(0);
}
@Test
@@ -80,13 +81,13 @@ class CoerceUtilTest {
Object value = LocalDate.now();
Object retrieved = CoerceUtil.coerceParameter(BuiltInType.DATE_TIME,
value);
assertThat(retrieved).isNotNull();
- assertThat(retrieved).isInstanceOf(ZonedDateTime.class);
- ZonedDateTime zdtRetrieved = (ZonedDateTime) retrieved;
+ assertThat(retrieved).isInstanceOf(FormattedZonedDateTime.class);
+ FormattedZonedDateTime zdtRetrieved = (FormattedZonedDateTime)
retrieved;
assertThat(zdtRetrieved.toLocalDate()).isEqualTo(value);
assertThat(zdtRetrieved.getOffset()).isEqualTo(ZoneOffset.UTC);
- assertThat(zdtRetrieved.getHour()).isEqualTo(0);
- assertThat(zdtRetrieved.getMinute()).isEqualTo(0);
- assertThat(zdtRetrieved.getSecond()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getHour()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getMinute()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getSecond()).isEqualTo(0);
}
@Test
@@ -120,13 +121,13 @@ class CoerceUtilTest {
assertThat(retrieved).isNotNull();
assertThat(retrieved).isPresent();
retrievedObjects = retrieved.get();
- assertThat(retrievedObjects[0]).isInstanceOf(ZonedDateTime.class);
- ZonedDateTime zdtRetrieved = (ZonedDateTime) retrievedObjects[0];
+
assertThat(retrievedObjects[0]).isInstanceOf(FormattedZonedDateTime.class);
+ FormattedZonedDateTime zdtRetrieved = (FormattedZonedDateTime)
retrievedObjects[0];
assertThat(zdtRetrieved.toLocalDate()).isEqualTo(item);
assertThat(zdtRetrieved.getOffset()).isEqualTo(ZoneOffset.UTC);
- assertThat(zdtRetrieved.getHour()).isEqualTo(0);
- assertThat(zdtRetrieved.getMinute()).isEqualTo(0);
- assertThat(zdtRetrieved.getSecond()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getHour()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getMinute()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getSecond()).isEqualTo(0);
assertThat(retrievedObjects[1]).isEqualTo(actualParams2[1]);
}
@@ -138,13 +139,13 @@ class CoerceUtilTest {
assertThat(retrieved).isNotNull();
assertThat(retrieved).isPresent();
Object[] retrievedObjects = retrieved.get();
- assertThat(retrievedObjects[0]).isInstanceOf(ZonedDateTime.class);
- ZonedDateTime zdtRetrieved = (ZonedDateTime) retrievedObjects[0];
+
assertThat(retrievedObjects[0]).isInstanceOf(FormattedZonedDateTime.class);
+ FormattedZonedDateTime zdtRetrieved = (FormattedZonedDateTime)
retrievedObjects[0];
assertThat(zdtRetrieved.toLocalDate()).isEqualTo(value);
assertThat(zdtRetrieved.getOffset()).isEqualTo(ZoneOffset.UTC);
- assertThat(zdtRetrieved.getHour()).isEqualTo(0);
- assertThat(zdtRetrieved.getMinute()).isEqualTo(0);
- assertThat(zdtRetrieved.getSecond()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getHour()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getMinute()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getSecond()).isEqualTo(0);
assertThat(retrievedObjects[1]).isEqualTo(actualParams[1]);
}
@@ -169,13 +170,13 @@ class CoerceUtilTest {
Object value = LocalDate.now();
Object retrieved =
CoerceUtil.actualCoerceParameter(BuiltInType.DATE_TIME, value);
assertThat(retrieved).isNotNull();
- assertThat(retrieved).isInstanceOf(ZonedDateTime.class);
- ZonedDateTime zdtRetrieved = (ZonedDateTime) retrieved;
+ assertThat(retrieved).isInstanceOf(FormattedZonedDateTime.class);
+ FormattedZonedDateTime zdtRetrieved = (FormattedZonedDateTime)
retrieved;
assertThat(zdtRetrieved.toLocalDate()).isEqualTo(value);
assertThat(zdtRetrieved.getOffset()).isEqualTo(ZoneOffset.UTC);
- assertThat(zdtRetrieved.getHour()).isEqualTo(0);
- assertThat(zdtRetrieved.getMinute()).isEqualTo(0);
- assertThat(zdtRetrieved.getSecond()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getHour()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getMinute()).isEqualTo(0);
+ assertThat(zdtRetrieved.getZonedDateTime().getSecond()).isEqualTo(0);
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]