synchronized (VM_ClassLoader.lock) { I.load(); }
VM_Runtime.initializeClassForDynamicLink(I);
  private static VM_Method repairInterfaceMethodHelper(VM_Method m,                                                        boolean canLoad,						       VM_Class I,                                                        VM_Atom name,                                                        VM_Atom desc)     throws VM_ResolutionException {    if (!I.isLoaded()) {      if (canLoad) {	synchronized (VM_ClassLoader.lock) {	  I.load();	}	if (!I.isInterface())           throw new VM_ResolutionException(I.getDescriptor(),                                            new IncompatibleClassChangeError());      } else {	return null;      }    }    VM_Method [] dm = I.getDeclaredMethods();    for (int i=0; i<dm.length; i++ ) {      VM_Method n = dm[i];      if (name == n.getName() && desc == n.getDescriptor() && n.isLoaded()) {	VM_MethodDictionary.setValue(m.getDictionaryId(), n);	return n;      }    }    VM_Class [] superInterfaces = I.getDeclaredInterfaces();    for (int i=0; i<superInterfaces.length; i++) {      VM_Class superInterface = superInterfaces[i];      VM_Method n = repairInterfaceMethodHelper(m, canLoad,                                                 superInterface, name, desc);      if (n != null) return n;    }    return null;  }