# HG changeset patch # User kvn # Date 1237407902 25200 # Node ID 039a914095f483be927b5605a3f5a46bb4c9949a # Parent c3a720eefe8201f28998816a80fc097550fe1244 6772368: REGRESSION:tomcat crashed twice with JDK 7 Summary: Call make_block_at() with the original handler limits. Reviewed-by: never diff -r c3a720eefe82 -r 039a914095f4 src/share/vm/ci/ciMethodBlocks.cpp --- a/src/share/vm/ci/ciMethodBlocks.cpp Mon Mar 16 15:06:33 2009 -0700 +++ b/src/share/vm/ci/ciMethodBlocks.cpp Wed Mar 18 13:25:02 2009 -0700 @@ -284,6 +284,11 @@ // int ex_start = handler->start(); int ex_end = handler->limit(); + // ensure a block at the start of exception range and start of following code + (void) make_block_at(ex_start); + if (ex_end < _code_size) + (void) make_block_at(ex_end); + if (eb->is_handler()) { // Extend old handler exception range to cover additional range. int old_ex_start = eb->ex_start_bci(); @@ -295,10 +300,6 @@ eb->clear_exception_handler(); // Reset exception information } eb->set_exception_range(ex_start, ex_end); - // ensure a block at the start of exception range and start of following code - (void) make_block_at(ex_start); - if (ex_end < _code_size) - (void) make_block_at(ex_end); } }