X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2FMsaWSClient.java;h=479f22f1e1454d0a41b724e72a30189e0e17afd6;hb=58e82de6951f919828899de75b908cd1114d8511;hp=7f754e012c24f5277ba04b878de9ad8b87a39de3;hpb=ae0f884be559f2f706945b379d110e9c60642364;p=jalview.git diff --git a/src/jalview/ws/MsaWSClient.java b/src/jalview/ws/MsaWSClient.java index 7f754e0..479f22f 100755 --- a/src/jalview/ws/MsaWSClient.java +++ b/src/jalview/ws/MsaWSClient.java @@ -57,7 +57,7 @@ public class MsaWSClient */ public MsaWSClient(ext.vamsas.ServiceHandle sh, String altitle, SequenceI[] msa, - boolean submitGaps, boolean preserveOrder) + boolean submitGaps, boolean preserveOrder, Alignment seqdataset) { if (!sh.getAbstractName().equals("MsaWS")) @@ -81,13 +81,13 @@ public class MsaWSClient return; } - startMsaWSClient(altitle, msa, submitGaps, preserveOrder); + startMsaWSClient(altitle, msa, submitGaps, preserveOrder, seqdataset); } private void startMsaWSClient(String altitle, SequenceI[] msa, - boolean submitGaps, boolean preserveOrder) + boolean submitGaps, boolean preserveOrder, Alignment seqdataset) { if (!locateWebService()) { @@ -99,7 +99,7 @@ public class MsaWSClient MsaWSThread musclethread = new MsaWSThread(WebServiceName + " alignment of " + altitle, msa, - submitGaps, preserveOrder); + submitGaps, preserveOrder, seqdataset); wsInfo.setthisService(musclethread); musclethread.start(); } @@ -125,7 +125,7 @@ public class MsaWSClient " Service location failed\nfor URL :" + WsURL + "\n" + ex.getMessage()); - wsInfo.setStatus(wsInfo.ERROR); + wsInfo.setStatus(WebserviceInfo.ERROR); ex.printStackTrace(); return false; @@ -145,20 +145,22 @@ public class MsaWSClient vamsas.objects.simple.SequenceSet seqs = new vamsas.objects.simple. SequenceSet(); Hashtable SeqNames = null; - boolean submitGaps = false; // and always store and recover sequence order + boolean submitGaps = false; // pass sequences including gaps to alignment service boolean preserveOrder = true; // and always store and recover sequence order String jobId; String alTitle; // name which will be used to form new alignment window. int allowedServerExceptions = 3; // thread dies if too many exceptions. boolean jobComplete = false; + Alignment dataset; // dataset to which the new alignment will be associated. + MsaWSThread(String title, SequenceI[] msa, boolean subgaps, - boolean presorder) + boolean presorder, Alignment seqset) { alTitle = title; submitGaps = subgaps; preserveOrder = presorder; - + dataset = seqset; OutputHeader = wsInfo.getProgressText(); SeqNames = new Hashtable(); @@ -257,7 +259,7 @@ public class MsaWSClient throw (new Exception( "Timed out when communicating with server\nTry again later.\n")); } - jalview.bin.Jalview.log.debug("Result state " + result.getState() + + jalview.bin.Cache.log.debug("Result state " + result.getState() + "(ServerError=" + result.isServerError() + ")"); if (result.isRunning()) @@ -280,8 +282,7 @@ public class MsaWSClient { if (result.getStatus() != null) { - wsInfo.setProgressText(OutputHeader + "\n" + - result.getStatus()); + wsInfo.setProgressText(OutputHeader + "\n"+ result.getStatus()); } if (result.isServerError()) { @@ -325,6 +326,17 @@ public class MsaWSClient { } } + catch(OutOfMemoryError er) + { + jobComplete = true; + wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_ERROR); + JOptionPane.showInternalMessageDialog(Desktop.desktop, + "Out of memory handling result!!" + +"\nSee help files for increasing Java Virtual Machine memory." + ,"Out of memory", JOptionPane.WARNING_MESSAGE ); + System.out.println("MsaWSClient: "+er); + System.gc(); + } } if (allowedServerExceptions == 0) @@ -385,7 +397,7 @@ public class MsaWSClient e.toString() + "\n"); this.allowedServerExceptions = 0; - wsInfo.setStatus(wsInfo.STATE_STOPPED_SERVERERROR); + wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR); wsInfo.appendProgressText( "Failed to submit sequences for alignment.\n" + "It is most likely that there is a problem with the server.\n" + @@ -457,7 +469,9 @@ public class MsaWSClient jalview.analysis.SeqsetUtils.deuniquify(SeqNames, seqs); Alignment al = new Alignment(seqs); - + if (dataset!=null) { + al.setDataset(dataset); + } // TODO: JBPNote Should also rename the query sequence sometime... AlignFrame af = new AlignFrame(al); af.addSortByOrderMenuItem(ServiceName + " Ordering",