You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by fa...@apache.org on 2023/12/25 07:34:33 UTC
(seatunnel) branch dev updated: [Improve][Formats] Refactor exception catch for `ignoreParseErrors`. (#6065)
This is an automated email from the ASF dual-hosted git repository.
fanjia pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new f248f97703 [Improve][Formats] Refactor exception catch for `ignoreParseErrors`. (#6065)
f248f97703 is described below
commit f248f97703b94ba187711b88014f81cc7a18c622
Author: Chengyu Yan <ch...@hotmail.com>
AuthorDate: Mon Dec 25 15:34:27 2023 +0800
[Improve][Formats] Refactor exception catch for `ignoreParseErrors`. (#6065)
---
release-note.md | 1 +
.../seatunnel/format/json/JsonDeserializationSchema.java | 13 +++++++------
.../apache/seatunnel/format/json/JsonToRowConverters.java | 4 ++--
.../format/json/canal/CanalJsonDeserializationSchema.java | 4 ++--
.../json/debezium/DebeziumJsonDeserializationSchema.java | 4 ++--
.../format/json/ogg/OggJsonDeserializationSchema.java | 8 ++++----
6 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/release-note.md b/release-note.md
index 8e29b08365..07bb3d11d5 100644
--- a/release-note.md
+++ b/release-note.md
@@ -105,6 +105,7 @@
- [Json] Remove assert key word. (#5919)
- [Formats] Replace CommonErrorCodeDeprecated.JSON_OPERATION_FAILED. (#5948)
+- [Formats] Refactor exception catch for `ignoreParseErrors`. (#6065)
### Connector-V2
diff --git a/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/JsonDeserializationSchema.java b/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/JsonDeserializationSchema.java
index 90387c08ef..1f3925192c 100644
--- a/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/JsonDeserializationSchema.java
+++ b/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/JsonDeserializationSchema.java
@@ -18,6 +18,7 @@
package org.apache.seatunnel.format.json;
+import org.apache.seatunnel.shade.com.fasterxml.jackson.core.JsonProcessingException;
import org.apache.seatunnel.shade.com.fasterxml.jackson.core.json.JsonReadFeature;
import org.apache.seatunnel.shade.com.fasterxml.jackson.databind.DeserializationFeature;
import org.apache.seatunnel.shade.com.fasterxml.jackson.databind.JsonNode;
@@ -132,11 +133,11 @@ public class JsonDeserializationSchema implements DeserializationSchema<SeaTunne
}
try {
return (SeaTunnelRow) runtimeConverter.convert(jsonNode);
- } catch (Throwable t) {
+ } catch (RuntimeException e) {
if (ignoreParseErrors) {
return null;
}
- throw CommonError.jsonOperationError(FORMAT, jsonNode.toString(), t);
+ throw CommonError.jsonOperationError(FORMAT, jsonNode.toString(), e);
}
}
@@ -151,22 +152,22 @@ public class JsonDeserializationSchema implements DeserializationSchema<SeaTunne
private JsonNode convertBytes(byte[] message) {
try {
return objectMapper.readTree(message);
- } catch (Throwable t) {
+ } catch (IOException | RuntimeException e) {
if (ignoreParseErrors) {
return NullNode.getInstance();
}
- throw CommonError.jsonOperationError(FORMAT, new String(message), t);
+ throw CommonError.jsonOperationError(FORMAT, new String(message), e);
}
}
private JsonNode convert(String message) {
try {
return objectMapper.readTree(message);
- } catch (Throwable t) {
+ } catch (JsonProcessingException | RuntimeException e) {
if (ignoreParseErrors) {
return NullNode.getInstance();
}
- throw CommonError.jsonOperationError(FORMAT, new String(message), t);
+ throw CommonError.jsonOperationError(FORMAT, new String(message), e);
}
}
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 aee3c1a896..648b2c98af 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
@@ -394,9 +394,9 @@ public class JsonToRowConverters implements Serializable {
}
try {
return converter.convert(jsonNode);
- } catch (Throwable t) {
+ } catch (RuntimeException e) {
if (!ignoreParseErrors) {
- throw t;
+ throw e;
}
return null;
}
diff --git a/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/canal/CanalJsonDeserializationSchema.java b/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/canal/CanalJsonDeserializationSchema.java
index 96482291ec..c33e586c7d 100644
--- a/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/canal/CanalJsonDeserializationSchema.java
+++ b/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/canal/CanalJsonDeserializationSchema.java
@@ -169,9 +169,9 @@ public class CanalJsonDeserializationSchema implements DeserializationSchema<Sea
} else {
throw new IllegalStateException(format("Unknown operation type '%s'.", type));
}
- } catch (Throwable t) {
+ } catch (RuntimeException e) {
if (!ignoreParseErrors) {
- throw CommonError.jsonOperationError(FORMAT, jsonNode.toString(), t);
+ throw CommonError.jsonOperationError(FORMAT, jsonNode.toString(), e);
}
}
}
diff --git a/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/debezium/DebeziumJsonDeserializationSchema.java b/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/debezium/DebeziumJsonDeserializationSchema.java
index 8d68fb379a..f51a5171fd 100644
--- a/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/debezium/DebeziumJsonDeserializationSchema.java
+++ b/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/debezium/DebeziumJsonDeserializationSchema.java
@@ -120,10 +120,10 @@ public class DebeziumJsonDeserializationSchema implements DeserializationSchema<
} else {
throw new IllegalStateException(format("Unknown operation type '%s'.", op));
}
- } catch (Throwable t) {
+ } catch (RuntimeException e) {
// a big try catch to protect the processing.
if (!ignoreParseErrors) {
- throw CommonError.jsonOperationError(FORMAT, new String(message), t);
+ throw CommonError.jsonOperationError(FORMAT, new String(message), e);
}
}
}
diff --git a/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/ogg/OggJsonDeserializationSchema.java b/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/ogg/OggJsonDeserializationSchema.java
index 36e6e541c4..c618a120df 100644
--- a/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/ogg/OggJsonDeserializationSchema.java
+++ b/seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/ogg/OggJsonDeserializationSchema.java
@@ -176,9 +176,9 @@ public class OggJsonDeserializationSchema implements DeserializationSchema<SeaTu
} else {
throw new IllegalStateException(format("Unknown operation type '%s'.", op));
}
- } catch (Throwable t) {
+ } catch (RuntimeException e) {
if (!ignoreParseErrors) {
- throw CommonError.jsonOperationError(FORMAT, jsonNode.toString(), t);
+ throw CommonError.jsonOperationError(FORMAT, jsonNode.toString(), e);
}
}
}
@@ -192,9 +192,9 @@ public class OggJsonDeserializationSchema implements DeserializationSchema<SeaTu
ObjectNode jsonNode;
try {
jsonNode = convertBytes(message);
- } catch (Throwable cause) {
+ } catch (RuntimeException e) {
if (!ignoreParseErrors) {
- throw cause;
+ throw e;
} else {
return;
}