117 oop Universe::_out_of_memory_error_java_heap = NULL; |
117 oop Universe::_out_of_memory_error_java_heap = NULL; |
118 oop Universe::_out_of_memory_error_metaspace = NULL; |
118 oop Universe::_out_of_memory_error_metaspace = NULL; |
119 oop Universe::_out_of_memory_error_class_metaspace = NULL; |
119 oop Universe::_out_of_memory_error_class_metaspace = NULL; |
120 oop Universe::_out_of_memory_error_array_size = NULL; |
120 oop Universe::_out_of_memory_error_array_size = NULL; |
121 oop Universe::_out_of_memory_error_gc_overhead_limit = NULL; |
121 oop Universe::_out_of_memory_error_gc_overhead_limit = NULL; |
|
122 oop Universe::_out_of_memory_error_realloc_objects = NULL; |
122 objArrayOop Universe::_preallocated_out_of_memory_error_array = NULL; |
123 objArrayOop Universe::_preallocated_out_of_memory_error_array = NULL; |
123 volatile jint Universe::_preallocated_out_of_memory_error_avail_count = 0; |
124 volatile jint Universe::_preallocated_out_of_memory_error_avail_count = 0; |
124 bool Universe::_verify_in_progress = false; |
125 bool Universe::_verify_in_progress = false; |
125 oop Universe::_null_ptr_exception_instance = NULL; |
126 oop Universe::_null_ptr_exception_instance = NULL; |
126 oop Universe::_arithmetic_exception_instance = NULL; |
127 oop Universe::_arithmetic_exception_instance = NULL; |
188 f->do_oop((oop*)&_out_of_memory_error_java_heap); |
189 f->do_oop((oop*)&_out_of_memory_error_java_heap); |
189 f->do_oop((oop*)&_out_of_memory_error_metaspace); |
190 f->do_oop((oop*)&_out_of_memory_error_metaspace); |
190 f->do_oop((oop*)&_out_of_memory_error_class_metaspace); |
191 f->do_oop((oop*)&_out_of_memory_error_class_metaspace); |
191 f->do_oop((oop*)&_out_of_memory_error_array_size); |
192 f->do_oop((oop*)&_out_of_memory_error_array_size); |
192 f->do_oop((oop*)&_out_of_memory_error_gc_overhead_limit); |
193 f->do_oop((oop*)&_out_of_memory_error_gc_overhead_limit); |
|
194 f->do_oop((oop*)&_out_of_memory_error_realloc_objects); |
193 f->do_oop((oop*)&_preallocated_out_of_memory_error_array); |
195 f->do_oop((oop*)&_preallocated_out_of_memory_error_array); |
194 f->do_oop((oop*)&_null_ptr_exception_instance); |
196 f->do_oop((oop*)&_null_ptr_exception_instance); |
195 f->do_oop((oop*)&_arithmetic_exception_instance); |
197 f->do_oop((oop*)&_arithmetic_exception_instance); |
196 f->do_oop((oop*)&_virtual_machine_error_instance); |
198 f->do_oop((oop*)&_virtual_machine_error_instance); |
197 f->do_oop((oop*)&_main_thread_group); |
199 f->do_oop((oop*)&_main_thread_group); |
572 // to allocate the backtrace. |
574 // to allocate the backtrace. |
573 return ((throwable() != Universe::_out_of_memory_error_java_heap) && |
575 return ((throwable() != Universe::_out_of_memory_error_java_heap) && |
574 (throwable() != Universe::_out_of_memory_error_metaspace) && |
576 (throwable() != Universe::_out_of_memory_error_metaspace) && |
575 (throwable() != Universe::_out_of_memory_error_class_metaspace) && |
577 (throwable() != Universe::_out_of_memory_error_class_metaspace) && |
576 (throwable() != Universe::_out_of_memory_error_array_size) && |
578 (throwable() != Universe::_out_of_memory_error_array_size) && |
577 (throwable() != Universe::_out_of_memory_error_gc_overhead_limit)); |
579 (throwable() != Universe::_out_of_memory_error_gc_overhead_limit) && |
|
580 (throwable() != Universe::_out_of_memory_error_realloc_objects)); |
578 } |
581 } |
579 |
582 |
580 |
583 |
581 oop Universe::gen_out_of_memory_error(oop default_err) { |
584 oop Universe::gen_out_of_memory_error(oop default_err) { |
582 // generate an out of memory error: |
585 // generate an out of memory error: |
1042 Universe::_out_of_memory_error_metaspace = k_h->allocate_instance(CHECK_false); |
1045 Universe::_out_of_memory_error_metaspace = k_h->allocate_instance(CHECK_false); |
1043 Universe::_out_of_memory_error_class_metaspace = k_h->allocate_instance(CHECK_false); |
1046 Universe::_out_of_memory_error_class_metaspace = k_h->allocate_instance(CHECK_false); |
1044 Universe::_out_of_memory_error_array_size = k_h->allocate_instance(CHECK_false); |
1047 Universe::_out_of_memory_error_array_size = k_h->allocate_instance(CHECK_false); |
1045 Universe::_out_of_memory_error_gc_overhead_limit = |
1048 Universe::_out_of_memory_error_gc_overhead_limit = |
1046 k_h->allocate_instance(CHECK_false); |
1049 k_h->allocate_instance(CHECK_false); |
|
1050 Universe::_out_of_memory_error_realloc_objects = k_h->allocate_instance(CHECK_false); |
1047 |
1051 |
1048 // Setup preallocated NullPointerException |
1052 // Setup preallocated NullPointerException |
1049 // (this is currently used for a cheap & dirty solution in compiler exception handling) |
1053 // (this is currently used for a cheap & dirty solution in compiler exception handling) |
1050 k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_NullPointerException(), true, CHECK_false); |
1054 k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_NullPointerException(), true, CHECK_false); |
1051 Universe::_null_ptr_exception_instance = InstanceKlass::cast(k)->allocate_instance(CHECK_false); |
1055 Universe::_null_ptr_exception_instance = InstanceKlass::cast(k)->allocate_instance(CHECK_false); |
1081 java_lang_Throwable::set_message(Universe::_out_of_memory_error_array_size, msg()); |
1085 java_lang_Throwable::set_message(Universe::_out_of_memory_error_array_size, msg()); |
1082 |
1086 |
1083 msg = java_lang_String::create_from_str("GC overhead limit exceeded", CHECK_false); |
1087 msg = java_lang_String::create_from_str("GC overhead limit exceeded", CHECK_false); |
1084 java_lang_Throwable::set_message(Universe::_out_of_memory_error_gc_overhead_limit, msg()); |
1088 java_lang_Throwable::set_message(Universe::_out_of_memory_error_gc_overhead_limit, msg()); |
1085 |
1089 |
|
1090 msg = java_lang_String::create_from_str("Java heap space: failed reallocation of scalar replaced objects", CHECK_false); |
|
1091 java_lang_Throwable::set_message(Universe::_out_of_memory_error_realloc_objects, msg()); |
|
1092 |
1086 msg = java_lang_String::create_from_str("/ by zero", CHECK_false); |
1093 msg = java_lang_String::create_from_str("/ by zero", CHECK_false); |
1087 java_lang_Throwable::set_message(Universe::_arithmetic_exception_instance, msg()); |
1094 java_lang_Throwable::set_message(Universe::_arithmetic_exception_instance, msg()); |
1088 |
1095 |
1089 // Setup the array of errors that have preallocated backtrace |
1096 // Setup the array of errors that have preallocated backtrace |
1090 k = Universe::_out_of_memory_error_java_heap->klass(); |
1097 k = Universe::_out_of_memory_error_java_heap->klass(); |