From d20c94407cbb4122fdce7768d3d67dbf5ada50c6 Mon Sep 17 00:00:00 2001 From: jprocter Date: Thu, 7 Jun 2012 18:07:46 +0100 Subject: [PATCH] JAL-967, JAL-1114, JAL-1115 more concurrent access hacks --- src/jalview/analysis/StructureFrequency.java | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/jalview/analysis/StructureFrequency.java b/src/jalview/analysis/StructureFrequency.java index 1eab77e..67d8b9b 100644 --- a/src/jalview/analysis/StructureFrequency.java +++ b/src/jalview/analysis/StructureFrequency.java @@ -310,7 +310,8 @@ public class StructureFrequency } for (int i = iStart; i < width; i++) { - if (i >= hconsensus.length) + Hashtable hci; + if (i >= hconsensus.length || ((hci=hconsensus[i])==null)) { // happens if sequences calculated over were shorter than alignment // width @@ -318,29 +319,34 @@ public class StructureFrequency continue; } value = 0; + Float fv; if (ignoreGapsInConsensusCalculation) { - value = ((Float) hconsensus[i].get(StructureFrequency.PID_NOGAPS)) - .floatValue(); + fv =(Float) hci.get(StructureFrequency.PID_NOGAPS); } else { - value = ((Float) hconsensus[i].get(StructureFrequency.PID_GAPS)) - .floatValue(); + fv = (Float) hci.get(StructureFrequency.PID_GAPS); } - - String maxRes = hconsensus[i].get(StructureFrequency.MAXRESIDUE) + if (fv==null) + { + consensus.annotations[i] = null; + // data has changed below us .. give up and + continue; + } + value = fv.floatValue(); + String maxRes = hci.get(StructureFrequency.MAXRESIDUE) .toString(); - String mouseOver = hconsensus[i].get(StructureFrequency.MAXRESIDUE) + String mouseOver = hci.get(StructureFrequency.MAXRESIDUE) + " "; if (maxRes.length() > 1) { mouseOver = "[" + maxRes + "] "; maxRes = "+"; } - int[][] profile = (int[][]) hconsensus[i] + int[][] profile = (int[][]) hci .get(StructureFrequency.PROFILE); - int[][] pairs = (int[][]) hconsensus[i] + int[][] pairs = (int[][]) hci .get(StructureFrequency.PAIRPROFILE); if (pairs != null && includeAllConsSymbols) // Just responsible for the -- 1.7.10.2