1.1 --- a/src/share/vm/ci/ciReplay.cpp Thu May 01 17:57:29 2014 -0700 1.2 +++ b/src/share/vm/ci/ciReplay.cpp Tue Apr 29 10:29:56 2014 -0700 1.3 @@ -376,11 +376,15 @@ 1.4 int c = getc(_stream); 1.5 while(c != EOF) { 1.6 c = get_line(c); 1.7 - process_command(CHECK); 1.8 + process_command(THREAD); 1.9 if (had_error()) { 1.10 tty->print_cr("Error while parsing line %d: %s\n", line_no, _error_message); 1.11 - tty->print_cr("%s", _buffer); 1.12 - return; 1.13 + if (ReplayIgnoreInitErrors) { 1.14 + CLEAR_PENDING_EXCEPTION; 1.15 + _error_message = NULL; 1.16 + } else { 1.17 + return; 1.18 + } 1.19 } 1.20 line_no++; 1.21 } 1.22 @@ -565,10 +569,14 @@ 1.23 void process_ciMethodData(TRAPS) { 1.24 Method* method = parse_method(CHECK); 1.25 if (had_error()) return; 1.26 - /* jsut copied from Method, to build interpret data*/ 1.27 + /* just copied from Method, to build interpret data*/ 1.28 if (InstanceRefKlass::owns_pending_list_lock((JavaThread*)THREAD)) { 1.29 return; 1.30 } 1.31 + // To be properly initialized, some profiling in the MDO needs the 1.32 + // method to be rewritten (number of arguments at a call for 1.33 + // instance) 1.34 + method->method_holder()->link_class(CHECK); 1.35 // methodOopDesc::build_interpreter_method_data(method, CHECK); 1.36 { 1.37 // Grab a lock here to prevent multiple