public void markDirty(@NotNull FilePath filePath) {
    if (myEverythingDirty) return;

    String path = filePath.getPath();
    if (getParentPrefixOf(path, myRoot, myCaseSensitive) != -1) {
      markEverythingDirty();
      return;
    }

    int startIndex = getParentPrefixOf(myRoot, path, myCaseSensitive);
    if (startIndex == -1) {
      if (ApplicationManager.getApplication().isInternal()) {
        LOG.error(new Throwable(String.format("Invalid dirty path for root %s: %s", myRoot, path)));
      }
      else {
        LOG.warn(new Throwable(String.format("Invalid dirty path for root %s: %s", myRoot, path)));
      }
      markEverythingDirty();
      return;
    }

    markDirtyRelative(path, startIndex);
  }
public void markDirty(@NotNull FilePath filePath)