From 0a8e6186888e009cdc58e3f5ab4bdd77bfc1cba7 Mon Sep 17 00:00:00 2001 From: lyb <1733839298@qq.com> Date: Wed, 10 Jul 2024 18:44:14 +0800 Subject: [PATCH] [BuxFix] [Kafka-Connector] Fixed null pointer issue when kafka uses json to read datetime type encountering null values --- .../seatunnel/format/json/JsonToRowConverters.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/JsonToRowConverters.java b/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/JsonToRowConverters.java index 9bb7554ad3f..4ddca8c557e 100644 --- a/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/JsonToRowConverters.java +++ b/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/JsonToRowConverters.java @@ -250,6 +250,9 @@ private float convertToFloat(JsonNode jsonNode) { } private LocalDate convertToLocalDate(JsonNode jsonNode, String fieldName) { + if ("".equals(jsonNode.asText())) { + return null; + } String dateStr = jsonNode.asText(); DateTimeFormatter dateFormatter = fieldFormatterMap.get(fieldName); if (dateFormatter == null) { @@ -261,11 +264,17 @@ private LocalDate convertToLocalDate(JsonNode jsonNode, String fieldName) { } private LocalTime convertToLocalTime(JsonNode jsonNode) { + if ("".equals(jsonNode.asText())) { + return null; + } TemporalAccessor parsedTime = TIME_FORMAT.parse(jsonNode.asText()); return parsedTime.query(TemporalQueries.localTime()); } private LocalDateTime convertToLocalDateTime(JsonNode jsonNode, String fieldName) { + if ("".equals(jsonNode.asText())) { + return null; + } String datetimeStr = jsonNode.asText(); DateTimeFormatter dateTimeFormatter = fieldFormatterMap.get(fieldName); if (dateTimeFormatter == null) {