Merge branch 'releases/Release_2_10_4_Branch' into develop
[jalview.git] / src / jalview / ext / ensembl / EnsemblLookup.java
index f6b3a47..e55605d 100644 (file)
@@ -47,6 +47,17 @@ import org.json.simple.parser.ParseException;
 public class EnsemblLookup extends EnsemblRestClient
 {
   private static final String SPECIES = "species";
+  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)
@@ -179,7 +190,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);