Move async result cursor to AsyncConnection
authorJakub Skoczen <jakub@indexdata.dk>
Tue, 10 Nov 2015 09:51:30 +0000 (10:51 +0100)
committerJakub Skoczen <jakub@indexdata.dk>
Tue, 10 Nov 2015 09:51:30 +0000 (10:51 +0100)
src/main/java/org/yaz4j/AsyncConnection.java
src/main/java/org/yaz4j/ResultSet.java

index 4b72252..6bb2470 100644 (file)
@@ -19,6 +19,7 @@ public class AsyncConnection extends Connection {
   ErrorHandler eh;
   //make sure error is only handled once
   boolean errorHandled = false;
+  int handledRecordOffset = 0;
   ErrorHandler reh;
   SearchHandler sh;
   RecordHandler rh;
@@ -79,11 +80,11 @@ public class AsyncConnection extends Connection {
   void handleRecord() {
     //TODO clone the record to detach it from the result set
     try {
-      if (rh != null) rh.handle(lastResultSet.getRecord(lastResultSet.asyncRecordOffset));
+      if (rh != null) rh.handle(lastResultSet.getRecord(handledRecordOffset));
     } catch (ZoomException ex) {
       if (reh != null) reh.handle(ex);
     } finally {
-      lastResultSet.asyncRecordOffset++;
+      handledRecordOffset++;
     }
   }
   
index 00bfe49..78642bd 100644 (file)
@@ -34,7 +34,6 @@ public class ResultSet implements Iterable<Record> {
   private Connection conn;
   SWIGTYPE_p_ZOOM_resultset_p resultSet;
   private boolean disposed = false;
-  int asyncRecordOffset = 0;
 
   ResultSet(SWIGTYPE_p_ZOOM_resultset_p resultSet, Connection conn) {
     //do not copy anything to the java side at this point, it won't be valid