X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fworkers%2FAlignCalcManager2.java;h=8d4796d5e1445a58b39591029a6de1e014821992;hb=refs%2Fheads%2Ffeature%2FJAL-3690_callback-based-web-services;hp=8340900f1e1a40a925a78c7844d6eb3e42ee1077;hpb=2db272981f2778cc64df63bab6893c8347e120f8;p=jalview.git diff --git a/src/jalview/workers/AlignCalcManager2.java b/src/jalview/workers/AlignCalcManager2.java index 8340900..8d4796d 100644 --- a/src/jalview/workers/AlignCalcManager2.java +++ b/src/jalview/workers/AlignCalcManager2.java @@ -59,7 +59,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 { return; } - if (!isRestartable()) + if (!isRegistered()) { setEnabled(false); } @@ -70,7 +70,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 submit(); } - protected boolean isRestartable() + protected boolean isRegistered() { return registered.containsKey(getWorker()); } @@ -125,7 +125,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 getWorker().getClass().getName()), th); } finally { - if (!isRestartable()) + if (!isRegistered()) { // delete worker reference so garbage collector can remove it worker = null; @@ -217,7 +217,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 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())); @@ -243,7 +243,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 task.cancel(false); executor.submit(() -> { final var worker = getWorker(); - if (!isRestartable()) + if (!isRegistered()) PollableWorkerManager.super.worker = null; if (worker != null) { @@ -314,7 +314,10 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 @Override public void removeWorker(AlignCalcWorkerI worker) { - registered.remove(worker); + if (worker.isDeletable()) + { + registered.remove(worker); + } } @Override @@ -324,7 +327,7 @@ public class AlignCalcManager2 implements AlignCalcManagerI2 { for (var worker : getWorkers()) { - if (worker.involves(annot) && worker.isDeletable()) + if (worker.involves(annot)) { removeWorker(worker); }