Skip to content

Commit 812c33d

Browse files
authored
[pipeline-connector][doris][starrocks] Remove SimpleDateFormat for thread safe (#2954)
1 parent b42bc60 commit 812c33d

3 files changed

Lines changed: 7 additions & 11 deletions

File tree

flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-doris/src/main/java/com/ververica/cdc/connectors/doris/sink/DorisEventSerializer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535

3636
import java.io.IOException;
3737
import java.nio.charset.StandardCharsets;
38-
import java.text.SimpleDateFormat;
3938
import java.time.ZoneId;
4039
import java.time.format.DateTimeFormatter;
4140
import java.util.HashMap;
@@ -50,7 +49,8 @@ public class DorisEventSerializer implements DorisRecordSerializer<Event> {
5049
private Map<TableId, Schema> schemaMaps = new HashMap<>();
5150

5251
/** Format DATE type data. */
53-
public static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd");
52+
public static final DateTimeFormatter DATE_FORMATTER =
53+
DateTimeFormatter.ofPattern("yyyy-MM-dd");
5454

5555
/** Format timestamp-related type data. */
5656
public static final DateTimeFormatter DATE_TIME_FORMATTER =

flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-doris/src/main/java/com/ververica/cdc/connectors/doris/sink/DorisRowConverter.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232

3333
import java.io.IOException;
3434
import java.io.Serializable;
35-
import java.sql.Date;
3635
import java.time.LocalDate;
3736
import java.time.ZoneId;
3837
import java.time.ZonedDateTime;
@@ -100,8 +99,7 @@ static SerializationConverter createExternalConverter(DataType type, ZoneId pipe
10099
return (index, val) -> val.getDouble(index);
101100
case DATE:
102101
return (index, val) ->
103-
DATE_FORMATTER.format(
104-
Date.valueOf(LocalDate.ofEpochDay(val.getInt(index))));
102+
LocalDate.ofEpochDay(val.getInt(index)).format(DATE_FORMATTER);
105103
case TIMESTAMP_WITHOUT_TIME_ZONE:
106104
return (index, val) ->
107105
val.getTimestamp(index, DataTypeChecks.getPrecision(type))

flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-starrocks/src/main/java/com/ververica/cdc/connectors/starrocks/sink/StarRocksUtils.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@
3838
import com.ververica.cdc.common.types.TinyIntType;
3939
import com.ververica.cdc.common.types.VarCharType;
4040

41-
import java.sql.Date;
42-
import java.text.SimpleDateFormat;
4341
import java.time.LocalDate;
4442
import java.time.ZoneId;
4543
import java.time.ZonedDateTime;
@@ -112,7 +110,8 @@ public static void toStarRocksDataType(Column cdcColumn, StarRocksColumn.Builder
112110
}
113111

114112
/** Format DATE type data. */
115-
private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd");
113+
private static final DateTimeFormatter DATE_FORMATTER =
114+
DateTimeFormatter.ofPattern("yyyy-MM-dd");
116115

117116
/** Format timestamp-related type data. */
118117
private static final DateTimeFormatter DATETIME_FORMATTER =
@@ -168,9 +167,8 @@ record ->
168167
case DATE:
169168
fieldGetter =
170169
record ->
171-
DATE_FORMATTER.format(
172-
Date.valueOf(
173-
LocalDate.ofEpochDay(record.getInt(fieldPos))));
170+
LocalDate.ofEpochDay(record.getInt(fieldPos))
171+
.format(DATE_FORMATTER);
174172
break;
175173
case TIMESTAMP_WITHOUT_TIME_ZONE:
176174
fieldGetter =

0 commit comments

Comments
 (0)