close log file before deleting it
diff --git a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogManager.java b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogManager.java
index 4803db5..a4b6467 100644
--- a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogManager.java
+++ b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/LogManager.java
@@ -260,7 +260,7 @@
         return logFileSize * fileId + offset;
     }
 
-    public void renewLogFiles() {
+    public void renewLogFiles() throws IOException {
         terminateLogFlusher();
         deleteAllLogFiles();
         initializeLogManager();
@@ -275,7 +275,10 @@
         }
     }
 
-    private void deleteAllLogFiles() {
+    private void deleteAllLogFiles() throws IOException {
+        if (appendChannel != null) {
+            appendChannel.close();
+        }
         List<Long> logFileIds = getLogFileIds();
         for (Long id : logFileIds) {
             File file = new File(getLogFilePath(id));
diff --git a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/recovery/RecoveryManager.java b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/recovery/RecoveryManager.java
index 81a73d5..bac60ec 100644
--- a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/recovery/RecoveryManager.java
+++ b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/recovery/RecoveryManager.java
@@ -438,7 +438,11 @@
         }
 
         if (isSharpCheckpoint) {
-            logMgr.renewLogFiles();
+            try {
+				logMgr.renewLogFiles();
+			} catch (IOException e) {
+				throw new HyracksDataException(e);
+			}
         }
 
         if (isSharpCheckpoint && LOGGER.isLoggable(Level.INFO)) {