Merge branch 'features/JAL-2885UniprotHttps' into releases/Release_2_10_4_Branch
[jalview.git] / src / jalview / ext / ensembl / EnsemblLookup.java
index 92763a1..0ddef2b 100644 (file)
@@ -41,6 +41,19 @@ import org.json.simple.parser.ParseException;
  */
 public class EnsemblLookup extends EnsemblRestClient
 {
+
+  private static final String OBJECT_TYPE_TRANSLATION = "Translation";
+  private static final String PARENT = "Parent";
+  private static final String OBJECT_TYPE_TRANSCRIPT = "Transcript";
+  private static final String ID = "id";
+  private static final String OBJECT_TYPE_GENE = "Gene";
+  private static final String OBJECT_TYPE = "object_type";
+
+  /**
+   * keep track of last identifier retrieved to break loops
+   */
+  private String lastId;
+
   /**
    * Default constructor (to use rest.ensembl.org)
    */
@@ -150,7 +163,18 @@ public class EnsemblLookup extends EnsemblRestClient
     BufferedReader br = null;
     try
     {
+
       URL url = getUrl(identifier, objectType);
+
+      if (identifier.equals(lastId))
+      {
+        System.err.println("** Ensembl lookup " + url.toString()
+                + " looping on Parent!");
+        return null;
+      }
+
+      lastId = identifier;
+
       if (url != null)
       {
         br = getHttpResponse(url, ids);