private static @NonNls String composeMessage(@NotNull VirtualFile file) {
    String url = file.getUrl();
    @NonNls String message = "Accessing invalid virtual file: " + url;
    String reason = getInvalidationReason(file);
    if (reason != null) {
      message += "; reason: " + reason;
    }
    try {
      VirtualFile found = VirtualFileManager.getInstance().findFileByUrl(url);
      message += "; original:" + hashCode(file) + "; found:" + hashCode(found);
      if (file.isInLocalFileSystem()) {
        boolean physicalExists = new File(file.getPath()).exists();
        message += "; File.exists()=" + physicalExists;
      }
      else {
        message += "; file system=" + file.getFileSystem();
      }
    }
    catch (Throwable t) {
      message += "; lookup failed: " + t.getMessage();
    }

    return message;
  }
private static @NonNls String composeMessage(@NotNull VirtualFile file)