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

tyrantlucifer 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 06671474ca [Hotfix][Connector-V2][ClickhouseFile] Fix ClickhouseFile 
write file failed when field value is null (#4937)
06671474ca is described below

commit 06671474ca2dd93bdfd32f013f2f07efc950f7d1
Author: Fan Donglai <[email protected]>
AuthorDate: Tue Jun 20 10:23:04 2023 +0800

    [Hotfix][Connector-V2][ClickhouseFile] Fix ClickhouseFile write file failed 
when field value is null (#4937)
    
    * Update ClickhouseFileSinkWriter.java
    
    Bug fix: When ClikchouseFileSinkerWriter writes to a temporary file, it 
does not check whether the field value is empty, so an exception will be thrown.
    
    Modified to write an empty string when a null value is encountered
    
    * Update ClickhouseFileSinkWriter.java
    
    repair code style
    
    * Update ClickhouseFileSinkWriter.java
    
    code style
---
 .../clickhouse/sink/file/ClickhouseFileSinkWriter.java | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/sink/file/ClickhouseFileSinkWriter.java
 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/sink/file/ClickhouseFileSinkWriter.java
index 9328137fde..4499ed1836 100644
--- 
a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/sink/file/ClickhouseFileSinkWriter.java
+++ 
b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/sink/file/ClickhouseFileSinkWriter.java
@@ -213,12 +213,18 @@ public class ClickhouseFileSinkWriter
         String data =
                 this.readerOption.getFields().stream()
                                 .map(
-                                        field ->
-                                                row.getField(
-                                                                
this.readerOption
-                                                                        
.getSeaTunnelRowType()
-                                                                        
.indexOf(field))
-                                                        .toString())
+                                        field -> {
+                                            Object fieldValueObj =
+                                                    row.getField(
+                                                            this.readerOption
+                                                                    
.getSeaTunnelRowType()
+                                                                    
.indexOf(field));
+                                            if (fieldValueObj == null) {
+                                                return "";
+                                            } else {
+                                                return 
fieldValueObj.toString();
+                                            }
+                                        })
                                 
.collect(Collectors.joining(readerOption.getFileFieldsDelimiter()))
                         + "\n";
         MappedByteBuffer buffer =

Reply via email to