properly catch exceptions from querying server with sequence command
authorjprocter <Jim Procter>
Thu, 4 Dec 2008 10:23:04 +0000 (10:23 +0000)
committerjprocter <Jim Procter>
Thu, 4 Dec 2008 10:23:04 +0000 (10:23 +0000)
src/org/biojava/dasobert/das/SequenceThread.java

index 76008b6..720c60b 100755 (executable)
@@ -119,13 +119,16 @@ public class SequenceThread extends Thread
         version = "";
 
         String sequence = retrieveSequence(connstr);
-        // bug in aristotle das source?
-        sequence.replaceAll(" ", "");
-        gotSequence = true;
-        // set the sequence ...
-
-        triggerNewSequence(sp_accession, sequence, ds, version);
-
+        // TODO: discriminate exceptions caused by connection/server errors and ones caused by the sequence not being found in the reference source.
+        if (sequence!=null)
+        {
+          // bug in aristotle das source?
+          sequence.replaceAll(" ", "");
+          gotSequence = true;
+          // set the sequence ...
+
+          triggerNewSequence(sp_accession, sequence, ds, version);
+        }
         return;
       } catch (Exception ex)
       {
@@ -246,7 +249,10 @@ public class SequenceThread extends Thread
       logger.log(Level.FINER, "Uncaught exception", e);
       // System.err.println("Cannot set load-external-dtd to" + validate);
     }
-
+    if (dasInStream==null)
+    {
+      return null;
+    }
     // DAS_DNA_Handler cont_handle = new DAS_DNA_Handler() ;
     DAS_Sequence_Handler cont_handle = new DAS_Sequence_Handler();
     xmlreader.setContentHandler(cont_handle);