1.1 --- a/src/share/vm/code/dependencies.cpp Mon Feb 25 15:05:44 2008 -0800 1.2 +++ b/src/share/vm/code/dependencies.cpp Wed Feb 27 00:23:37 2008 -0800 1.3 @@ -882,6 +882,14 @@ 1.4 // Must not move the class hierarchy during this check: 1.5 assert_locked_or_safepoint(Compile_lock); 1.6 1.7 + int nof_impls = instanceKlass::cast(context_type)->nof_implementors(); 1.8 + if (nof_impls > 1) { 1.9 + // Avoid this case: *I.m > { A.m, C }; B.m > C 1.10 + // %%% Until this is fixed more systematically, bail out. 1.11 + // See corresponding comment in find_witness_anywhere. 1.12 + return context_type; 1.13 + } 1.14 + 1.15 assert(!is_participant(new_type), "only old classes are participants"); 1.16 if (participants_hide_witnesses) { 1.17 // If the new type is a subtype of a participant, we are done.