diff -r 65d07d9ee446 -r 8e47bac5643a src/share/vm/oops/instanceOop.hpp --- a/src/share/vm/oops/instanceOop.hpp Mon Oct 08 17:04:00 2012 -0700 +++ b/src/share/vm/oops/instanceOop.hpp Tue Oct 09 10:11:38 2012 +0200 @@ -37,7 +37,9 @@ // If compressed, the offset of the fields of the instance may not be aligned. static int base_offset_in_bytes() { - return UseCompressedKlassPointers ? + // offset computation code breaks if UseCompressedKlassPointers + // only is true + return (UseCompressedOops && UseCompressedKlassPointers) ? klass_gap_offset_in_bytes() : sizeof(instanceOopDesc); }