diff --git a/modules/core/src/main/java/org/apache/fluo/core/impl/TransactionImpl.java b/modules/core/src/main/java/org/apache/fluo/core/impl/TransactionImpl.java
index <HASH>..<HASH> 100644
--- a/modules/core/src/main/java/org/apache/fluo/core/impl/TransactionImpl.java
+++ b/modules/core/src/main/java/org/apache/fluo/core/impl/TransactionImpl.java
@@ -596,9 +596,16 @@ public class TransactionImpl extends AbstractTransactionBase implements AsyncTra
 
   @Override
   public synchronized void commit() throws CommitException {
-    SyncCommitObserver sco = new SyncCommitObserver();
-    commitAsync(sco);
-    sco.waitForCommit();
+    SyncCommitObserver sco = null;
+    try {
+      sco = new SyncCommitObserver();
+      commitAsync(sco);
+      sco.waitForCommit();
+    } finally {
+      updates.clear();
+      weakNotification = null;
+      columnsRead.clear();
+    }
   }
 
   void deleteWeakRow() {
@@ -908,7 +915,6 @@ public class TransactionImpl extends AbstractTransactionBase implements AsyncTra
     cd.acceptedRows = new HashSet<>();
 
 
-
     ListenableFuture<Iterator<Result>> future = cd.bacw.apply(mutations);
     Futures.addCallback(future, new CommitCallback<Iterator<Result>>(cd) {
       @Override
closes #<I> - cleanup buffered data

closes #<I>