diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java index d9ef5e2..eabcfd1 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java @@ -129,12 +129,19 @@ public class ClassSize { REFERENCE = 8; } + boolean isIBM = System.getProperty("java.vendor").contains("IBM"); + OBJECT = 2 * REFERENCE; ARRAY = align(3 * REFERENCE); - ARRAYLIST = align(OBJECT + align(REFERENCE) + align(ARRAY) + + if (isIBM) { + ARRAYLIST = align(OBJECT + align(REFERENCE) + align(ARRAY) + + (3 * Bytes.SIZEOF_INT)); + } else { + ARRAYLIST = align(OBJECT + align(REFERENCE) + align(ARRAY) + (2 * Bytes.SIZEOF_INT)); + } //noinspection PointlessArithmeticExpression BYTE_BUFFER = align(OBJECT + align(REFERENCE) + align(ARRAY) +