public @NotNull <S extends StorageOwner> S getOrCreateStorage(final @NotNull StorageProvider<S> provider, PathRelativizerService relativizer) throws IOException {
    try {
      return (S)myStorages.computeIfAbsent(provider, _provider -> {
        try {
          return _provider.createStorage(myPaths.getTargetDataRoot(myTarget), relativizer);
        }
        catch (IOException e) {
          throw new BuildDataCorruptedException(e);
        }
      });
    }
    catch (BuildDataCorruptedException e) {
      LOG.info(e);
      throw e.getCause();
    }
  }
public @NotNull <S extends StorageOwner> S getOrCreateStorage(final @NotNull StorageProvider<S> provider, PathRelativizerService relativizer)