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 14:52:42 +0000 (18:52 +0400)
nuget-server/src/jetbrains/buildServer/nuget/server/exec/ListPackagesCommandProcessor.java
nuget-server/src/jetbrains/buildServer/nuget/server/exec/SourcePackageInfo.java
nuget-server/src/jetbrains/buildServer/nuget/server/trigger/NamedPackagesUpdateChecker.java
nuget-tests/src/jetbrains/buildServer/nuget/tests/server/ListPackagesCommandProcessorTest.java

index dac3c2552efb0db90fbbd61512b0b6bc69ed4d6c..f32b1f53436f3b446305cdbaf53a88b215e435dd 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<SourcePackageInfo> myPackages = new ArrayList<SourcePackageInfo>();\r
 \r
-  public ListPackagesCommandProcessor(@NotNull final String source) {\r
+  public ListPackagesCommandProcessor(@Nullable final String source) {\r
     mySource = source;\r
   }\r
 \r
index 0b8cad7ca80716f7567811c047c1895aef048306..51862e114562c1a0aaf52c8fa65ee0c4ef59bc04 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,7 +28,7 @@ public class SourcePackageInfo {
   private final String myPackageId;\r
   private final String myVersion;\r
 \r
-  public SourcePackageInfo(@NotNull final String source,\r
+  public SourcePackageInfo(@Nullable final String source,\r
                            @NotNull final String packageId,\r
                            @NotNull final String version) {\r
     mySource = source;\r
@@ -35,7 +36,7 @@ public class SourcePackageInfo {
     myVersion = version;\r
   }\r
 \r
-  @NotNull\r
+  @Nullable\r
   public String getSource() {\r
     return mySource;\r
   }\r
index ce9679f91a2e0cce20896c2e5847227e01d62c09..110c8146651003bed89599a99647889d8719bdb5 100644 (file)
@@ -75,7 +75,10 @@ public class NamedPackagesUpdateChecker implements TriggerUpdateChecker {
 \r
     StringBuilder sb = new StringBuilder();\r
     for (SourcePackageInfo info : sorted) {\r
-      sb.append("|s:").append(info.getSource());\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 874c0580e14f808cee4278a5ab9e162e388a858b..51146fb5133eab9d952b2a03429672f1c41284d1 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