public StorageItem dereferenceLink( StorageLinkItem link, boolean localOnly, boolean remoteOnly ) throws AccessDeniedException, ItemNotFoundException, IllegalOperationException, StorageException { logger.debug( "Dereferencing link {}", link.getTarget() ); ResourceStoreRequest req = new ResourceStoreRequest( link.getTarget().getPath(), localOnly, remoteOnly ); req.getRequestContext().setParentContext( link.getItemContext() ); return link.getTarget().getRepository().retrieveItem( req ); }