1.1 --- a/src/share/vm/classfile/stackMapTable.cpp Fri Apr 01 15:15:37 2011 -0700 1.2 +++ b/src/share/vm/classfile/stackMapTable.cpp Thu Mar 31 08:08:50 2011 -0400 1.3 @@ -98,10 +98,13 @@ 1.4 bool result = true; 1.5 StackMapFrame *stackmap_frame = _frame_array[frame_index]; 1.6 if (match) { 1.7 + // when checking handler target, match == true && update == false 1.8 + bool is_exception_handler = !update; 1.9 // Has direct control flow from last instruction, need to match the two 1.10 // frames. 1.11 result = frame->is_assignable_to( 1.12 - stackmap_frame, CHECK_VERIFY_(frame->verifier(), false)); 1.13 + stackmap_frame, is_exception_handler, 1.14 + CHECK_VERIFY_(frame->verifier(), false)); 1.15 } 1.16 if (update) { 1.17 // Use the frame in stackmap table as current frame