JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / src / jalview / ws / JobStateSummary.java
index 62f172d..f5b678c 100644 (file)
@@ -1,19 +1,22 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
+ * Copyright (C) 2015 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- * 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE.  See the GNU General Public License for more details.
  * 
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.ws;
 
@@ -74,6 +77,13 @@ public class JobStateSummary
   public void updateJobPanelState(WebserviceInfo wsInfo,
           String OutputHeader, AWsJob j)
   {
+    if (j.cancelled)
+    {
+      cancelled++;
+      j.subjobComplete = true;
+      wsInfo.setStatus(j.jobnum, WebserviceInfo.STATE_CANCELLED_OK);
+      return;
+    }
     if (j.submitted)
     {
       String progheader = "";
@@ -119,15 +129,27 @@ public class JobStateSummary
         wsInfo.setStatus(j.jobnum, WebserviceInfo.STATE_STOPPED_ERROR);
       }
       // and pass on any sub-job messages to the user
-      wsInfo.setProgressText(j.jobnum, OutputHeader);
-      wsInfo.appendProgressText(j.jobnum, progheader);
+      StringBuffer output = new StringBuffer();
+      if (OutputHeader != null)
+      {
+
+        output.append(OutputHeader);
+      }
+      if (progheader != null)
+      {
+        output.append(progheader);
+      }
       if (j.hasStatus())
       {
         // Could try to squash OOMs here, but it usually doesn't help - there
         // probably won't be
         // enough memory to handle the results later on anyway.
         // try {
-        wsInfo.appendProgressText(j.jobnum, j.getStatus());
+        String stat = j.getStatus();
+        if (stat != null)
+        {
+          output.append(stat);
+        }
         // } catch (OutOfMemoryError e)
         // {
         // System.err.println("Out of memory when displaying status. Squashing error.");
@@ -135,6 +157,7 @@ public class JobStateSummary
         // "..\n(Out of memory when displaying status)\n");
         // }
       }
+      wsInfo.setProgressText(j.jobnum, output.toString());
     }
     else
     {