From 1ae0a3902856d19d5ccc3635ff8b630bdd62faf0 Mon Sep 17 00:00:00 2001 From: jprocter Date: Tue, 24 Feb 2009 17:53:27 +0000 Subject: [PATCH] bugfix for occasional nullpointer exceptions when selecting menu items that operate on the current selection --- src/jalview/datamodel/SequenceGroup.java | 22 ++++++++++++++++++---- src/jalview/gui/AlignViewport.java | 10 +++++----- 2 files changed, 23 insertions(+), 9 deletions(-) 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; } -- 1.7.10.2