diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java
index 7b5d8ee..033cbe4 100644
--- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java
+++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java
@@ -38,7 +38,6 @@
 import org.apache.asterix.common.transactions.LogSource;
 import org.apache.asterix.common.transactions.LogType;
 import org.apache.asterix.common.transactions.MutableLong;
-import org.apache.asterix.common.utils.TransactionUtil;
 import org.apache.asterix.transaction.management.service.transaction.TransactionManagementConstants.LockManagerConstants.LockMode;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 
@@ -201,7 +200,7 @@
                             }
                             if (stop) {
                                 fileChannel.close();
-                                break;
+                                return;
                             }
                             this.wait();
                         } catch (InterruptedException e) {
diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManager.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManager.java
index 613808f..d0f49db 100644
--- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManager.java
+++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManager.java
@@ -215,6 +215,8 @@
     }
 
     protected void prepareNextLogFile() {
+        // Mark the page as the last page so that it will close the output file channel.
+        appendPage.isLastPage(true);
         // Make sure to flush whatever left in the log tail.
         appendPage.isFull(true);
         //wait until all log records have been flushed in the current file
@@ -236,7 +238,6 @@
             LOGGER.info("Created new txn log file with id(" + getLogFileId(appendLSN.get()) + ") starting with LSN = "
                     + appendLSN.get());
         }
-        appendPage.isLastPage(true);
         //[Notice]
         //the current log file channel is closed if
         //LogBuffer.flush() completely flush the last page of the file.
