- FTSRestResponse resultList;
- FTSRestRequest pdbRequest = new FTSRestRequest();
- pdbRequest.setAllowEmptySeq(false);
- pdbRequest.setResponseSize(500);
- pdbRequest.setFieldToSearchBy("(");
- // pdbRequest.setFieldToSortBy("pdb_id");
- pdbRequest.setWantedFields(
- pdbquery.getDocFieldPrefs().getStructureSummaryFields());
- pdbRequest.setSearchTerm(pdb_Query + ")");
-
- resultList = pdbquery.executePDBFTSRestRequest(pdbRequest);
-
- lastPdbRequest = pdbRequest;
- return resultList;
+ List<FTSRestResponse> results = new ArrayList<FTSRestResponse>();
+
+ for (String pdb_Query : pdb_Queries)
+ {
+ FTSRestResponse resultList;
+ FTSRestRequest pdbRequest = new FTSRestRequest();
+ pdbRequest.setAllowEmptySeq(false);
+ pdbRequest.setResponseSize(500);
+ pdbRequest.setFieldToSearchBy("(");
+ // pdbRequest.setFieldToSortBy("pdb_id");
+ pdbRequest.setWantedFields(
+ pdbquery.getDocFieldPrefs().getStructureSummaryFields());
+ pdbRequest.setSearchTerm(pdb_Query + ")");
+
+ // handle exceptions like server errors here - means the threedbeacons
+ // discovery isn't broken by issues to do with the PDBe SOLR api
+ try
+ {
+ resultList = pdbquery.executePDBFTSRestRequest(pdbRequest);
+ if (resultList.getNumberOfItemsFound() == 0)
+ {
+ Console.info("Unexpectedly returned no results for pdbe query: "
+ + pdb_Query);
+ }
+ results.add(resultList);
+ lastPdbRequest = pdbRequest;
+ } catch (Exception ex)
+ {
+ Console.error("PDBFTSQuery failed", ex);
+ }
+
+ }
+
+ return results;