Marshalling produces valid ZIP file. Unmarshalling hanging on getting a
[jalview.git] / src / jalview / project / Jalview2XML.java
index 42328b8..194cbf2 100644 (file)
@@ -130,6 +130,7 @@ import java.awt.Color;
 import java.awt.Font;
 import java.awt.Rectangle;
 import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.File;
@@ -2478,7 +2479,7 @@ public class Jalview2XML
    * @param file
    *          - HTTP URL or filename
    */
-  public AlignFrame loadJalviewAlign(final String file)
+  public AlignFrame loadJalviewAlign(final Object file)
   {
 
     jalview.gui.AlignFrame af = null;
@@ -2522,9 +2523,33 @@ public class Jalview2XML
     return af;
   }
 
-  private jarInputStreamProvider createjarInputStreamProvider(
-          final String file) throws MalformedURLException
+  @SuppressWarnings("unused")
+private jarInputStreamProvider createjarInputStreamProvider(
+          final Object ofile) throws MalformedURLException
   {
+       
+         // BH 2018 allow for bytes already attached to File object
+       final String file = ofile.toString();
+       byte[] bytes = /** @j2sNative ofile._bytes ||*/null;
+       if (bytes != null) {
+
+           return new jarInputStreamProvider()
+           {
+
+             @Override
+             public JarInputStream getJarInputStream() throws IOException
+             {
+                 return new JarInputStream(new ByteArrayInputStream(bytes));
+             }
+
+             @Override
+             public String getFilename()
+             {
+               return file;
+             }
+           };
+
+       }
     URL url = null;
     errorMessage = null;
     uniqueSetSuffix = null;