You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2013/11/26 23:34:02 UTC

svn commit: r1545876 - /hbase/trunk/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java

Author: apurtell
Date: Tue Nov 26 22:34:01 2013
New Revision: 1545876

URL: http://svn.apache.org/r1545876
Log:
HBASE-10032. [JDK8] ConcurrentSkipListMap class size changed

Modified:
    hbase/trunk/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java

Modified: hbase/trunk/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java?rev=1545876&r1=1545875&r2=1545876&view=diff
==============================================================================
--- hbase/trunk/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java (original)
+++ hbase/trunk/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java Tue Nov 26 22:34:01 2013
@@ -23,6 +23,7 @@ package org.apache.hadoop.hbase.util;
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentSkipListMap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -168,7 +169,8 @@ public class ClassSize {
     CONCURRENT_HASHMAP_SEGMENT = align(REFERENCE + OBJECT +
         (3 * Bytes.SIZEOF_INT) + Bytes.SIZEOF_FLOAT + ARRAY);
 
-    CONCURRENT_SKIPLISTMAP = align(Bytes.SIZEOF_INT + OBJECT + (8 * REFERENCE));
+    // The size changes from jdk7 to jdk8, estimate the size rather than use a conditional
+    CONCURRENT_SKIPLISTMAP = (int) estimateBase(ConcurrentSkipListMap.class, false);
 
     CONCURRENT_SKIPLISTMAP_ENTRY = align(
         align(OBJECT + (3 * REFERENCE)) + /* one node per entry */