public void loadChangesIfNeeded(@NotNull Project project) {
    if (myChanges != null) return;
    try {
      myChangesLoadingError = null;

      List<? extends FilePatch> list = ShelveChangesManager.loadPatchesWithoutContent(project, myPath, null);

      List<ShelvedChange> changes = new ArrayList<>();
      for (FilePatch patch : list) {
        ShelvedChange change = createShelvedChange(project, myPath, patch);
        if (change != null) {
          changes.add(change);
        }
        else if (myChangesLoadingError == null) {
          String patchName = ObjectUtils.coalesce(patch.getBeforeName(), patch.getAfterName(), myPath.toString());
          myChangesLoadingError = VcsBundle.message("shelve.loading.patch.error", patchName);
        }
      }
      myChanges = changes;
    }
    catch (Throwable e) {
      LOG.warn("Failed to parse the file patch: [" + myPath + "]", e);
      myChanges = Collections.emptyList();
      myChangesLoadingError = VcsBundle.message("shelve.loading.patch.error", e.getMessage());
    }
  }
public void loadChangesIfNeeded(@NotNull Project project)