JAL-3878 Fix task status precedence calculation
authorMateusz Warowny <mmzwarowny@dundee.ac.uk>
Fri, 25 Mar 2022 17:35:04 +0000 (18:35 +0100)
committerMateusz Warowny <mmzwarowny@dundee.ac.uk>
Fri, 25 Mar 2022 17:35:20 +0000 (18:35 +0100)
Task status could only go up from the current status.

src/jalview/ws2/actions/AbstractPollableTask.java

index 1e57556..999411f 100644 (file)
@@ -207,19 +207,18 @@ public abstract class AbstractPollableTask<T extends BaseJob, R> implements Task
    */
   private void updateGlobalStatus()
   {
-    JobStatus newStatus = taskStatus;
-    int currentPrecedence = ArrayUtils.indexOf(statusPrecedence, newStatus);
+    int precedence = -1;
     for (BaseJob job : jobs)
     {
       JobStatus status = job.getStatus();
       int jobPrecedence = ArrayUtils.indexOf(statusPrecedence, status);
-      if (currentPrecedence < jobPrecedence)
-      {
-        currentPrecedence = jobPrecedence;
-        newStatus = status;
-      }
+      if (precedence < jobPrecedence)
+        precedence = jobPrecedence;
+    }
+    if (precedence >= 0)
+    {
+      setStatus(statusPrecedence[precedence]);
     }
-    setStatus(newStatus);
   }
 
   /**