From f7e1b1a00a810a12f61cfad9db5ef47514c33c5c Mon Sep 17 00:00:00 2001 From: tyrantlucifer Date: Tue, 1 Nov 2022 23:49:41 +0800 Subject: [PATCH 1/8] [Hotfix][Connector-V2][Hive] Fix the bug that when write data to hive throws NullPointerException --- .../seatunnel/file/sink/config/TextFileSinkConfig.java | 4 ++-- .../file/sink/writer/AbstractWriteStrategy.java | 2 +- .../seatunnel/file/sink/writer/OrcWriteStrategy.java | 2 +- .../file/sink/writer/ParquetWriteStrategy.java | 2 +- seatunnel-connectors-v2/connector-hive/pom.xml | 10 ++++++++++ 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/config/TextFileSinkConfig.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/config/TextFileSinkConfig.java index 8db2aad5689..badde30e597 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/config/TextFileSinkConfig.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/config/TextFileSinkConfig.java @@ -130,12 +130,12 @@ public TextFileSinkConfig(@NonNull Config config, @NonNull SeaTunnelRowType seaT Map columnsMap = new HashMap<>(seaTunnelRowTypeInfo.getFieldNames().length); String[] fieldNames = seaTunnelRowTypeInfo.getFieldNames(); for (int i = 0; i < fieldNames.length; i++) { - columnsMap.put(fieldNames[i], i); + columnsMap.put(fieldNames[i].toLowerCase(), i); } // init sink column index and partition field index, we will use the column index to found the data in SeaTunnelRow this.sinkColumnsIndexInRow = this.sinkColumnList.stream() - .map(columnsMap::get) + .map(column -> columnsMap.get(column.toLowerCase())) .collect(Collectors.toList()); if (!CollectionUtils.isEmpty(this.partitionFieldList)) { diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java index 2d0f3155a82..3f6cd01ee9d 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java @@ -248,7 +248,7 @@ public void beginTransaction(Long checkpointId) { * @return transaction ids */ public List getTransactionIdFromStates(List fileStates) { - String[] pathSegments = new String[]{textFileSinkConfig.getPath(), Constant.SEATUNNEL, jobId}; + String[] pathSegments = new String[]{textFileSinkConfig.getTmpPath(), Constant.SEATUNNEL, jobId}; String jobDir = String.join(File.separator, pathSegments) + File.separator; try { List transactionDirList = FileSystemUtils.dirList(jobDir).stream().map(Path::toString).collect(Collectors.toList()); diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java index a34b2b7dd40..d8cb7ed83d2 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java @@ -179,7 +179,7 @@ private TypeDescription buildSchemaWithRowType() { TypeDescription schema = TypeDescription.createStruct(); for (Integer i : sinkColumnsIndexInRow) { TypeDescription fieldType = buildFieldWithRowType(seaTunnelRowType.getFieldType(i)); - schema.addField(seaTunnelRowType.getFieldName(i), fieldType); + schema.addField(seaTunnelRowType.getFieldName(i).toLowerCase(), fieldType); } return schema; } diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java index c9781082768..5978032b6ed 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java @@ -95,7 +95,7 @@ public void write(@NonNull SeaTunnelRow seaTunnelRow) { for (Integer integer : sinkColumnsIndexInRow) { String fieldName = seaTunnelRowType.getFieldName(integer); Object field = seaTunnelRow.getField(integer); - recordBuilder.set(fieldName, resolveObject(field, seaTunnelRowType.getFieldType(integer))); + recordBuilder.set(fieldName.toLowerCase(), resolveObject(field, seaTunnelRowType.getFieldType(integer))); } GenericData.Record record = recordBuilder.build(); try { diff --git a/seatunnel-connectors-v2/connector-hive/pom.xml b/seatunnel-connectors-v2/connector-hive/pom.xml index c46077933a6..431bd6ef127 100644 --- a/seatunnel-connectors-v2/connector-hive/pom.xml +++ b/seatunnel-connectors-v2/connector-hive/pom.xml @@ -50,6 +50,12 @@ org.apache.flink flink-shaded-hadoop-2 provided + + + avro + org.apache.avro + + org.apache.hive @@ -89,6 +95,10 @@ pentaho-aggdesigner-algorithm org.pentaho + + avro + org.apache.avro + From 18a4f25f4cab15da99d7441b1ecf12f77fa61736 Mon Sep 17 00:00:00 2001 From: tyrantlucifer Date: Wed, 2 Nov 2022 16:28:59 +0800 Subject: [PATCH 2/8] [Hotfix][Connector-V2][File] Fix the following bugs: 1. write parquet NullPointerException 2. when restore write from states getting error file path --- .../file/sink/writer/AbstractWriteStrategy.java | 10 ++++++++-- .../seatunnel/file/sink/writer/OrcWriteStrategy.java | 1 + .../file/sink/writer/ParquetWriteStrategy.java | 5 +++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java index 3f6cd01ee9d..7a2d8a64bfe 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java @@ -251,8 +251,14 @@ public List getTransactionIdFromStates(List fileStates) { String[] pathSegments = new String[]{textFileSinkConfig.getTmpPath(), Constant.SEATUNNEL, jobId}; String jobDir = String.join(File.separator, pathSegments) + File.separator; try { - List transactionDirList = FileSystemUtils.dirList(jobDir).stream().map(Path::toString).collect(Collectors.toList()); - return transactionDirList.stream().map(dir -> dir.replaceAll(jobDir, "")).collect(Collectors.toList()); + List transactionDirList = FileSystemUtils.dirList(jobDir) + .stream() + .map(path -> path.toUri().getPath()) + .collect(Collectors.toList()); + return transactionDirList + .stream() + .map(dir -> dir.replaceAll(jobDir, "")) + .collect(Collectors.toList()); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java index d8cb7ed83d2..e4978879f85 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java @@ -99,6 +99,7 @@ public void finishAndCloseFile() { } needMoveFiles.put(k, getTargetLocation(k)); }); + this.beingWrittenWriter.clear(); } private Writer getOrCreateWriter(@NonNull String filePath) { diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java index 5978032b6ed..6fc23701ec6 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java @@ -117,6 +117,7 @@ public void finishAndCloseFile() { } needMoveFiles.put(k, getTargetLocation(k)); }); + this.beingWrittenWriter.clear(); } private ParquetWriter getOrCreateWriter(@NonNull String filePath) { @@ -189,7 +190,7 @@ private Object resolveObject(Object data, SeaTunnelDataType seaTunnelDataType Schema recordSchema = buildAvroSchemaWithRowType((SeaTunnelRowType) seaTunnelDataType, sinkColumnsIndex); GenericRecordBuilder recordBuilder = new GenericRecordBuilder(recordSchema); for (int i = 0; i < fieldNames.length; i++) { - recordBuilder.set(fieldNames[i], resolveObject(seaTunnelRow.getField(i), fieldTypes[i])); + recordBuilder.set(fieldNames[i].toLowerCase(), resolveObject(seaTunnelRow.getField(i), fieldTypes[i])); } return recordBuilder.build(); default: @@ -284,7 +285,7 @@ private Schema buildAvroSchemaWithRowType(SeaTunnelRowType seaTunnelRowType, Lis SeaTunnelDataType[] fieldTypes = seaTunnelRowType.getFieldTypes(); String[] fieldNames = seaTunnelRowType.getFieldNames(); sinkColumnsIndex.forEach(index -> { - Type type = seaTunnelDataType2ParquetDataType(fieldNames[index], fieldTypes[index]); + Type type = seaTunnelDataType2ParquetDataType(fieldNames[index].toLowerCase(), fieldTypes[index]); types.add(type); }); MessageType seaTunnelRow = Types.buildMessage().addFields(types.toArray(new Type[0])).named("SeaTunnelRecord"); From 3ab1569dfb2a35c7d367d9d862effd9dc7812163 Mon Sep 17 00:00:00 2001 From: tyrantlucifer Date: Wed, 2 Nov 2022 16:34:53 +0800 Subject: [PATCH 3/8] [Hotfix][Connector-V2][Hive] Fix code style --- .../seatunnel/file/sink/writer/AbstractWriteStrategy.java | 1 - 1 file changed, 1 deletion(-) diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java index 7a2d8a64bfe..b154c7cbce4 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/AbstractWriteStrategy.java @@ -40,7 +40,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeys; -import org.apache.hadoop.fs.Path; import org.slf4j.Logger; import org.slf4j.LoggerFactory; From ff8fbab1b34d6f10b22013f2dc2772641c2fb4ba Mon Sep 17 00:00:00 2001 From: tyrantlucifer Date: Wed, 2 Nov 2022 19:12:46 +0800 Subject: [PATCH 4/8] [Hotfix][Connector-V2][Hive] Fix npe --- .../connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java index e4978879f85..42dedca1451 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/OrcWriteStrategy.java @@ -166,7 +166,7 @@ private TypeDescription buildFieldWithRowType(SeaTunnelDataType type) { TypeDescription struct = TypeDescription.createStruct(); SeaTunnelDataType[] fieldTypes = ((SeaTunnelRowType) type).getFieldTypes(); for (int i = 0; i < fieldTypes.length; i++) { - struct.addField(((SeaTunnelRowType) type).getFieldName(i), buildFieldWithRowType(fieldTypes[i])); + struct.addField(((SeaTunnelRowType) type).getFieldName(i).toLowerCase(), buildFieldWithRowType(fieldTypes[i])); } return struct; case NULL: From 26cf7e3309b510aa9dd30021b8e66bab640d061b Mon Sep 17 00:00:00 2001 From: tyrantlucifer Date: Thu, 3 Nov 2022 16:23:21 +0800 Subject: [PATCH 5/8] [Hotfix][Connector-V2][Hive] Fix npe --- .../seatunnel/file/sink/writer/ParquetWriteStrategy.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java index 6fc23701ec6..fb9b139adc9 100644 --- a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java +++ b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/writer/ParquetWriteStrategy.java @@ -155,6 +155,9 @@ private ParquetWriter getOrCreateWriter(@NonNull String filePath) @SuppressWarnings("checkstyle:MagicNumber") private Object resolveObject(Object data, SeaTunnelDataType seaTunnelDataType) { + if (data == null) { + return null; + } switch (seaTunnelDataType.getSqlType()) { case ARRAY: BasicType elementType = ((ArrayType) seaTunnelDataType).getElementType(); From 9ab3b563b6a13d422db9c58efbed8e374bc3b5dd Mon Sep 17 00:00:00 2001 From: tyrantlucifer Date: Fri, 4 Nov 2022 20:38:42 +0800 Subject: [PATCH 6/8] [Feature][Connector-V2][Hive] Fix file e2e --- .../connector-file-local-e2e/pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-local-e2e/pom.xml b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-local-e2e/pom.xml index db73ba5312e..edf49dc782f 100644 --- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-local-e2e/pom.xml +++ b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-local-e2e/pom.xml @@ -26,6 +26,11 @@ connector-file-local-e2e + + org.apache.seatunnel + connector-fake + ${project.version} + org.apache.seatunnel connector-file-local From 0dbdaffd3542b471a44272f6c426fc5ce13fdf4b Mon Sep 17 00:00:00 2001 From: tyrantlucifer Date: Mon, 7 Nov 2022 23:44:07 +0800 Subject: [PATCH 7/8] [Hotfix][Connector-V2][File] Fix file e2e --- .../connector-file-local-e2e/pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-local-e2e/pom.xml b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-local-e2e/pom.xml index edf49dc782f..cecbb1d768b 100644 --- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-local-e2e/pom.xml +++ b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-local-e2e/pom.xml @@ -36,6 +36,11 @@ connector-file-local ${project.version} + + org.apache.seatunnel + connector-assert + ${project.version} + \ No newline at end of file From 7a5fdbb2a76e86b2b288e76c39cd6e578b42b99b Mon Sep 17 00:00:00 2001 From: tyrantlucifer Date: Tue, 8 Nov 2022 11:37:01 +0800 Subject: [PATCH 8/8] [Hotfix][Connector-V2][Hive] Add change log --- docs/en/connector-v2/sink/FtpFile.md | 6 ++++++ docs/en/connector-v2/sink/HdfsFile.md | 5 +++++ docs/en/connector-v2/sink/Hive.md | 7 +++++++ docs/en/connector-v2/sink/LocalFile.md | 6 ++++++ docs/en/connector-v2/sink/OssFile.md | 6 ++++++ docs/en/connector-v2/sink/S3File.md | 6 ++++++ docs/en/connector-v2/sink/SftpFile.md | 8 ++++++-- 7 files changed, 42 insertions(+), 2 deletions(-) diff --git a/docs/en/connector-v2/sink/FtpFile.md b/docs/en/connector-v2/sink/FtpFile.md index 5e3d9888b8b..273af49ca59 100644 --- a/docs/en/connector-v2/sink/FtpFile.md +++ b/docs/en/connector-v2/sink/FtpFile.md @@ -167,3 +167,9 @@ FtpFile { - [BugFix] Fix the bug of incorrect path in windows environment ([2980](https://github.com/apache/incubator-seatunnel/pull/2980)) - [BugFix] Fix filesystem get error ([3117](https://github.com/apache/incubator-seatunnel/pull/3117)) - [BugFix] Solved the bug of can not parse '\t' as delimiter from config file ([3083](https://github.com/apache/incubator-seatunnel/pull/3083)) + +### Next version +- [BugFix] Fixed the following bugs that failed to write data to files ([3258](https://github.com/apache/incubator-seatunnel/pull/3258)) + - When field from upstream is null it will throw NullPointerException + - Sink columns mapping failed + - When restore writer from states getting transaction directly failed diff --git a/docs/en/connector-v2/sink/HdfsFile.md b/docs/en/connector-v2/sink/HdfsFile.md index 9b49a499248..1d562d66328 100644 --- a/docs/en/connector-v2/sink/HdfsFile.md +++ b/docs/en/connector-v2/sink/HdfsFile.md @@ -191,3 +191,8 @@ HdfsFile { - [BugFix] Fix filesystem get error ([3117](https://github.com/apache/incubator-seatunnel/pull/3117)) - [BugFix] Solved the bug of can not parse '\t' as delimiter from config file ([3083](https://github.com/apache/incubator-seatunnel/pull/3083)) +### Next version +- [BugFix] Fixed the following bugs that failed to write data to files ([3258](https://github.com/apache/incubator-seatunnel/pull/3258)) + - When field from upstream is null it will throw NullPointerException + - Sink columns mapping failed + - When restore writer from states getting transaction directly failed \ No newline at end of file diff --git a/docs/en/connector-v2/sink/Hive.md b/docs/en/connector-v2/sink/Hive.md index dc31944a415..8d51da957ac 100644 --- a/docs/en/connector-v2/sink/Hive.md +++ b/docs/en/connector-v2/sink/Hive.md @@ -168,3 +168,10 @@ sink { ### 2.3.0-beta 2022-10-20 - [Improve] Hive Sink supports automatic partition repair ([3133](https://github.com/apache/incubator-seatunnel/pull/3133)) + +### Next version +- [BugFix] Fixed the following bugs that failed to write data to files ([3258](https://github.com/apache/incubator-seatunnel/pull/3258)) + - When field from upstream is null it will throw NullPointerException + - Sink columns mapping failed + - When restore writer from states getting transaction directly failed + diff --git a/docs/en/connector-v2/sink/LocalFile.md b/docs/en/connector-v2/sink/LocalFile.md index 6246e4059a7..d0fa20da6e5 100644 --- a/docs/en/connector-v2/sink/LocalFile.md +++ b/docs/en/connector-v2/sink/LocalFile.md @@ -180,3 +180,9 @@ LocalFile { - [BugFix] Fix the bug of incorrect path in windows environment ([2980](https://github.com/apache/incubator-seatunnel/pull/2980)) - [BugFix] Fix filesystem get error ([3117](https://github.com/apache/incubator-seatunnel/pull/3117)) - [BugFix] Solved the bug of can not parse '\t' as delimiter from config file ([3083](https://github.com/apache/incubator-seatunnel/pull/3083)) + +### Next version +- [BugFix] Fixed the following bugs that failed to write data to files ([3258](https://github.com/apache/incubator-seatunnel/pull/3258)) + - When field from upstream is null it will throw NullPointerException + - Sink columns mapping failed + - When restore writer from states getting transaction directly failed diff --git a/docs/en/connector-v2/sink/OssFile.md b/docs/en/connector-v2/sink/OssFile.md index 9cd7e3ea23f..f2db1223bdd 100644 --- a/docs/en/connector-v2/sink/OssFile.md +++ b/docs/en/connector-v2/sink/OssFile.md @@ -219,3 +219,9 @@ For orc file format - [BugFix] Fix the bug of incorrect path in windows environment ([2980](https://github.com/apache/incubator-seatunnel/pull/2980)) - [BugFix] Fix filesystem get error ([3117](https://github.com/apache/incubator-seatunnel/pull/3117)) - [BugFix] Solved the bug of can not parse '\t' as delimiter from config file ([3083](https://github.com/apache/incubator-seatunnel/pull/3083)) + +### Next version +- [BugFix] Fixed the following bugs that failed to write data to files ([3258](https://github.com/apache/incubator-seatunnel/pull/3258)) + - When field from upstream is null it will throw NullPointerException + - Sink columns mapping failed + - When restore writer from states getting transaction directly failed \ No newline at end of file diff --git a/docs/en/connector-v2/sink/S3File.md b/docs/en/connector-v2/sink/S3File.md index 8f01eac8734..53175f33055 100644 --- a/docs/en/connector-v2/sink/S3File.md +++ b/docs/en/connector-v2/sink/S3File.md @@ -202,3 +202,9 @@ For orc file format ### 2.3.0-beta 2022-10-20 - Add S3File Sink Connector + +### Next version +- [BugFix] Fixed the following bugs that failed to write data to files ([3258](https://github.com/apache/incubator-seatunnel/pull/3258)) + - When field from upstream is null it will throw NullPointerException + - Sink columns mapping failed + - When restore writer from states getting transaction directly failed \ No newline at end of file diff --git a/docs/en/connector-v2/sink/SftpFile.md b/docs/en/connector-v2/sink/SftpFile.md index dc1ae379b30..89c5bfadb05 100644 --- a/docs/en/connector-v2/sink/SftpFile.md +++ b/docs/en/connector-v2/sink/SftpFile.md @@ -159,6 +159,10 @@ SftpFile { ## Changelog -### next version +### Next version -- Add SftpFile Sink Connector \ No newline at end of file +- Add SftpFile Sink Connector +- [BugFix] Fixed the following bugs that failed to write data to files ([3258](https://github.com/apache/incubator-seatunnel/pull/3258)) + - When field from upstream is null it will throw NullPointerException + - Sink columns mapping failed + - When restore writer from states getting transaction directly failed \ No newline at end of file