JAL-3690 Catch and notify about worker cancellation separately.
[jalview.git] / src / jalview / workers / AlignCalcManager2.java
index dcaff10..e154f0f 100644 (file)
@@ -62,6 +62,10 @@ public class AlignCalcManager2 implements AlignCalcManagerI2
         get();
         success = true;
       }
+      catch (CancellationException e) {
+        Cache.log.debug(format("Worker %s cancelled%n", getWorker().getClass().getName()));
+        notifyCancelled(worker);
+      }
       catch (ExecutionException e)
       {
         exception = e.getCause();
@@ -295,6 +299,19 @@ public class AlignCalcManager2 implements AlignCalcManagerI2
       }
     }
   }
+  
+  private void notifyCancelled(AlignCalcWorkerI worker)
+  {
+    for (AlignCalcListener listener : listeners)
+    {
+      try {
+        listener.workerCancelled(worker);
+      } catch (RuntimeException e)
+      {
+        e.printStackTrace();
+      }
+    }
+  }
 
   private void notifyExceptional(AlignCalcWorkerI worker,
           Throwable throwable)