allowed operation callback methods to throw an exception

git-svn-id: https://hyracks.googlecode.com/svn/branches/hyracks_lsm_tree@1928 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks-storage-am-common/src/main/java/edu/uci/ics/hyracks/storage/am/common/api/IModificationOperationCallback.java b/hyracks-storage-am-common/src/main/java/edu/uci/ics/hyracks/storage/am/common/api/IModificationOperationCallback.java
index 5028aee..410f85e 100644
--- a/hyracks-storage-am-common/src/main/java/edu/uci/ics/hyracks/storage/am/common/api/IModificationOperationCallback.java
+++ b/hyracks-storage-am-common/src/main/java/edu/uci/ics/hyracks/storage/am/common/api/IModificationOperationCallback.java
@@ -1,5 +1,6 @@
 package edu.uci.ics.hyracks.storage.am.common.api;
 
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
 import edu.uci.ics.hyracks.dataflow.common.data.accessors.ITupleReference;
 
 /**
@@ -19,7 +20,7 @@
      * 
      * @param tuple the tuple that is about to be operated on
      */
-    public void before(ITupleReference tuple);
+    public void before(ITupleReference tuple) throws HyracksDataException;
 
     /**
      * This method is called on a tuple when a tuple with a matching key is found for the 
@@ -31,5 +32,5 @@
      * 
      * @param tuple a tuple with a matching key, otherwise null if none exists
      */
-    public void found(ITupleReference tuple);
+    public void found(ITupleReference tuple) throws HyracksDataException;
 }
diff --git a/hyracks-storage-am-common/src/main/java/edu/uci/ics/hyracks/storage/am/common/api/ISearchOperationCallback.java b/hyracks-storage-am-common/src/main/java/edu/uci/ics/hyracks/storage/am/common/api/ISearchOperationCallback.java
index 079adae..b62bbcb 100644
--- a/hyracks-storage-am-common/src/main/java/edu/uci/ics/hyracks/storage/am/common/api/ISearchOperationCallback.java
+++ b/hyracks-storage-am-common/src/main/java/edu/uci/ics/hyracks/storage/am/common/api/ISearchOperationCallback.java
@@ -1,5 +1,6 @@
 package edu.uci.ics.hyracks.storage.am.common.api;
 
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
 import edu.uci.ics.hyracks.dataflow.common.data.accessors.ITupleReference;
 
 /**
@@ -21,7 +22,7 @@
      * @param tuple the tuple that is being passed over by the search cursor
      * @return true to proceed otherwise false to unlatch and unpin, leading to reconciliation
      */
-    public boolean proceed(ITupleReference tuple);
+    public boolean proceed(ITupleReference tuple) throws HyracksDataException;
 
     /**
      * This method is only called on a tuple that was not 'proceeded' on 
@@ -31,7 +32,7 @@
      * 
      * @param tuple the tuple that failed to proceed
      */
-    public void reconcile(ITupleReference tuple);
+    public void reconcile(ITupleReference tuple) throws HyracksDataException;
 
     /**
      * This method is only called on a tuple that was reconciled on, but not found after 
@@ -40,5 +41,5 @@
      * 
      * @param tuple the tuple that was previously reconciled
      */
-    public void cancel(ITupleReference tuple);
+    public void cancel(ITupleReference tuple) throws HyracksDataException;
 }