Merge branch 'develop' into features/JAL-845splitPaneMergeDevelop
[jalview.git] / src / jalview / util / ShiftList.java
index 3b8c68f..8b37f0a 100644 (file)
@@ -47,20 +47,23 @@ public class ShiftList
    */
   public void addShift(int pos, int shift)
   {
-    int sidx = 0;
-    int[] rshift = null;
-    while (sidx < shifts.size() && (rshift = shifts.get(sidx))[0] < pos)
-    {
-      sidx++;
-    }
-    if (sidx == shifts.size())
+    synchronized (shifts)
     {
-      shifts.add(sidx, new int[]
-      { pos, shift });
-    }
-    else
-    {
-      rshift[1] += shift;
+      int sidx = 0;
+      int[] rshift = null;
+      while (sidx < shifts.size() && (rshift = shifts.get(sidx))[0] < pos)
+      {
+        sidx++;
+      }
+      if (sidx == shifts.size())
+      {
+        shifts.add(sidx, new int[]
+        { pos, shift });
+      }
+      else
+      {
+        rshift[1] += shift;
+      }
     }
   }
 
@@ -91,7 +94,7 @@ public class ShiftList
   /**
    * clear all shifts
    */
-  public void clear()
+  public synchronized void clear()
   {
     shifts.clear();
   }
@@ -104,15 +107,17 @@ public class ShiftList
   public ShiftList getInverse()
   {
     ShiftList inverse = new ShiftList();
-    if (shifts != null)
+    synchronized (shifts)
     {
-      for (int i = 0, j = shifts.size(); i < j; i++)
+      if (shifts != null)
       {
-        int[] sh = shifts.get(i);
-        if (sh != null)
+        for (int[] sh : shifts)
         {
-          inverse.shifts.add(new int[]
-          { sh[0], -sh[1] });
+          if (sh != null)
+          {
+            inverse.shifts.add(new int[]
+            { sh[0], -sh[1] });
+          }
         }
       }
     }