JAL - 3690 AlignCalc rebuilt - FutureTask-based manager
[jalview.git] / src / jalview / workers / ConservationThread.java
index 54b0191..3752841 100644 (file)
@@ -51,69 +51,39 @@ public class ConservationThread extends AlignCalcWorker
   @Override
   public void run()
   {
-    try
+    if ((alignViewport == null) || (calcMan == null)
+            || (alignViewport.isClosed()))
     {
-      calcMan.notifyStart(this); // updatingConservation = true;
-
-      while ((calcMan != null) && (!calcMan.notifyWorking(this)))
-      {
-        try
-        {
-          if (ap != null)
-          {
-            // ap.paintAlignment(false);
-          }
-          Thread.sleep(200);
-        } catch (Exception ex)
-        {
-          ex.printStackTrace();
-        }
-      }
-      if ((alignViewport == null) || (calcMan == null)
-              || (alignViewport.isClosed()))
-      {
-        abortAndDestroy();
-        return;
-      }
-      List<AlignmentAnnotation> ourAnnot = new ArrayList<>();
-      AlignmentI alignment = alignViewport.getAlignment();
-      conservation = alignViewport.getAlignmentConservationAnnotation();
-      quality = alignViewport.getAlignmentQualityAnnot();
-      ourAnnot.add(conservation);
-      ourAnnot.add(quality);
-      ourAnnots = ourAnnot;
-      ConsPercGaps = alignViewport.getConsPercGaps();
-      // AlignViewport.UPDATING_CONSERVATION = true;
-
-      if (alignment == null || (alWidth = alignment.getWidth()) < 0)
-      {
-        calcMan.workerComplete(this);
-        // .updatingConservation = false;
-        // AlignViewport.UPDATING_CONSERVATION = false;
+      abortAndDestroy();
+      return;
+    }
+    List<AlignmentAnnotation> ourAnnot = new ArrayList<>();
+    AlignmentI alignment = alignViewport.getAlignment();
+    conservation = alignViewport.getAlignmentConservationAnnotation();
+    quality = alignViewport.getAlignmentQualityAnnot();
+    ourAnnot.add(conservation);
+    ourAnnot.add(quality);
+    ourAnnots = ourAnnot;
+    ConsPercGaps = alignViewport.getConsPercGaps();
+    // AlignViewport.UPDATING_CONSERVATION = true;
 
-        return;
-      }
-      try
-      {
-        cons = Conservation.calculateConservation("All",
-                alignment.getSequences(), 0, alWidth - 1, false,
-                ConsPercGaps, quality != null);
-      } catch (IndexOutOfBoundsException x)
-      {
-        // probable race condition. just finish and return without any fuss.
-        calcMan.workerComplete(this);
-        return;
-      }
-      updateResultAnnotation(true);
-    } catch (OutOfMemoryError error)
+    if (alignment == null || (alWidth = alignment.getWidth()) < 0)
     {
-      ap.raiseOOMWarning("calculating conservation", error);
-      calcMan.disableWorker(this);
-      // alignViewport.conservation = null;
-      // this.alignViewport.quality = null;
-
+      // .updatingConservation = false;
+      // AlignViewport.UPDATING_CONSERVATION = false;
+      return;
+    }
+    try
+    {
+      cons = Conservation.calculateConservation("All",
+              alignment.getSequences(), 0, alWidth - 1, false,
+              ConsPercGaps, quality != null);
+    } catch (IndexOutOfBoundsException x)
+    {
+      // probable race condition. just finish and return without any fuss.
+      return;
     }
-    calcMan.workerComplete(this);
+    updateResultAnnotation(true);
 
     if ((alignViewport == null) || (calcMan == null)
             || (alignViewport.isClosed()))