\r
long startTime;\r
int threadsRunning = 0;\r
+ boolean allBatchesComplete = false;\r
\r
\r
/**\r
return f;\r
}\r
catch (Exception e) {\r
+ System.out.println("ERRR "+e);\r
e.printStackTrace();\r
+ System.out.println("############");\r
Cache.log.debug("Failed to parse "+dasfeature.toString(), e);\r
return null;\r
}\r
synchronized void setThreadsRunning(int i)\r
{\r
threadsRunning += i;\r
- if(threadsRunning<1)\r
+ if(threadsRunning<1 && allBatchesComplete)\r
{\r
af.setProgressBar("DAS Feature Fetching Complete", startTime);\r
\r
\r
try\r
{\r
+ //We must limit the feature fetching to 20 to prevent\r
+ //Servers being overloaded with too many requests\r
+ int batchCount = 0;\r
+ int batchMaxSize = 20;\r
int seqIndex = 0;\r
while (seqIndex < sequences.length)\r
{\r
+ batchCount ++;\r
+ if(batchCount>=batchMaxSize)\r
+ {\r
+ waitTillBatchComplete();\r
+ batchCount = 0;\r
+ }\r
+\r
DBRefEntry [] uprefs = jalview.util.DBRefUtils.selectRefs(sequences[seqIndex].getDBRef(),\r
new String[] {\r
jalview.datamodel.DBRefSource.PDB,\r
{\r
ex.printStackTrace();\r
}\r
+ allBatchesComplete = true;\r
+ }\r
+\r
+ void waitTillBatchComplete()\r
+ {\r
+ while( threadsRunning > 0 )\r
+ {\r
+ try{\r
+ Thread.sleep(1000);\r
+\r
+ }catch(Exception ex)\r
+ {\r
+ ex.printStackTrace();\r
+ }\r
+ }\r
+\r
}\r
\r
\r