--- old/src/share/vm/memory/metaspace.cpp 2015-06-12 12:29:46.799972556 +0900 +++ new/src/share/vm/memory/metaspace.cpp 2015-06-12 12:29:46.711974705 +0900 @@ -3196,6 +3196,22 @@ MaxMetaspaceExpansion = align_size_down_bounded(MaxMetaspaceExpansion, _commit_alignment); CompressedClassSpaceSize = align_size_down_bounded(CompressedClassSpaceSize, _reserve_alignment); + + if (UseCompressedClassPointers) { + if ((InitialBootClassLoaderMetaspaceSize + CompressedClassSpaceSize) + >= MaxMetaspaceSize) { + vm_exit_during_initialization( + "Sum of InitialBootClassLoaderMetaspaceSize and CompressedClassSpaceSize" + " should be less than MaxMetaspaceSize."); + } + } else { + if (InitialBootClassLoaderMetaspaceSize >= MaxMetaspaceSize) { + vm_exit_during_initialization( + "InitialBootClassLoaderMetaspaceSize should be less than" + " MaxMetaspaceSize."); + } + } + set_compressed_class_space_size(CompressedClassSpaceSize); }