Added cleanup after failure for insert/delete op.

git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix-fix-issue-113@252 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-hyracks-glue/src/main/java/edu/uci/ics/asterix/runtime/transaction/TreeIndexInsertUpdateDeleteOperatorNodePushable.java b/asterix-hyracks-glue/src/main/java/edu/uci/ics/asterix/runtime/transaction/TreeIndexInsertUpdateDeleteOperatorNodePushable.java
index 3efecb1..0749693 100644
--- a/asterix-hyracks-glue/src/main/java/edu/uci/ics/asterix/runtime/transaction/TreeIndexInsertUpdateDeleteOperatorNodePushable.java
+++ b/asterix-hyracks-glue/src/main/java/edu/uci/ics/asterix/runtime/transaction/TreeIndexInsertUpdateDeleteOperatorNodePushable.java
@@ -179,7 +179,20 @@
 
     @Override
     public void fail() throws HyracksDataException {
-        writer.fail();
+        try {
+        	writer.fail();
+        } finally {
+        	txnContext.addCloseableResource(new ICloseable() {
+                @Override
+                public void close(TransactionContext txnContext) throws ACIDException {
+                    try {
+                        treeIndexHelper.deinit();
+                    } catch (Exception e) {
+                        throw new ACIDException(txnContext, "could not de-initialize " + treeIndexHelper, e);
+                    }
+                }
+            });
+        }
     }
 
 }