X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fproject%2FJalview2XML.java;h=7b23c8d16c4415c76fd6f047f84df0e93808d888;hb=92dc8d4272d82842b62132f21e543e38c97e150f;hp=9f796f2a4a80e2d9090b5167e5c2e8eb1c22a79b;hpb=c25cfde239527da78fecce55a877330afa90701d;p=jalview.git diff --git a/src/jalview/project/Jalview2XML.java b/src/jalview/project/Jalview2XML.java index 9f796f2..7b23c8d 100644 --- a/src/jalview/project/Jalview2XML.java +++ b/src/jalview/project/Jalview2XML.java @@ -59,7 +59,6 @@ import jalview.gui.AppVarna; import jalview.gui.ChimeraViewFrame; import jalview.gui.Desktop; import jalview.gui.FeatureRenderer; -import jalview.gui.Jalview2XML_V1; import jalview.gui.JvOptionPane; import jalview.gui.OOMWarning; import jalview.gui.PCAPanel; @@ -69,6 +68,7 @@ import jalview.gui.StructureViewer; import jalview.gui.StructureViewer.ViewerType; import jalview.gui.StructureViewerBase; import jalview.gui.TreePanel; +import jalview.io.BackupFiles; import jalview.io.DataSourceType; import jalview.io.FileFormat; import jalview.io.NewickFile; @@ -551,24 +551,30 @@ public class Jalview2XML public void saveState(File statefile) { FileOutputStream fos = null; + try { + fos = new FileOutputStream(statefile); + JarOutputStream jout = new JarOutputStream(fos); saveState(jout); + fos.close(); } catch (Exception e) { + Cache.log.error("Couln't write Jalview state to " + statefile, e); // TODO: inform user of the problem - they need to know if their data was // not saved ! if (errorMessage == null) { - errorMessage = "Couldn't write Jalview Archive to output file '" + errorMessage = "Did't write Jalview Archive to output file '" + statefile + "' - See console error log for details"; } else { - errorMessage += "(output file was '" + statefile + "')"; + errorMessage += "(Didn't write Jalview Archive to output file '" + + statefile + ")"; } e.printStackTrace(); } finally @@ -738,7 +744,11 @@ public class Jalview2XML { try { - FileOutputStream fos = new FileOutputStream(jarFile); + // create backupfiles object and get new temp filename destination + BackupFiles backupfiles = new BackupFiles(jarFile); + FileOutputStream fos = new FileOutputStream( + backupfiles.getTempFilePath()); + JarOutputStream jout = new JarOutputStream(fos); List frames = new ArrayList<>(); @@ -760,7 +770,12 @@ public class Jalview2XML } ; jout.close(); - return true; + boolean success = true; + + backupfiles.setWriteSuccess(success); + success = backupfiles.rollBackupsAndRenameTempFile(); + + return success; } catch (Exception ex) { errorMessage = "Couldn't Write alignment view to Jalview Archive - see error output for details"; @@ -1822,12 +1837,10 @@ public class Jalview2XML { int rows = mData.getRows(); double[][] vals = new double[rows][]; - List dVector; - double[] vec; for (int i = 0; i < rows; i++) { - dVector = mData.getRow().get(i).getV(); + List dVector = mData.getRow().get(i).getV(); vals[i] = new double[dVector.size()]; int dvi = 0; for (Double d : dVector) @@ -1840,8 +1853,8 @@ public class Jalview2XML if (mData.getD() != null) { - dVector = mData.getD().getV(); - vec = new double[dVector.size()]; + List dVector = mData.getD().getV(); + double[] vec = new double[dVector.size()]; int dvi = 0; for (Double d : dVector) { @@ -1851,8 +1864,8 @@ public class Jalview2XML } if (mData.getE() != null) { - dVector = mData.getE().getV(); - vec = new double[dVector.size()]; + List dVector = mData.getE().getV(); + double[] vec = new double[dVector.size()]; int dvi = 0; for (Double d : dVector) { @@ -2884,16 +2897,7 @@ public class Jalview2XML ex.printStackTrace(System.err); if (attemptversion1parse) { - // Is Version 1 Jar file? - try - { - af = new Jalview2XML_V1(raiseGUI).LoadJalviewAlign(jprovider); - } catch (Exception ex2) - { - System.err.println("Exception whilst loading as jalviewXMLV1:"); - ex2.printStackTrace(); - af = null; - } + // used to attempt to parse as V1 castor-generated xml } if (Desktop.instance != null) {