--- old/src/share/vm/oops/constantPool.cpp 2017-06-08 09:09:11.241265961 -0400 +++ new/src/share/vm/oops/constantPool.cpp 2017-06-08 09:09:11.137201659 -0400 @@ -740,6 +740,7 @@ case JVM_CONSTANT_MethodHandleInError: case JVM_CONSTANT_MethodTypeInError: + case JVM_CONSTANT_InvokeDynamicInError: { throw_resolution_error(this_cp, index, CHECK_NULL); break; @@ -1407,6 +1408,7 @@ } break; case JVM_CONSTANT_InvokeDynamic: + case JVM_CONSTANT_InvokeDynamicInError: { int k1 = from_cp->invoke_dynamic_bootstrap_specifier_index(from_i); int k2 = from_cp->invoke_dynamic_name_and_type_ref_index_at(from_i); @@ -1668,6 +1670,7 @@ return 5; case JVM_CONSTANT_InvokeDynamic: + case JVM_CONSTANT_InvokeDynamicInError: // u1 tag, u2 bsm, u2 nt return 5; @@ -1852,7 +1855,8 @@ DBG(printf("JVM_CONSTANT_MethodType: %hd", idx1)); break; } - case JVM_CONSTANT_InvokeDynamic: { + case JVM_CONSTANT_InvokeDynamic: + case JVM_CONSTANT_InvokeDynamicInError: { *bytes = tag; idx1 = extract_low_short_from_int(*int_at_addr(idx)); idx2 = extract_high_short_from_int(*int_at_addr(idx)); @@ -2058,6 +2062,7 @@ st->print("signature_index=%d", method_type_index_at(index)); break; case JVM_CONSTANT_InvokeDynamic : + case JVM_CONSTANT_InvokeDynamicInError : { st->print("bootstrap_method_index=%d", invoke_dynamic_bootstrap_method_ref_index_at(index)); st->print(" name_and_type_index=%d", invoke_dynamic_name_and_type_ref_index_at(index));