From e3b3246be8f1918a6f9e1d92e566e8536cb6a4a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Ko=C5=BEusznik?= <jan@kozusznik.cz>
Date: Tue, 5 Jun 2018 13:46:35 +0200
Subject: [PATCH] fix: add unknown state, allow Start Canceled

---
 .../core/JobStateComparator.java                | 17 ++++++++++-------
 .../ui/BenchmarkSPIMController.java             |  2 +-
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/JobStateComparator.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/JobStateComparator.java
index 6b312cb8..a8276f35 100644
--- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/JobStateComparator.java
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/JobStateComparator.java
@@ -7,20 +7,23 @@ import java.util.Map;
 
 import cz.it4i.fiji.haas_java_client.JobState;
 
-public class JobStateComparator implements Comparator<JobState>{
+public class JobStateComparator implements Comparator<JobState> {
 
-	private static Map<JobState,Integer> priorities = new HashMap<>();
-	private static void  add(JobState state) {
+	private static Map<JobState, Integer> priorities = new HashMap<>();
+
+	private static void add(JobState state) {
 		priorities.put(state, priorities.size());
 	}
-	
+
 	static {
-		Arrays.asList(JobState.Finished,JobState.Queued, JobState.Running, JobState.Canceled, JobState.Failed).forEach(state->add(state));
+		Arrays.asList(JobState.Finished, JobState.Queued, JobState.Running, JobState.Canceled, JobState.Failed, JobState.Unknown)
+				.forEach(state -> add(state));
 	}
+
 	@Override
 	public int compare(JobState o1, JobState o2) {
-		if(!priorities.keySet().containsAll(Arrays.asList(o1, o2))) {
-			throw new IllegalArgumentException();
+		if (!priorities.keySet().containsAll(Arrays.asList(o1, o2))) {
+			throw new IllegalArgumentException("compare: " + o1 + ", " + o2);
 		}
 		return priorities.get(o1) - priorities.get(o2);
 	}
diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java
index 1c1e842d..17a2429b 100644
--- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java
@@ -107,7 +107,7 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont
 			job.getValue().startJob(p);
 			job.getValue().update();
 		}), job -> JavaFXRoutines.notNullValue(job, j -> j.getState() == JobState.Configuring
-				|| j.getState() == JobState.Finished || j.getState() == JobState.Failed));
+				|| j.getState() == JobState.Finished || j.getState() == JobState.Failed || j.getState() == JobState.Canceled));
 
 		menu.addItem("Cancel job", job -> executeWSCallAsync("Canceling job", p -> {
 			job.getValue().cancelJob();
-- 
GitLab