JAL-4199 Fix interactive jobs not being stopped
[jalview.git] / src / jalview / ws2 / gui / WebServicesMenuManager.java
index f081915..5fd4734 100644 (file)
@@ -445,18 +445,20 @@ public class WebServicesMenuManager
     if (action instanceof AnnotationAction)
     {
       var calcManager = viewport.getCalcManager();
-      var oldWorkers = calcManager.getWorkersOfClass(AlignCalcWorkerAdapter.class);
-      for (var worker : oldWorkers)
-      {
-        calcManager.cancelWorker(worker);
-        calcManager.removeWorker(worker);
-      }
 
       var _action = (AnnotationAction) action;
       var worker = new AlignCalcWorkerAdapter(viewport, frame.alignPanel,
           _action, args, credentials);
       var handler = new AnnotationServiceGuiHandler(_action, frame);
       worker.addTaskEventListener(handler);
+      for (var w : calcManager.getWorkers())
+      {
+        if (worker.getCalcName() != null && worker.getCalcName().equals(w.getCalcName()))
+        {
+          calcManager.cancelWorker(w);
+          calcManager.removeWorker(w);
+        }
+      }
       if (action.getWebService().isInteractive())
         calcManager.registerWorker(worker);
       else