IDEA-56861 NPE
authorKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Tue, 3 Aug 2010 10:25:02 +0000 (14:25 +0400)
committerKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Tue, 3 Aug 2010 10:25:02 +0000 (14:25 +0400)
plugins/hg4idea/src/org/zmlx/hg4idea/command/HgWorkingCopyRevisionsCommand.java

index 76b58df3ca1e8295c0eacdc6afc2d5d0ee70a918..a1b2d6603709e0b0085c301de940d23ef9ff4cdc 100644 (file)
@@ -47,6 +47,7 @@ public class HgWorkingCopyRevisionsCommand {
     }
   }
 
+  @Nullable
   public HgRevisionNumber tip(@NotNull VirtualFile repo) {
     List<HgRevisionNumber> tips = getRevisions(repo, "tip");
     if (tips.size() > 1) {
@@ -58,13 +59,17 @@ public class HgWorkingCopyRevisionsCommand {
     else return null;
   }
 
+  @Nullable
   public HgRevisionNumber identify(@NotNull VirtualFile repo) {
     HgCommandService commandService = HgCommandService.getInstance(project);
     HgCommandResult result = commandService.execute(
       repo, "identify", Arrays.asList("--num", "--id")
     );
-    List<String> lines = result.getOutputLines();
-    if (!lines.isEmpty()) {
+    if (result == null) {
+      return null;
+    }
+    final List<String> lines = result.getOutputLines();
+    if (lines != null && !lines.isEmpty()) {
       String[] parts = StringUtils.split(lines.get(0), ' ');
       if (parts.length >= 2) {
         return HgRevisionNumber.getInstance(parts[1], parts[0]);
@@ -73,11 +78,16 @@ public class HgWorkingCopyRevisionsCommand {
     return null;
   }
 
+  @NotNull
   private List<HgRevisionNumber> getRevisions(VirtualFile repo, String command) {
     HgCommandService commandService = HgCommandService.getInstance(project);
     HgCommandResult result = commandService.execute(
       repo, command, Arrays.asList("--template", "{rev}|{node|short}\\n")
     );
+
+    if (result == null) {
+      return new ArrayList<HgRevisionNumber>(0);
+    }
     List<String> lines = result.getOutputLines();
     List<HgRevisionNumber> revisions = new ArrayList<HgRevisionNumber>(lines.size());