JAL-1085 - ensure sequence fetching client waits around until feature retrieval has...
[jalview.git] / src / jalview / ws / dbsources / das / datamodel / DasSequenceSource.java
index 7a78d8d..5f18331 100644 (file)
@@ -25,8 +25,10 @@ import java.util.Map;
 import java.util.StringTokenizer;\r
 import java.util.Vector;\r
 \r
+import org.biodas.jdas.client.ConnectionPropertyProviderI;\r
 import org.biodas.jdas.client.SequenceClient;\r
 import org.biodas.jdas.client.adapters.sequence.DasSequenceAdapter;\r
+import org.biodas.jdas.client.threads.MultipleConnectionPropertyProviderI;\r
 import org.biodas.jdas.client.threads.SequenceClientMultipleSources;\r
 import org.biodas.jdas.schema.sequence.SEQUENCE;\r
 import org.biodas.jdas.schema.sources.COORDINATES;\r
@@ -65,7 +67,7 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
   protected String dbname = "DASCS";\r
 \r
   protected String dbrefname = "das:source";\r
-\r
+  protected MultipleConnectionPropertyProviderI connprops=null;\r
   /**\r
    * create a new DbSource proxy for a DAS 1 source\r
    * \r
@@ -82,9 +84,9 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
    *           if source is not capable of the 'sequence' command\r
    */\r
   public DasSequenceSource(String dbname, String dbrefname, SOURCE source,\r
-          VERSION version, COORDINATES coordsys) throws Exception\r
+          VERSION version, COORDINATES coordsys, MultipleConnectionPropertyProviderI connprops) throws Exception\r
   {\r
-    if (!(jsrc = new JalviewSource(source, false)).isSequenceSource())\r
+    if (!(jsrc = new JalviewSource(source, connprops, false)).isSequenceSource())\r
     {\r
       throw new Exception("Source " + source.getTitle()\r
               + " does not support the sequence command.");\r
@@ -93,6 +95,7 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
     this.dbname = dbname;\r
     this.dbrefname = dbrefname;\r
     this.coordsys = coordsys;\r
+    this.connprops=connprops;\r
   }\r
 \r
   public String getAccessionSeparator()\r
@@ -149,8 +152,7 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
           System.err\r
                   .println("Retrieving IDs individually from das source: "\r
                           + sr);\r
-          // todo : get conn property provider\r
-          org.biodas.jdas.client.SequenceClient sq = new SequenceClient();\r
+          org.biodas.jdas.client.SequenceClient sq = new SequenceClient(connprops.getConnectionPropertyProviderFor(sr));\r
           for (String q : toks)\r
           {\r
             List<String> qset = Arrays.asList(new String[]\r
@@ -273,6 +275,16 @@ public class DasSequenceSource extends DbSourceProxyImpl implements
         {\r
           jalview.ws.DasSequenceFeatureFetcher dssf=new jalview.ws.DasSequenceFeatureFetcher(sqs, null, srcs, false,\r
                   false, multiple);\r
+          while (dssf.isRunning())\r
+          {\r
+            try {\r
+              Thread.sleep(200);\r
+            } catch (InterruptedException x)\r
+            {\r
+              \r
+            }\r
+          }\r
+          \r
         } catch (Exception x)\r
         {\r
           Cache.log\r