X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fworkers%2FAlignCalcManager2.java;h=1d5c1edf136eba7d59d0843e517f1ac9dbe1b7c5;hb=747167089ecf8d6afc70d417f5a20352e029bd95;hp=8340900f1e1a40a925a78c7844d6eb3e42ee1077;hpb=5150133eed3d978727552434fe6fe7e0ff335370;p=jalview.git diff --git a/src/jalview/workers/AlignCalcManager2.java b/src/jalview/workers/AlignCalcManager2.java index 8340900..1d5c1ed 100644 --- a/src/jalview/workers/AlignCalcManager2.java +++ b/src/jalview/workers/AlignCalcManager2.java @@ -23,6 +23,7 @@ import jalview.api.AlignCalcManagerI2; import jalview.api.AlignCalcWorkerI; import jalview.api.PollableAlignCalcWorkerI; import jalview.bin.Cache; +import jalview.bin.Console; import jalview.datamodel.AlignmentAnnotation; public class AlignCalcManager2 implements AlignCalcManagerI2 @@ -59,7 +60,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 { return; } - if (!isRestartable()) + if (!isRegistered()) { setEnabled(false); } @@ -70,7 +71,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 submit(); } - protected boolean isRestartable() + protected boolean isRegistered() { return registered.containsKey(getWorker()); } @@ -105,27 +106,23 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 throw new IllegalStateException( "Cannot submit new task if the prevoius one is still running"); } - Cache.log.debug( + Console.debug( format("Worker %s queued", getWorker().getClass().getName())); task = executor.submit(() -> { try { - Cache.log.debug(format("Worker %s started", - getWorker().getClass().getName())); + Console.debug(format("Worker %s started", getWorker())); getWorker().run(); - Cache.log.debug(format("Worker %s finished", - getWorker().getClass().getName())); + Console.debug(format("Worker %s finished", getWorker())); } catch (InterruptedException e) { - Cache.log.debug(format("Worker %s interrupted", - getWorker().getClass().getName())); + Console.debug(format("Worker %s interrupted", getWorker())); } catch (Throwable th) { - Cache.log.debug(format("Worker %s failed", - getWorker().getClass().getName()), th); + Console.debug(format("Worker %s failed", getWorker()), th); } finally { - if (!isRestartable()) + if (!isRegistered()) { // delete worker reference so garbage collector can remove it worker = null; @@ -141,8 +138,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 { return; } - Cache.log.debug(format("Cancelling worker %s", - getWorker().getClass().getName())); + Console.debug(format("Cancelling worker %s", getWorker())); task.cancel(true); } } @@ -175,8 +171,8 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 throw new IllegalStateException( "Cannot submit new task if the prevoius one is still running"); } - Cache.log.debug( - format("Worker %s queued", getWorker().getClass().getName())); + Console.debug( + format("Worker %s queued", getWorker())); final var runnable = new Runnable() { private boolean started = false; @@ -192,35 +188,30 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 { if (!started) { - Cache.log.debug(format("Worker %s started", - getWorker().getClass().getName())); + Console.debug(format("Worker %s started", getWorker())); getWorker().startUp(); started = true; } else if (!completed) { - Cache.log.debug(format("Polling worker %s", - getWorker().getClass().getName())); + Console.debug(format("Polling worker %s", getWorker())); if (getWorker().poll()) { - Cache.log.debug(format("Worker %s finished", - getWorker().getClass().getName())); + Console.debug(format("Worker %s finished", getWorker())); completed = true; } } } catch (Throwable th) { - Cache.log.debug(format("Worker %s failed", - getWorker().getClass().getName()), th); + Console.debug(format("Worker %s failed", getWorker()), th); completed = true; } if (completed) { final var worker = getWorker(); - if (!isRestartable()) + if (!isRegistered()) PollableWorkerManager.super.worker = null; - Cache.log.debug(format("Finalizing completed worker %s", - worker.getClass().getName())); + Console.debug(format("Finalizing completed worker %s", worker)); worker.done(); // almost impossible, but the future may be null at this point // let it throw NPE to cancel forcefully @@ -238,18 +229,16 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 { return; } - Cache.log.debug(format("Cancelling worker %s", - getWorker().getClass().getName())); + Console.debug(format("Cancelling worker %s", getWorker())); task.cancel(false); executor.submit(() -> { final var worker = getWorker(); - if (!isRestartable()) + if (!isRegistered()) PollableWorkerManager.super.worker = null; if (worker != null) { worker.cancel(); - Cache.log.debug(format("Finalizing cancelled worker %s", - worker.getClass().getName())); + Console.debug(format("Finalizing cancelled worker %s", worker)); worker.done(); } }); @@ -314,7 +303,10 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 @Override public void removeWorker(AlignCalcWorkerI worker) { - registered.remove(worker); + if (worker.isDeletable()) + { + registered.remove(worker); + } } @Override @@ -324,7 +316,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 { for (var worker : getWorkers()) { - if (worker.involves(annot) && worker.isDeletable()) + if (worker.involves(annot)) { removeWorker(worker); } @@ -429,7 +421,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 var manager = registered.get(worker); if (manager == null) { - Cache.log.warn("Starting unregistered worker " + worker); + Console.warn("Starting unregistered worker " + worker); manager = createManager(worker); oneshot.put(worker, manager); }