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

lta pushed a commit to branch reimpl_sync
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 0abcba81e03334a761621542c4676a8d7607ec17
Author: lta <[email protected]>
AuthorDate: Wed Sep 4 11:22:35 2019 +0800

    fix a bug in windows environment
---
 .../apache/iotdb/db/sync/receiver/transfer/SyncServiceImpl.java  | 9 ++++++---
 .../apache/iotdb/db/sync/sender/recover/SyncSenderLogger.java    | 5 ++++-
 .../iotdb/db/sync/sender/recover/SyncSenderLoggerTest.java       | 1 +
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/sync/receiver/transfer/SyncServiceImpl.java
 
b/server/src/main/java/org/apache/iotdb/db/sync/receiver/transfer/SyncServiceImpl.java
index a83a245..ae6b474 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/sync/receiver/transfer/SyncServiceImpl.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/sync/receiver/transfer/SyncServiceImpl.java
@@ -20,7 +20,6 @@ package org.apache.iotdb.db.sync.receiver.transfer;
 
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.math.BigInteger;
@@ -216,7 +215,9 @@ public class SyncServiceImpl implements SyncService.Iface {
   public ResultStatus checkDataMD5(String md5OfSender) throws TException {
     String md5OfReceiver = (new BigInteger(1, 
messageDigest.get().digest())).toString(16);
     try {
-      currentFileWriter.get().close();
+      if (currentFileWriter.get() != null && currentFileWriter.get().isOpen()) 
{
+        currentFileWriter.get().close();
+      }
       if (!md5OfSender.equals(md5OfReceiver)) {
         currentFile.get().delete();
         currentFileWriter.set(new 
FileOutputStream(currentFile.get()).getChannel());
@@ -312,7 +313,9 @@ public class SyncServiceImpl implements SyncService.Iface {
   @Override
   public ResultStatus endSync() throws TException {
     try {
-      syncLog.get().close();
+      if (syncLog.get() != null) {
+        syncLog.get().close();
+      }
       
FileLoaderManager.getInstance().getFileLoader(senderName.get()).endSync();
       logger.info("Sync process for data of storage group {} ended.", 
currentSG.get());
     } catch (IOException e) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLogger.java
 
b/server/src/main/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLogger.java
index 0b78d3b..c6b5360 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLogger.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLogger.java
@@ -66,6 +66,9 @@ public class SyncSenderLogger implements ISyncSenderLogger {
 
   @Override
   public void close() throws IOException {
-    bw.close();
+    if(bw != null) {
+      bw.close();
+      bw = null;
+    }
   }
 }
diff --git 
a/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLoggerTest.java
 
b/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLoggerTest.java
index 0cb1205..aaddaa6 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLoggerTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLoggerTest.java
@@ -78,6 +78,7 @@ public class SyncSenderLoggerTest {
       toBeSyncedFiles
           .add(new File(config.getSenderFolderPath(), "new" + 
i).getAbsolutePath());
     }
+    senderLogger.close();
     int count = 0;
     int mode = 0;
     try (BufferedReader br = new BufferedReader(

Reply via email to