code: protected void doResolveLazyCrossReference(InternalEObject source, EStructuralFeature crossRef) {
  		if (crossRef.isMany()) {
  			@SuppressWarnings("unchecked")
  			InternalEList<EObject> list = (InternalEList<EObject>) source.eGet(crossRef);
  			for (int i = 0; i < list.size(); i++) {
  				EObject proxy = list.basicGet(i);
  				if (proxy.eIsProxy()) {
  					URI proxyURI = ((InternalEObject) proxy).eProxyURI();
  					if (getURI().equals(proxyURI.trimFragment())) {
  						final String fragment = proxyURI.fragment();
  						if (getEncoder().isCrossLinkFragment(this, fragment)) {
  							EObject target = getEObject(fragment);
  							if (target != null) {
  								try {
  									source.eSetDeliver(false);
  									list.setUnique(i, target);
  								} finally {
  									source.eSetDeliver(true);
  								}
  							}
  						}
  					}
  				}
  			}
  		} else {
  			EObject proxy = (EObject) source.eGet(crossRef, false);
  			if (proxy != null && proxy.eIsProxy()) {
  				URI proxyURI = ((InternalEObject) proxy).eProxyURI();
  				if (getURI().equals(proxyURI.trimFragment())) {
  					final String fragment = proxyURI.fragment();
  					if (getEncoder().isCrossLinkFragment(this, fragment)) {
  						EObject target = getEObject(fragment);
  						if (target != null) {
  							try {
  								source.eSetDeliver(false);
  								source.eSet(crossRef, target);
  							} finally {
  								source.eSetDeliver(true);
  							}
  						}
  					}
  				}
  			}
  		}
  	}
docs: Ensures that all the lazy proxy values that are referenced by {@code crossRef} are replaced
  by non-lazy proxies or resolved instances.
  
  @since 2.4