Merge branch 'releases/Release_2_11_3_Branch'
[jalview.git] / src / jalview / datamodel / Alignment.java
index 89ec5ad..73ccdc5 100755 (executable)
@@ -2050,14 +2050,14 @@ public class Alignment implements AlignmentI, AutoCloseable
   public ContactMatrixI getContactMatrixFor(AlignmentAnnotation _aa)
   {
     ContactMatrixI cm = cmholder.getContactMatrixFor(_aa);
-    if (cm==null && _aa.groupRef!=null)
+    if (cm == null && _aa.groupRef != null)
     {
       cm = _aa.groupRef.getContactMatrixFor(_aa);
     }
-    if (cm==null && _aa.sequenceRef!=null)
+    if (cm == null && _aa.sequenceRef != null)
     {
       cm = _aa.sequenceRef.getContactMatrixFor(_aa);
-      if (cm==null)
+      if (cm == null && _aa.sequenceRef.getDatasetSequence() != null)
       {
         // TODO fix up this logic and unify with getContactListFor
         cm = _aa.sequenceRef.getDatasetSequence().getContactMatrixFor(_aa);
@@ -2069,6 +2069,11 @@ public class Alignment implements AlignmentI, AutoCloseable
   @Override
   public ContactListI getContactListFor(AlignmentAnnotation _aa, int column)
   {
+    if (_aa.annotations == null || column >= _aa.annotations.length
+            || column < 0)
+    {
+      return null;
+    }
     ContactListI cl = cmholder.getContactListFor(_aa, column);
     if (cl == null && _aa.groupRef != null)
     {
@@ -2087,7 +2092,7 @@ public class Alignment implements AlignmentI, AutoCloseable
                   && spos <= 1 + _aa.sequenceRef.getEnd())
           {
             cl = _aa.sequenceRef.getDatasetSequence().getContactListFor(_aa,
-                    spos-_aa.sequenceRef.getStart());
+                    spos - _aa.sequenceRef.getStart());
           }
         }
       }