more subtle rearrangements
[jalview.git] / src / jalview / ws / MsaWSClient.java
index faf2faf..91f0786 100755 (executable)
@@ -22,7 +22,7 @@ public class MsaWSClient
      * server is a WSDL2Java generated stub for an archetypal MsaWSI service.
      */
     ext.vamsas.MuscleWS server;
-
+    // JBPNote Nasty object-global state setting methods shouldn't be allowed
   private boolean setWebService(String MsaWSName) {
     if (MsaWServices.info.containsKey(MsaWSName)) {
       WebServiceName = MsaWSName;
@@ -36,6 +36,23 @@ public class MsaWSClient
     }
   }
 
+  private boolean locateWebService() {
+      // TODO: MuscleWS transmuted to generic MsaWS client
+      MuscleWSServiceLocator loc = new MuscleWSServiceLocator(); // Default
+      try {
+        this.server = (MuscleWS) loc.getMuscleWS(new java.net.URL(WsURL));
+        ((MuscleWSSoapBindingStub) this.server).setTimeout(60000); // One minute timeout
+      }
+      catch (Exception ex) {
+        wsInfo.setProgressText("Serious! "+WebServiceName+" Service location failed\nfor URL :"
+                       +WsURL+"\n"+ex.getMessage());
+        wsInfo.setStatus(wsInfo.ERROR);
+        ex.printStackTrace();
+        return false;
+      }
+      loc.getEngine().setOption("axis","1");
+      return true;
+  }
 
   public MsaWSClient(String MsaWSName, String altitle, SequenceI[] msa, boolean submitGaps, boolean preserveOrder)
   {
@@ -47,21 +64,11 @@ public class MsaWSClient
 
     wsInfo = new jalview.gui.WebserviceInfo(WebServiceJobTitle, WebServiceReference);
 
+    if (!locateWebService())
+      return;
+
     wsInfo.setProgressText(((submitGaps) ? "Re-alignment" : "Alignment")+" of "+altitle+"\nJob details\n");
 
-    // TODO: MuscleWS transmuted to generic MsaWS client
-    MuscleWSServiceLocator loc = new MuscleWSServiceLocator(); // Default
-    try {
-      this.server = (MuscleWS) loc.getMuscleWS(new java.net.URL(WsURL));
-      ((MuscleWSSoapBindingStub) this.server).setTimeout(60000); // One minute timeout
-    }
-    catch (Exception ex) {
-      wsInfo.setProgressText("Serious! "+WebServiceName+" Service location failed\nfor URL :"
-                     +WsURL+"\n"+ex.getMessage());
-      wsInfo.setStatus(wsInfo.ERROR);
-      ex.printStackTrace();
-    }
-    loc.getEngine().setOption("axis","1");
     MsaWSThread musclethread = new MsaWSThread(WebServiceName+" alignment of "+altitle, msa, submitGaps, preserveOrder);
     wsInfo.setthisService(musclethread);
     musclethread.start();