You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by wa...@apache.org on 2023/04/19 07:52:32 UTC

[incubator-seatunnel] branch dev updated: [Bug][CDC] Fix TemporalConversions (#4542)

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

wanghailin pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new d2094bf2e [Bug][CDC] Fix TemporalConversions (#4542)
d2094bf2e is described below

commit d2094bf2e19de2bb8c6a7eb06b438982d5cb8e38
Author: hailin0 <wa...@apache.org>
AuthorDate: Wed Apr 19 15:52:26 2023 +0800

    [Bug][CDC] Fix TemporalConversions (#4542)
---
 .../connectors/cdc/debezium/utils/TemporalConversions.java          | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/seatunnel-connectors-v2/connector-cdc/connector-cdc-base/src/main/java/org/apache/seatunnel/connectors/cdc/debezium/utils/TemporalConversions.java b/seatunnel-connectors-v2/connector-cdc/connector-cdc-base/src/main/java/org/apache/seatunnel/connectors/cdc/debezium/utils/TemporalConversions.java
index a05856f27..e18a05c1b 100644
--- a/seatunnel-connectors-v2/connector-cdc/connector-cdc-base/src/main/java/org/apache/seatunnel/connectors/cdc/debezium/utils/TemporalConversions.java
+++ b/seatunnel-connectors-v2/connector-cdc/connector-cdc-base/src/main/java/org/apache/seatunnel/connectors/cdc/debezium/utils/TemporalConversions.java
@@ -25,6 +25,7 @@ import java.time.LocalTime;
 import java.time.OffsetDateTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
+import java.time.temporal.ChronoField;
 import java.util.concurrent.TimeUnit;
 
 /** Temporal conversion constants. */
@@ -66,6 +67,11 @@ public final class TemporalConversions {
             return LocalDate.of(date.getYear() + 1900, date.getMonth() + 1, date.getDate());
         }
         if (obj instanceof Long) {
+            if ((Long) obj > ChronoField.EPOCH_DAY.range().getMaximum()) {
+                return Instant.ofEpochMilli((Long) obj)
+                        .atZone(ZoneId.systemDefault())
+                        .toLocalDate();
+            }
             // Assume the value is the epoch day number
             return LocalDate.ofEpochDay((Long) obj);
         }