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(
