src/Pure/Admin/ci_api.scala
changeset 64545 25045094d7bb
parent 64160 1eea419fab65
--- a/src/Pure/Admin/ci_api.scala	Sat Dec 10 15:45:16 2016 +0100
+++ b/src/Pure/Admin/ci_api.scala	Sat Dec 10 17:20:39 2016 +0100
@@ -32,7 +32,7 @@
 
   def build_jobs(): List[String] =
     for {
-      job <- JSON.array(invoke(root()), "jobs")
+      job <- JSON.array(invoke(root()), "jobs").getOrElse(Nil)
       _class <- JSON.string(job, "_class")
       if _class == "hudson.model.FreeStyleProject"
       name <- JSON.string(job, "name")
@@ -56,7 +56,8 @@
 
     for {
       build <- JSON.array(
-        invoke(root() + "/job/" + job_name, "tree=builds[number,timestamp,artifacts[*]]"), "builds")
+          invoke(root() + "/job/" + job_name, "tree=builds[number,timestamp,artifacts[*]]"), "builds")
+        .getOrElse(Nil)
       number <- JSON.int(build, "number")
       timestamp <- JSON.long(build, "timestamp")
     } yield {
@@ -64,7 +65,7 @@
       val output = Url(job_prefix + "/consoleText")
       val session_logs =
         for {
-          artifact <- JSON.array(build, "artifacts")
+          artifact <- JSON.array(build, "artifacts").getOrElse(Nil)
           log_path <- JSON.string(artifact, "relativePath")
           session <- (log_path match { case Log_Session(name) => Some(name) case _ => None })
         } yield (session -> Url(job_prefix + "/artifact/" + log_path))