浏览代码

HADOOP-15042. Azure PageBlobInputStream.skip() can return negative value when numberOfPagesRemaining is 0.
Contributed by Rajesh Balamohan

Steve Loughran 7 年之前
父节点
当前提交
0ea182d0fa

+ 2 - 2
hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/PageBlobInputStream.java

@@ -343,9 +343,9 @@ final class PageBlobInputStream extends InputStream {
 
     // Skip over whole pages as necessary without retrieving them from the
     // server.
-    long pagesToSkipOver = Math.min(
+    long pagesToSkipOver = Math.max(0, Math.min(
         n / PAGE_DATA_SIZE,
-        numberOfPagesRemaining - 1);
+        numberOfPagesRemaining - 1));
     numberOfPagesRemaining -= pagesToSkipOver;
     currentOffsetInBlob += pagesToSkipOver * PAGE_SIZE;
     skipped += pagesToSkipOver * PAGE_DATA_SIZE;