[Mercurial] Should return null in case of error.
authorKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Thu, 5 Aug 2010 16:27:01 +0000 (20:27 +0400)
committerKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Thu, 5 Aug 2010 16:27:01 +0000 (20:27 +0400)
plugins/hg4idea/src/org/zmlx/hg4idea/command/HgCatCommand.java

index cd71aa6579c07d00c90135fa5fb14e21a1c17ad6..1d0ea824634fa1e77e66c4e4ac4e2484ef5e1832 100644 (file)
@@ -14,6 +14,7 @@ package org.zmlx.hg4idea.command;
 
 import com.intellij.openapi.project.Project;
 import org.apache.commons.lang.StringUtils;
+import org.jetbrains.annotations.Nullable;
 import org.zmlx.hg4idea.HgFile;
 import org.zmlx.hg4idea.HgRevisionNumber;
 
@@ -30,13 +31,14 @@ public class HgCatCommand {
     myProject = project;
   }
 
+  @Nullable
   public String execute(HgFile hgFile, HgRevisionNumber vcsRevisionNumber, Charset charset) {
     final List<String> arguments = createArguments(vcsRevisionNumber, hgFile.getRelativePath());
     final HgCommandService service = HgCommandService.getInstance(myProject);
     final HgCommandResult result = service.execute(hgFile.getRepo(), Collections.<String>emptyList(), "cat", arguments, charset);
 
     if (result == null) { // in case of error
-      return "";
+      return null;
     }
     if (result.getExitValue() == 1) { // file not found in given revision
       return getContentFollowingRenames(hgFile, vcsRevisionNumber, charset, service);
@@ -44,15 +46,16 @@ public class HgCatCommand {
     return result.getRawOutput();
   }
 
+  @Nullable
   private String getContentFollowingRenames(HgFile hgFile, HgRevisionNumber vcsRevisionNumber, Charset charset, HgCommandService service) {
     final String renamedHgFile = new HgTrackFileNamesAccrossRevisionsCommand(myProject)
       .execute(hgFile, getCurrentRevision(hgFile), vcsRevisionNumber.getRevision(), -1);
-    if (renamedHgFile != null) {
-      final HgCommandResult result = service.execute(hgFile.getRepo(), Collections.<String>emptyList(), "cat",
-                                                     createArguments(vcsRevisionNumber, renamedHgFile), charset);
-      return result != null ? result.getRawOutput() : "";
+    if (renamedHgFile == null) {
+      return null;
     }
-    return "";
+    final HgCommandResult result = service.execute(hgFile.getRepo(), Collections.<String>emptyList(), "cat",
+                                                   createArguments(vcsRevisionNumber, renamedHgFile), charset);
+    return result != null ? result.getRawOutput() : null;
   }
 
   private String getCurrentRevision(HgFile hgFile) {