diff -r 569c17cefddf -r b40fd2bd2fac hotspot/src/share/vm/classfile/javaClasses.hpp --- a/hotspot/src/share/vm/classfile/javaClasses.hpp Sat Jul 16 22:21:39 2011 -0400 +++ b/hotspot/src/share/vm/classfile/javaClasses.hpp Fri Jul 22 00:29:01 2011 -0700 @@ -393,6 +393,9 @@ hc_cause_offset = 2, // New since 1.4 hc_stackTrace_offset = 3 // New since 1.4 }; + enum { + hc_static_unassigned_stacktrace_offset = 0 // New since 1.7 + }; // Trace constants enum { trace_methods_offset = 0, @@ -406,6 +409,7 @@ static int detailMessage_offset; static int cause_offset; static int stackTrace_offset; + static int static_unassigned_stacktrace_offset; // Printing static char* print_stack_element_to_buffer(methodOop method, int bci); @@ -414,6 +418,9 @@ static void clear_stacktrace(oop throwable); // No stack trace available static const char* no_stack_trace_message(); + // Stacktrace (post JDK 1.7.0 to allow immutability protocol to be followed) + static void set_stacktrace(oop throwable, oop st_element_array); + static oop unassigned_stacktrace(); public: // Backtrace @@ -438,7 +445,6 @@ static void allocate_backtrace(Handle throwable, TRAPS); // Fill in current stack trace for throwable with preallocated backtrace (no GC) static void fill_in_stack_trace_of_preallocated_backtrace(Handle throwable); - // Fill in current stack trace, can cause GC static void fill_in_stack_trace(Handle throwable, methodHandle method, TRAPS); static void fill_in_stack_trace(Handle throwable, methodHandle method = methodHandle());