From: amwaterhouse Date: Mon, 16 Apr 2007 11:24:16 +0000 (+0000) Subject: drawSequence must be synchronized X-Git-Tag: Release_2_3~246 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=289b85072928342dc4f22d3747a3c249d403a688;p=jalview.git drawSequence must be synchronized --- diff --git a/src/jalview/appletgui/FeatureRenderer.java b/src/jalview/appletgui/FeatureRenderer.java index ff58125..b36fbfd 100755 --- a/src/jalview/appletgui/FeatureRenderer.java +++ b/src/jalview/appletgui/FeatureRenderer.java @@ -458,7 +458,7 @@ public class FeatureRenderer SequenceFeature[] sequenceFeatures; int sfSize, sfindex, spos, epos; - public void drawSequence(Graphics g, SequenceI seq, + synchronized public void drawSequence(Graphics g, SequenceI seq, int start, int end, int y1) { if (seq.getSequenceFeatures() == null diff --git a/src/jalview/gui/FeatureRenderer.java b/src/jalview/gui/FeatureRenderer.java index 04324ac..178dc38 100755 --- a/src/jalview/gui/FeatureRenderer.java +++ b/src/jalview/gui/FeatureRenderer.java @@ -119,7 +119,7 @@ public class FeatureRenderer } } - if (sequenceFeatures == null) + if (sequenceFeatures == null || sfSize==0) { return initialCol; } @@ -196,9 +196,10 @@ public class FeatureRenderer SequenceFeature[] sequenceFeatures; int sfSize, sfindex, spos, epos; - public void drawSequence(Graphics g, SequenceI seq, + synchronized public void drawSequence(Graphics g, SequenceI seq, int start, int end, int y1) { + if (seq.getDatasetSequence().getSequenceFeatures() == null || seq.getDatasetSequence().getSequenceFeatures().length == 0) { @@ -221,7 +222,6 @@ public class FeatureRenderer } sequenceFeatures = seq.getDatasetSequence().getSequenceFeatures(); - sfSize = sequenceFeatures.length; } if (lastSeq == null || seq != lastSeq @@ -229,7 +229,6 @@ public class FeatureRenderer { lastSeq = seq; sequenceFeatures = seq.getDatasetSequence().getSequenceFeatures(); - sfSize = sequenceFeatures.length; } if (transparency != 1 && g != null) @@ -246,6 +245,7 @@ public class FeatureRenderer epos = lastSeq.findPosition(end); } + sfSize = sequenceFeatures.length; String type; for (int renderIndex = 0; renderIndex < renderOrder.length; renderIndex++) { @@ -260,10 +260,6 @@ public class FeatureRenderer // current feature to render for (sfindex = 0; sfindex < sfSize; sfindex++) { - if (sequenceFeatures.length <= sfindex) - { - continue; - } if (!sequenceFeatures[sfindex].type.equals(type)) { continue;