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;