private void setNewMappedRoots(@NotNull List<VcsDirectoryMapping> mappings,
                                 @NotNull Mappings newMappedRoots,
                                 boolean fireMappingsChangedEvent) {
    Map<VirtualFile, @NlsSafe String> newMappedRootNames = buildMappingShortNameMap(myProject, newMappedRoots.mappedRoots);

    boolean mappedRootsChanged;
    synchronized (myUpdateLock) {
      if (myMappings != mappings) {
        Disposer.dispose(newMappedRoots.filePointerDisposable);
        return;
      }

      Disposer.dispose(myFilePointerDisposable);
      myFilePointerDisposable = newMappedRoots.filePointerDisposable;

      mappedRootsChanged = !myMappedRoots.equals(newMappedRoots.mappedRoots);
      if (mappedRootsChanged) {
        myMappedRoots = newMappedRoots.mappedRoots;
        myMappedRootsMapping = new RootMapping(newMappedRoots.mappedRoots);
        myMappedRootShortNames = newMappedRootNames;

        dumpMappedRootsToLog();
      }
    }

    if (fireMappingsChangedEvent && mappedRootsChanged) notifyMappingsChanged();
  }
private void setNewMappedRoots(@NotNull List<VcsDirectoryMapping> mappings,
                                 @NotNull Mappings newMappedRoots,
                                 boolean fireMappingsChangedEvent)