JAL-3921 wait around until session file has been written
authorJim Procter <j.procter@dundee.ac.uk>
Mon, 8 Nov 2021 18:15:33 +0000 (18:15 +0000)
committerJim Procter <j.procter@dundee.ac.uk>
Mon, 8 Nov 2021 18:15:33 +0000 (18:15 +0000)
src/jalview/gui/StructureViewerBase.java

index 4f746cb..1c0f43e 100644 (file)
@@ -1210,8 +1210,23 @@ public abstract class StructureViewerBase extends GStructureViewer
    */
   public File saveSession()
   {
-    // TODO: a wait loop to ensure the file is written fully before returning?
-    return getBinding() == null ? null : getBinding().saveSession();
+    if (getBinding() == null) { return  null;}
+    File session = getBinding().saveSession();
+    long l = session.length();
+    int wait=50;
+    do {
+      try {
+        Thread.sleep(5);
+      } catch (InterruptedException e) {
+      } 
+      long nextl = session.length();
+      if (nextl!=l)
+      {
+        wait = 50;
+        l=nextl;
+      }
+    } while (--wait>0);
+    return session;
   }
 
   /**