You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nutch.apache.org by mc...@apache.org on 2005/09/07 17:46:09 UTC

svn commit: r279357 - /lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/NDFSClient.java

Author: mc
Date: Wed Sep  7 08:46:08 2005
New Revision: 279357

URL: http://svn.apache.org/viewcvs?rev=279357&view=rev
Log:

  Repair record keeping when we seek() in NDFS.


Modified:
    lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/NDFSClient.java

Modified: lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/NDFSClient.java
URL: http://svn.apache.org/viewcvs/lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/NDFSClient.java?rev=279357&r1=279356&r2=279357&view=diff
==============================================================================
--- lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/NDFSClient.java (original)
+++ lucene/nutch/branches/mapred/src/java/org/apache/nutch/ndfs/NDFSClient.java Wed Sep  7 08:46:08 2005
@@ -454,7 +454,10 @@
                 throw new IOException("Cannot seek after EOF");
             }
             if (targetPos >= pos && targetPos <= blockEnd) {
-                skip(targetPos - pos);
+                long desiredSkip = targetPos - pos;
+                while (desiredSkip > 0) {
+                    desiredSkip -= skip(targetPos - pos);
+                }
             } else {
                 pos = targetPos;
                 blockEnd = -1;
@@ -470,7 +473,9 @@
                 targetPos = Math.min(targetPos, filelen);
 
                 if (targetPos <= blockEnd) {
-                    return blockStream.skip(skip);
+                    long result = blockStream.skip(skip);
+                    pos += result;
+                    return result;
                 } else {
                     pos = targetPos;
                     blockEnd = -1;