+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
+ * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ */
package jalview.workers;
import java.util.Hashtable;
-import jalview.analysis.AAFrequency;
import jalview.analysis.StructureFrequency;
import jalview.api.AlignCalcWorkerI;
import jalview.api.AlignViewportI;
{
try
{
+ if (calcMan.isPending(this))
+ {
+ return;
+ }
calcMan.notifyStart(this);
while (!calcMan.notifyWorking(this))
{
{
if (ap != null)
{
- ap.paintAlignment(false);
+ // ap.paintAlignment(false);
}
Thread.sleep(200);
return;
}
- jalview.analysis.StructureFrequency.calculate(
- alignment.getSequencesArray(), 0, alignment.getWidth(),
- hStrucConsensus, true, rnaStruc);
+ 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);
// 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);
+ }
}
}
}
}
-}
\ No newline at end of file
+}