[ISSUE #118] fix: concurrency problem caused by batchFlushOnCheckpoint (#119)

diff --git a/src/main/java/org/apache/flink/connector/rocketmq/legacy/RocketMQSink.java b/src/main/java/org/apache/flink/connector/rocketmq/legacy/RocketMQSink.java
index 9f87486..9ff2812 100644
--- a/src/main/java/org/apache/flink/connector/rocketmq/legacy/RocketMQSink.java
+++ b/src/main/java/org/apache/flink/connector/rocketmq/legacy/RocketMQSink.java
@@ -111,7 +111,9 @@
         sinkInTps.markEvent();
 
         if (batchFlushOnCheckpoint) {
-            batchList.add(input);
+            synchronized (batchList) {
+                batchList.add(input);
+            }
             if (batchList.size() >= batchSize) {
                 flushSync();
             }