HADOOP-15042. Azure PageBlobInputStream.skip() can return negative value when numberOfPagesRemaining is 0. Contributed by Rajesh Balamohan
(cherry picked from commit 0ea182d0faa35c726dcb37249d48786bfc8ca04c) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5c37a0b8 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5c37a0b8 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5c37a0b8 Branch: refs/heads/branch-2 Commit: 5c37a0b841e0047f4731ed5cac12ce27efa76e6d Parents: 3d73d2f Author: Steve Loughran <[email protected]> Authored: Tue Nov 28 11:57:51 2017 +0000 Committer: Steve Loughran <[email protected]> Committed: Tue Nov 28 11:57:51 2017 +0000 ---------------------------------------------------------------------- .../java/org/apache/hadoop/fs/azure/PageBlobInputStream.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/5c37a0b8/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/PageBlobInputStream.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/PageBlobInputStream.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/PageBlobInputStream.java index 097201b..aaac490 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/PageBlobInputStream.java +++ b/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; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
