void (final @Nullable Computable<Boolean> autoLoadDecision) { Runnable operation = () -> { boolean savedSuccessfully = ProgressManager.getInstance().computeInNonCancelableSection(() -> save()); LOG.debug("save result: " + savedSuccessfully); if (savedSuccessfully) { try { LOG.debug("running operation"); myOperation.run(); LOG.debug("operation completed."); } finally { if (autoLoadDecision == null || autoLoadDecision.compute()) { LOG.debug("loading"); ProgressManager.getInstance().executeNonCancelableSection(() -> load()); } else { mySaver.notifyLocalChangesAreNotRestored(); } } } LOG.debug("finished."); }; new GitFreezingProcess(myProject, myOperationTitle, operation).execute(); }