X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fworkers%2FStrucConsensusThread.java;fp=src%2Fjalview%2Fworkers%2FStrucConsensusThread.java;h=a7f919b9661f7cc0da0688f8b545a124df566051;hb=f61b2748a32ef03e687abc37b97640873c2e44aa;hp=ea900dc7cacf814d7e83b6c74a87a77783e4f406;hpb=657cc1b42f3b48c900ce5cacdd1495f772791561;p=jalview.git diff --git a/src/jalview/workers/StrucConsensusThread.java b/src/jalview/workers/StrucConsensusThread.java index ea900dc..a7f919b 100644 --- a/src/jalview/workers/StrucConsensusThread.java +++ b/src/jalview/workers/StrucConsensusThread.java @@ -2,7 +2,6 @@ package jalview.workers; import java.util.Hashtable; -import jalview.analysis.AAFrequency; import jalview.analysis.StructureFrequency; import jalview.api.AlignCalcWorkerI; import jalview.api.AlignViewportI; @@ -29,6 +28,10 @@ public class StrucConsensusThread extends AlignCalcWorker implements { try { + if (calcMan.isPending(this)) + { + return; + } calcMan.notifyStart(this); while (!calcMan.notifyWorking(this)) { @@ -36,7 +39,7 @@ public class StrucConsensusThread extends AlignCalcWorker implements { if (ap != null) { - ap.paintAlignment(false); + // ap.paintAlignment(false); } Thread.sleep(200); @@ -85,9 +88,15 @@ public class StrucConsensusThread extends AlignCalcWorker implements return; } - jalview.analysis.StructureFrequency.calculate( + try { + jalview.analysis.StructureFrequency.calculate( alignment.getSequencesArray(), 0, alignment.getWidth(), hStrucConsensus, true, rnaStruc); + } catch (ArrayIndexOutOfBoundsException x) + { + calcMan.workerComplete(this); + return; + } alignViewport.setRnaStructureConsensusHash(hStrucConsensus); // TODO AlignmentAnnotation rnaStruc!!! updateResultAnnotation(true); @@ -103,12 +112,13 @@ public class StrucConsensusThread extends AlignCalcWorker implements // consensus = null; // hconsensus = null; ap.raiseOOMWarning("calculating RNA structure consensus", error); - } - - calcMan.workerComplete(this); - if (ap != null) + } finally { - ap.paintAlignment(true); + calcMan.workerComplete(this); + if (ap != null) + { + ap.paintAlignment(true); + } } }