JAL-3633 ensure check both http:// or https:// for urls
[jalview.git] / src / jalview / gui / AlignFrame.java
index 5b7a201..e886ad0 100644 (file)
@@ -144,6 +144,7 @@ import jalview.schemes.ColourSchemeI;
 import jalview.schemes.ColourSchemes;
 import jalview.schemes.ResidueColourScheme;
 import jalview.schemes.TCoffeeColourScheme;
+import jalview.util.HttpUtils;
 import jalview.util.ImageMaker.TYPE;
 import jalview.util.MessageManager;
 import jalview.util.Platform;
@@ -1062,7 +1063,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         Desktop.instance.closeAssociatedWindows();
 
         FileLoader loader = new FileLoader();
-        DataSourceType protocol = fileName.startsWith("http:")
+        DataSourceType protocol = HttpUtils.startsWithHttpOrHttps(fileName)
                 ? DataSourceType.URL
                 : DataSourceType.FILE;
         loader.LoadFile(viewport, fileName, protocol, currentFileFormat);
@@ -1078,9 +1079,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         if (fileObject == null)
         {
 
-          DataSourceType protocol = (fileName.startsWith("http:")
+          DataSourceType protocol = HttpUtils.startsWithHttpOrHttps(fileName)
                   ? DataSourceType.URL
-                  : DataSourceType.FILE);
+                  : DataSourceType.FILE;
           newframe = loader.LoadFileWaitTillLoaded(fileName, protocol,
                   currentFileFormat);
         }
@@ -1131,7 +1132,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   public void save_actionPerformed(ActionEvent e)
   {
     if (fileName == null || (currentFileFormat == null)
-            || fileName.startsWith("http"))
+            || HttpUtils.startsWithHttpOrHttps(fileName))
     {
       saveAs_actionPerformed();
     }
@@ -1204,11 +1205,20 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     if (!lastSaveSuccessful)
     {
-      JvOptionPane.showInternalMessageDialog(this, MessageManager
-              .formatMessage("label.couldnt_save_file", new Object[]
-              { lastFilenameSaved }),
-              MessageManager.getString("label.error_saving_file"),
-              JvOptionPane.WARNING_MESSAGE);
+      if (!Platform.isHeadless())
+      {
+        JvOptionPane.showInternalMessageDialog(this, MessageManager
+                .formatMessage("label.couldnt_save_file", new Object[]
+                { lastFilenameSaved }),
+                MessageManager.getString("label.error_saving_file"),
+                JvOptionPane.WARNING_MESSAGE);
+      }
+      else
+      {
+        Cache.log.error(MessageManager
+                .formatMessage("label.couldnt_save_file", new Object[]
+                { lastFilenameSaved }));
+      }
     }
     else
     {
@@ -1250,7 +1260,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
       statusBar.setText(MessageManager.formatMessage(
               "label.successfully_saved_to_file_in_format", new Object[]
-              { fileName, format }));
+              { file, format }));
 
       return;
     }
@@ -1288,7 +1298,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
           BackupFiles backupfiles = null;
           if (doBackup)
           {
-            Cache.log.debug(
+            Cache.log.trace(
                     "ALIGNFRAME making backupfiles object for " + file);
             backupfiles = new BackupFiles(file);
           }
@@ -1296,19 +1306,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
           {
             String tempFilePath = doBackup ? backupfiles.getTempFilePath()
                     : file;
-            Cache.log.debug("ALIGNFRAME setting PrintWriter");
+            Cache.log.trace("ALIGNFRAME setting PrintWriter");
             PrintWriter out = new PrintWriter(new FileWriter(tempFilePath));
 
             if (backupfiles != null)
             {
-              Cache.log.debug("ALIGNFRAME using temp file "
+              Cache.log.trace("ALIGNFRAME about to write to temp file "
                       + backupfiles.getTempFilePath());
             }
 
             out.print(output);
-            Cache.log.debug("ALIGNFRAME about to close file");
+            Cache.log.trace("ALIGNFRAME about to close file");
             out.close();
-            Cache.log.debug("ALIGNFRAME closed file");
+            Cache.log.trace("ALIGNFRAME closed file");
             AlignFrame.this.setTitle(file);
             statusBar.setText(MessageManager.formatMessage(
                     "label.successfully_saved_to_file_in_format",
@@ -1321,23 +1331,23 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
             Cache.log.error(
                     "ALIGNFRAME Something happened writing the temp file");
             Cache.log.error(e.getMessage());
-            Cache.log.debug(e.getStackTrace());
+            Cache.log.debug(Cache.getStackTraceString(e));
           } catch (Exception ex)
           {
             lastSaveSuccessful = false;
             Cache.log.error(
-                    "ALIGNFRAME Something else happened writing the temp file");
+                    "ALIGNFRAME Something unexpected happened writing the temp file");
             Cache.log.error(ex.getMessage());
-            Cache.log.debug(ex.getStackTrace());
+            Cache.log.debug(Cache.getStackTraceString(ex));
           }
 
           if (doBackup)
           {
             backupfiles.setWriteSuccess(lastSaveSuccessful);
             Cache.log.debug("ALIGNFRAME writing temp file was "
-                    + (lastSaveSuccessful ? "" : "not ") + "successful");
+                    + (lastSaveSuccessful ? "" : "NOT ") + "successful");
             // do the backup file roll and rename the temp file to actual file
-            Cache.log.debug(
+            Cache.log.trace(
                     "ALIGNFRAME about to rollBackupsAndRenameTempFile");
             lastSaveSuccessful = backupfiles.rollBackupsAndRenameTempFile();
             Cache.log.debug(
@@ -1345,19 +1355,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                             + (lastSaveSuccessful ? "" : "un")
                             + "successfully");
           }
-
-          if (!lastSaveSuccessful)
-          {
-            if (!Platform.isHeadless())
-            {
-              JvOptionPane.showInternalMessageDialog(AlignFrame.this,
-                      MessageManager.formatMessage(
-                              "label.couldnt_save_file", new Object[]
-                              { fileName }),
-                      MessageManager.getString("label.error_saving_file"),
-                      JvOptionPane.WARNING_MESSAGE);
-            }
-          }
         }
       }
     };