fix NPE
authorEugene Petrenko <eugene.petrenko@gmail.com>
Tue, 19 Jul 2011 14:52:42 +0000 (18:52 +0400)
committerEugene Petrenko <eugene.petrenko@gmail.com>
Tue, 19 Jul 2011 15:09:15 +0000 (19:09 +0400)
nuget-server/src/jetbrains/buildServer/nuget/server/exec/ListPackagesCommandProcessor.java
nuget-server/src/jetbrains/buildServer/nuget/server/exec/PackageInfo.java
nuget-server/src/jetbrains/buildServer/nuget/server/trigger/NamedPackagesUpdateChecker.java
nuget-tests/src/jetbrains/buildServer/nuget/tests/server/ListPackagesCommandProcessorTest.java

index 1dfd8529f959df754de7b45b7519471163ac2b9c..950027009330bca1ef705d7b69011f0266d3ac98 100644 (file)
@@ -21,6 +21,7 @@ import jetbrains.buildServer.messages.serviceMessages.ServiceMessage;
 import jetbrains.buildServer.messages.serviceMessages.ServiceMessageParserCallback;\r
 import jetbrains.buildServer.util.StringUtil;\r
 import org.jetbrains.annotations.NotNull;\r
+import org.jetbrains.annotations.Nullable;\r
 \r
 import java.text.ParseException;\r
 import java.util.ArrayList;\r
@@ -37,7 +38,7 @@ public class ListPackagesCommandProcessor implements NuGetOutputProcessor<Collec
   private final String mySource;\r
   private final List<PackageInfo> myPackages = new ArrayList<PackageInfo>();\r
 \r
-  public ListPackagesCommandProcessor(@NotNull final String source) {\r
+  public ListPackagesCommandProcessor(@Nullable final String source) {\r
     mySource = source;\r
   }\r
 \r
index 7e519967c2d06f79b6fe4171d27f53eed73e8fd5..f964f0ab09a829111aaa4462dfbb2232f58209a0 100644 (file)
@@ -17,6 +17,7 @@
 package jetbrains.buildServer.nuget.server.exec;\r
 \r
 import org.jetbrains.annotations.NotNull;\r
+import org.jetbrains.annotations.Nullable;\r
 \r
 /**\r
  * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
@@ -27,15 +28,15 @@ public class PackageInfo {
   private final String myPackageId;\r
   private final String myVersion;\r
 \r
-  public PackageInfo(@NotNull final String source,\r
-                     @NotNull final String packageId,\r
-                     @NotNull final String version) {\r
+  public SourcePackageInfo(@Nullable final String source,\r
+                           @NotNull final String packageId,\r
+                           @NotNull final String version) {\r
     mySource = source;\r
     myPackageId = packageId;\r
     myVersion = version;\r
   }\r
 \r
-  @NotNull\r
+  @Nullable\r
   public String getSource() {\r
     return mySource;\r
   }\r
index 5ba574fe2decc71adc1f2c3a4d04f8a200ab48d4..90020bbf07e807cbbb38bb8ae4f501681ad0184e 100644 (file)
@@ -74,8 +74,11 @@ public class NamedPackagesUpdateChecker implements TriggerUpdateChecker {
     });\r
 \r
     StringBuilder sb = new StringBuilder();\r
-    for (PackageInfo info : sorted) {\r
-      sb.append("|s:").append(info.getSource());\r
+    for (SourcePackageInfo info : sorted) {\r
+      String source = info.getSource();\r
+      if (source != null) {\r
+        sb.append("|s:").append(source);\r
+      }\r
       sb.append("|p:").append(info.getPackageId());\r
       sb.append("|v:").append(info.getVersion());\r
     }\r
index 0877e2270b87da1d53a612037b890aad8bdafb13..27f6b1755812175ccad2a7830d9591fd51f4fafd 100644 (file)
@@ -77,6 +77,20 @@ public class ListPackagesCommandProcessorTest extends BaseTestCase {
     Assert.assertEquals(next.getVersion(), "2.5.10.11092");\r
   }\r
 \r
+  @Test\r
+  public void test_parse_service_message_no_source() {\r
+    p = new ListPackagesCommandProcessor(null);\r
+    p.onStdOutput("##teamcity[nuget-package Id='NUnit' Version='2.5.10.11092']");\r
+\r
+    Collection<SourcePackageInfo> result = p.getResult();\r
+    Assert.assertEquals(result.size(), 1);\r
+    SourcePackageInfo next = result.iterator().next();\r
+\r
+    Assert.assertEquals(next.getSource(), null);\r
+    Assert.assertEquals(next.getPackageId(), "NUnit");\r
+    Assert.assertEquals(next.getVersion(), "2.5.10.11092");\r
+  }\r
+\r
   @Test\r
   public void test_parse_service_message_multiple() {\r
     p.onStdOutput("##teamcity[nuget-package Id='NUnit' Version='2.5.10.11092']");\r