[patch]: IDEA-148175 actualApply and executeWritable may return null if we didn't... phpstorm/144.3513
authorNadya Zabrodina <Nadya.Zabrodina@jetbrains.com>
Fri, 29 Jan 2016 11:14:08 +0000 (14:14 +0300)
committerNadya Zabrodina <Nadya.Zabrodina@jetbrains.com>
Fri, 29 Jan 2016 11:15:48 +0000 (14:15 +0300)
* add annotations;
* getStatus from actual apply should return alreadyApplied if nothing to apply;

platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/formove/PatchApplier.java

index 6477f7d29f626315729d5d7c78ff245f8fca5325..b1d7de38617ac3eec3407ec55eaeb229e4cc9f80 100644 (file)
@@ -214,7 +214,8 @@ public class PatchApplier<BinaryType extends FilePatch> {
         returnConfirmationBack();
         VcsFileListenerContextHelper.getInstance(myProject).clearContext();
       }
-      return refStatus.get();
+      final ApplyPatchStatus status = refStatus.get();
+      return status == null ? ApplyPatchStatus.ALREADY_APPLIED : status;
     }
 
     private void returnConfirmationBack() {
@@ -363,6 +364,7 @@ public class PatchApplier<BinaryType extends FilePatch> {
     trigger.addDeleted(myVerifier.getToBeDeleted());
   }
 
+  @NotNull
   public ApplyPatchStatus nonWriteActionPreCheck() {
     final List<FilePatch> failedPreCheck = myVerifier.nonWriteActionPreCheck();
     myFailedPatches.addAll(failedPreCheck);
@@ -376,6 +378,7 @@ public class PatchApplier<BinaryType extends FilePatch> {
            : ((skipped.size() == myPatches.size()) ? ApplyPatchStatus.ALREADY_APPLIED : ApplyPatchStatus.PARTIAL);
   }
 
+  @Nullable
   protected ApplyPatchStatus executeWritable() {
     final ReadonlyStatusHandler.OperationStatus readOnlyFilesStatus = getReadOnlyFilesStatus(myVerifier.getWritableFiles());
     if (readOnlyFilesStatus.hasReadonlyFiles()) {