diff --git a/src/hotspot/share/classfile/classFileParser.cpp b/src/hotspot/share/classfile/classFileParser.cpp index f5402569b354..145fa0a41089 100644 --- a/src/hotspot/share/classfile/classFileParser.cpp +++ b/src/hotspot/share/classfile/classFileParser.cpp @@ -2759,7 +2759,7 @@ static const intArray* sort_methods(Array* methods) { // We temporarily use the vtable_index field in the Method* to store the // class file index, so we can read in after calling qsort. // Put the method ordering in the shared archive. - if (JvmtiExport::can_maintain_original_method_order() || CDSConfig::is_dumping_archive()) { + if (AllowEnhancedClassRedefinition || JvmtiExport::can_maintain_original_method_order() || CDSConfig::is_dumping_archive()) { for (int index = 0; index < length; index++) { Method* const m = methods->at(index); assert(!m->valid_vtable_index(), "vtable index should not be set"); @@ -2773,7 +2773,7 @@ static const intArray* sort_methods(Array* methods) { intArray* method_ordering = nullptr; // If JVMTI original method ordering or sharing is enabled construct int // array remembering the original ordering - if (JvmtiExport::can_maintain_original_method_order() || CDSConfig::is_dumping_archive()) { + if (AllowEnhancedClassRedefinition || JvmtiExport::can_maintain_original_method_order() || CDSConfig::is_dumping_archive()) { method_ordering = new intArray(length, length, -1); for (int index = 0; index < length; index++) { Method* const m = methods->at(index); diff --git a/src/hotspot/share/classfile/defaultMethods.cpp b/src/hotspot/share/classfile/defaultMethods.cpp index a9c694c33c1a..bfb528898eda 100644 --- a/src/hotspot/share/classfile/defaultMethods.cpp +++ b/src/hotspot/share/classfile/defaultMethods.cpp @@ -1072,7 +1072,7 @@ static void merge_in_new_methods(InstanceKlass* klass, klass->class_loader_data(), new_size, nullptr, CHECK); // original_ordering might be empty if this class has no methods of its own - if (JvmtiExport::can_maintain_original_method_order() || CDSConfig::is_dumping_archive()) { + if (AllowEnhancedClassRedefinition || JvmtiExport::can_maintain_original_method_order() || CDSConfig::is_dumping_archive()) { merged_ordering = MetadataFactory::new_array( klass->class_loader_data(), new_size, CHECK); } diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp index cf4521650da3..436bce30a1b4 100644 --- a/src/hotspot/share/oops/instanceKlass.cpp +++ b/src/hotspot/share/oops/instanceKlass.cpp @@ -4293,7 +4293,7 @@ void InstanceKlass::verify_on(outputStream* st) { if (method_ordering() != nullptr) { Array* method_ordering = this->method_ordering(); int length = method_ordering->length(); - if (JvmtiExport::can_maintain_original_method_order() || + if (AllowEnhancedClassRedefinition || JvmtiExport::can_maintain_original_method_order() || ((CDSConfig::is_using_archive() || CDSConfig::is_dumping_archive()) && length != 0)) { guarantee(length == methods()->length(), "invalid method ordering length"); jlong sum = 0; diff --git a/src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp b/src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp index 381ad7d12fbe..0bfea2302de0 100644 --- a/src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp +++ b/src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp @@ -871,7 +871,7 @@ void JvmtiClassFileReconstituter::write_method_infos() { } write_u2(checked_cast(num_methods - num_overpass)); - if (JvmtiExport::can_maintain_original_method_order()) { + if (AllowEnhancedClassRedefinition || JvmtiExport::can_maintain_original_method_order()) { int index; int original_index; intArray method_order(num_methods, num_methods, 0); diff --git a/src/hotspot/share/prims/jvmtiManageCapabilities.cpp b/src/hotspot/share/prims/jvmtiManageCapabilities.cpp index 513d04bf8953..b9de8d0b8f76 100644 --- a/src/hotspot/share/prims/jvmtiManageCapabilities.cpp +++ b/src/hotspot/share/prims/jvmtiManageCapabilities.cpp @@ -362,7 +362,7 @@ void JvmtiManageCapabilities::update() { } JvmtiExport::set_can_get_source_debug_extension(avail.can_get_source_debug_extension); - JvmtiExport::set_can_maintain_original_method_order(AllowEnhancedClassRedefinition || avail.can_maintain_original_method_order); + JvmtiExport::set_can_maintain_original_method_order(avail.can_maintain_original_method_order); JvmtiExport::set_can_post_interpreter_events(interp_events); JvmtiExport::set_can_hotswap_or_post_breakpoint( avail.can_generate_breakpoint_events ||