JAL-1423 - console error reporting and graceful handling for corrupt DAS local source...
authorJim Procter <jprocter@compbio.dundee.ac.uk>
Tue, 7 Jan 2014 12:22:28 +0000 (12:22 +0000)
committerJim Procter <jprocter@compbio.dundee.ac.uk>
Tue, 7 Jan 2014 12:22:28 +0000 (12:22 +0000)
src/jalview/ws/dbsources/das/datamodel/DasSourceRegistry.java

index 9d044bc..761bcc8 100644 (file)
@@ -178,13 +178,21 @@ public class DasSourceRegistry implements DasSourceRegistryI,
     {
       // get local sources from properties and initialise the local source list
       String local = jalview.bin.Cache.getProperty("DAS_LOCAL_SOURCE");
+
       if (local != null)
       {
+        int n = 1;
         StringTokenizer st = new StringTokenizer(local, "\t");
         while (st.hasMoreTokens())
         {
           String token = st.nextToken();
           int bar = token.indexOf("|");
+          if (bar == -1)
+          {
+            System.err
+                    .println("Warning: DAS user local source appears to have no nickname (expected a '|' followed by nickname)\nOffending definition: '"
+                            + token + "'");
+          }
           String url = token.substring(bar + 1);
           boolean features = true, sequence = false;
           if (url.startsWith("sequence:"))
@@ -193,8 +201,25 @@ public class DasSourceRegistry implements DasSourceRegistryI,
             // this source also serves sequences as well as features
             sequence = true;
           }
-          createLocalSource(url, token.substring(0, bar), sequence,
-                  features);
+          try
+          {
+            if (bar > -1)
+            {
+              createLocalSource(url, token.substring(0, bar), sequence,
+                      features);
+            }
+            else
+            {
+              createLocalSource(url, "User Source" + n, sequence, features);
+            }
+          } catch (Exception q)
+          {
+            System.err
+                    .println("Unexpected exception when creating local source from '"
+                            + token + "'");
+            q.printStackTrace();
+          }
+          n++;
         }
       }
     }