JAL-4199 Introduce AlignmentAction tests
[jalview.git] / src / jalview / ws2 / actions / AbstractPollableTask.java
index 6ff5749..b61711c 100644 (file)
@@ -10,6 +10,7 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
 import jalview.bin.Cache;
+import jalview.bin.Console;
 import jalview.util.ArrayUtils;
 import jalview.util.MathUtils;
 import jalview.ws.params.ArgumentI;
@@ -48,7 +49,7 @@ public abstract class AbstractPollableTask<T extends BaseJob, R> implements Task
 
   private final TaskEventSupport<R> eventHandler;
 
-  protected JobStatus taskStatus = null;
+  protected JobStatus taskStatus = JobStatus.CREATED;
 
   private Future<?> future = null;
 
@@ -219,35 +220,16 @@ public abstract class AbstractPollableTask<T extends BaseJob, R> implements Task
     for (BaseJob job : jobs)
     {
       JobStatus status = job.getStatus();
-      int jobPrecedence = ArrayUtils.indexOf(statusPrecedence, status);
+      int jobPrecedence = ArrayUtils.indexOf(JobStatus.statusPrecedence, status);
       if (precedence < jobPrecedence)
         precedence = jobPrecedence;
     }
     if (precedence >= 0)
     {
-      setStatus(statusPrecedence[precedence]);
+      setStatus(JobStatus.statusPrecedence[precedence]);
     }
   }
 
-  /**
-   * A precedence order of job statuses used to compute the overall task status.
-   */
-  private static JobStatus[] statusPrecedence = {
-      JobStatus.INVALID, // all must be invalid for task to be invalid
-      JobStatus.COMPLETED, // all but invalid must be completed for task to be
-                           // completed
-      JobStatus.UNKNOWN, // unknown prevents successful completion but not
-                         // running or failure
-      JobStatus.READY,
-      JobStatus.SUBMITTED,
-      JobStatus.QUEUED,
-      JobStatus.RUNNING,
-      JobStatus.CANCELLED, // if any is terminated unsuccessfully, the task is
-                           // failed
-      JobStatus.FAILED,
-      JobStatus.SERVER_ERROR
-  };
-
   @Override
   public void cancel()
   {
@@ -349,7 +331,7 @@ public abstract class AbstractPollableTask<T extends BaseJob, R> implements Task
           job.setStatus(JobStatus.CANCELLED);
         } catch (IOException e)
         {
-          Cache.log.error(format("failed to cancel job %s", job.getServerJob()), e);
+          Console.error(format("failed to cancel job %s", job.getServerJob()), e);
         }
       }
     }
@@ -360,4 +342,11 @@ public abstract class AbstractPollableTask<T extends BaseJob, R> implements Task
   {
     return result;
   }
+
+  @Override
+  public String toString()
+  {
+    var status = taskStatus != null ? taskStatus.name() : "UNSET";
+    return String.format("%s(%x, %s)", getClass().getSimpleName(), uid, status);
+  }
 }