Repository: hadoop Updated Branches: refs/heads/branch-2 8347b1048 -> 03c292efb
HADOOP-11901. BytesWritable fails to support 2G chunks due to integer overflow. Contributed by Reynold Xin. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/03c292ef Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/03c292ef Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/03c292ef Branch: refs/heads/branch-2 Commit: 03c292efb7338599d1a1d9a8b5a5a1a3ff94eacd Parents: 8347b10 Author: Haohui Mai <[email protected]> Authored: Thu Nov 19 12:54:08 2015 -0800 Committer: Haohui Mai <[email protected]> Committed: Thu Nov 19 12:54:16 2015 -0800 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../src/main/java/org/apache/hadoop/io/BytesWritable.java | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/03c292ef/hadoop-common-project/hadoop-common/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 62fe021..1a5c236 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -805,6 +805,9 @@ Release 2.8.0 - UNRELEASED HADOOP-12484. Single File Rename Throws Incorrectly In Potential Race Condition Scenarios. (Gaurav Kanade via cnauroth) + HADOOP-11901. BytesWritable fails to support 2G chunks due to integer + overflow. (Reynold Xin via wheat9) + Release 2.7.3 - UNRELEASED INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/03c292ef/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/BytesWritable.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/BytesWritable.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/BytesWritable.java index 155df3a..7d7b75b 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/BytesWritable.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/BytesWritable.java @@ -120,7 +120,9 @@ public class BytesWritable extends BinaryComparable */ public void setSize(int size) { if (size > getCapacity()) { - setCapacity(size * 3 / 2); + // Avoid overflowing the int too early by casting to a long. + long newSize = Math.min(Integer.MAX_VALUE, (3L * size) / 2L); + setCapacity((int) newSize); } this.size = size; }
