From: jprocter Date: Tue, 24 Feb 2009 17:53:27 +0000 (+0000) Subject: bugfix for occasional nullpointer exceptions when selecting menu items that operate... X-Git-Tag: Release_2_5~338 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=1ae0a3902856d19d5ccc3635ff8b630bdd62faf0;p=jalview.git bugfix for occasional nullpointer exceptions when selecting menu items that operate on the current selection --- diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index d12f81b..49f270d 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -691,11 +691,12 @@ public class SequenceGroup /** * - * returns the sequences in the group ordered by the ordering given by al - * + * returns the sequences in the group ordered by the ordering given by al. + * this used to return an array with null entries regardless, new behaviour is below. + * TODO: verify that this does not affect use in applet or application * @param al * Alignment - * @return SequenceI[] + * @return SequenceI[] intersection of sequences in group with al, ordered by al, or null if group does not intersect with al */ public SequenceI[] getSequencesInOrder(AlignmentI al) { @@ -712,7 +713,20 @@ public class SequenceGroup seqs[index++] = al.getSequenceAt(i); } } - + if (index==0) + { + return null; + } + if (index=0) + { + seqs[index] = dummy[index]; + dummy[index] = null; + } + } return seqs; } diff --git a/src/jalview/gui/AlignViewport.java b/src/jalview/gui/AlignViewport.java index d07b010..b90d89b 100755 --- a/src/jalview/gui/AlignViewport.java +++ b/src/jalview/gui/AlignViewport.java @@ -1625,14 +1625,14 @@ public class AlignViewport implements SelectionSource */ public SequenceI[] getSequenceSelection() { - SequenceI[] sequences; - if (selectionGroup == null) + SequenceI[] sequences=null; + if (selectionGroup!=null) { - sequences = alignment.getSequencesArray(); + sequences = selectionGroup.getSequencesInOrder(alignment); } - else + if (sequences == null) { - sequences = selectionGroup.getSequencesInOrder(alignment); + sequences = alignment.getSequencesArray(); } return sequences; }