code: @Override
  	public EObject getEObject(String uriFragment) {
  		synchronized (getLock()) {
  			try {
  				if (getEncoder().isCrossLinkFragment(this, uriFragment) && !isLoadedFromStorage()) {
  					if (!getUnresolvableURIFragments().contains(uriFragment)) {
  						Triple<EObject, EReference, INode> triple = getEncoder().decode(this, uriFragment);
  						if (batchLinkingService.isBatchLinkable(triple.getSecond())) {
  							if (compilerPhases.isIndexing(this))
  								log.error("Don't resolve expressions during indexing!", new IllegalStateException("Resource URI : "+getURI()+", fragment : "+uriFragment));
  							return batchLinkingService.resolveBatched(triple.getFirst(), triple.getSecond(), uriFragment);
  						}
  						return getEObject(uriFragment, triple);
  					} else {
  						return null;
  					}
  				}
  				return super.getEObject(uriFragment);
  			} catch (RuntimeException e) {
  				operationCanceledManager.propagateAsErrorIfCancelException(e);
  				getErrors().add(new ExceptionDiagnostic(e));
  				log.error("resolution of uriFragment '" + uriFragment + "' failed.", e);
  				// wrapped because the javaDoc of this method states that WrappedExceptions are thrown
  				// logged because EcoreUtil.resolve will ignore any exceptions.
  				throw new WrappedException(e);
  			}
  		}
  	}
docs: {@inheritDoc}
  
  Delegates to the {@link BatchLinkingService} if the requested reference is
  {@link BatchLinkingService#isBatchLinkable(EReference) linkeable in batch mode}.
  
  Implementation detail: This specialization of {@link #getEObject(String) getEObject}
  synchronizes on the {@link #getLock() lock} which is exposed by the synchronizable
  resource rather than on the resource directly. This guards against reentrant resolution
  from different threads that could block each other.
  
  Usually one would want to lock only in the {@link BatchLinkingService} but we could
  have intermixed {@link LazyURIEncoder#isCrossLinkFragment(org.eclipse.emf.ecore.resource.Resource, String)
  lazy cross reference} and vanilla EMF cross references which again could lead to a
  dead lock.