--- old/src/share/vm/prims/whitebox.cpp 2016-07-27 21:24:43.943159429 +0300 +++ new/src/share/vm/prims/whitebox.cpp 2016-07-27 21:24:43.851157927 +0300 @@ -350,6 +350,11 @@ return (jlong)alignment; WB_END +WB_ENTRY(jlong, WB_GetHeapAlignment(JNIEnv* env, jobject o)) + size_t alignment = Universe::heap()->collector_policy()->heap_alignment(); + return (jlong)alignment; +WB_END + #if INCLUDE_ALL_GCS WB_ENTRY(jboolean, WB_G1IsHumongous(JNIEnv* env, jobject o, jobject obj)) G1CollectedHeap* g1 = G1CollectedHeap::heap(); @@ -401,14 +406,21 @@ WB_END WB_ENTRY(jlong, WB_PSVirtualSpaceAlignment(JNIEnv* env, jobject o)) - ParallelScavengeHeap* ps = ParallelScavengeHeap::heap(); - size_t alignment = ps->gens()->virtual_spaces()->alignment(); - return (jlong)alignment; +#if INCLUDE_ALL_GCS + if (UseParallelGC) { + return ParallelScavengeHeap::heap()->gens()->virtual_spaces()->alignment(); + } +#endif // INCLUDE_ALL_GCS + THROW_MSG_0(vmSymbols::java_lang_RuntimeException(), "WB_PSVirtualSpaceAlignment: Parallel GC is not enabled"); WB_END WB_ENTRY(jlong, WB_PSHeapGenerationAlignment(JNIEnv* env, jobject o)) - size_t alignment = ParallelScavengeHeap::heap()->generation_alignment(); - return (jlong)alignment; +#if INCLUDE_ALL_GCS + if (UseParallelGC) { + return ParallelScavengeHeap::heap()->generation_alignment(); + } +#endif // INCLUDE_ALL_GCS + THROW_MSG_0(vmSymbols::java_lang_RuntimeException(), "WB_PSHeapGenerationAlignment: Parallel GC is not enabled"); WB_END WB_ENTRY(jobject, WB_G1AuxiliaryMemoryUsage(JNIEnv* env)) @@ -1693,6 +1705,7 @@ {CC"getVMAllocationGranularity", CC"()J", (void*)&WB_GetVMAllocationGranularity }, {CC"getVMLargePageSize", CC"()J", (void*)&WB_GetVMLargePageSize}, {CC"getHeapSpaceAlignment", CC"()J", (void*)&WB_GetHeapSpaceAlignment}, + {CC"getHeapAlignment", CC"()J", (void*)&WB_GetHeapAlignment}, {CC"isClassAlive0", CC"(Ljava/lang/String;)Z", (void*)&WB_IsClassAlive }, {CC"parseCommandLine0", CC"(Ljava/lang/String;C[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;",