Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 cd84cc9ec -> a7d950e36


Prevent SSP from erroring out when the yaml is yanked from it.

Patch by brandonwilliams, reviewed by Richard Low for CASSANDRA-7663


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/73eb68c5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/73eb68c5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/73eb68c5

Branch: refs/heads/cassandra-2.1.0
Commit: 73eb68c516a291e2f8a816abab20b67999eb851b
Parents: 244f234
Author: Brandon Williams <brandonwilli...@apache.org>
Authored: Tue Aug 5 13:53:01 2014 -0500
Committer: Brandon Williams <brandonwilli...@apache.org>
Committed: Tue Aug 5 13:53:01 2014 -0500

----------------------------------------------------------------------
 .../cassandra/locator/SimpleSeedProvider.java   | 30 ++++++++++++++++----
 1 file changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/73eb68c5/src/java/org/apache/cassandra/locator/SimpleSeedProvider.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/locator/SimpleSeedProvider.java 
b/src/java/org/apache/cassandra/locator/SimpleSeedProvider.java
index 9f491f3..6c426bd 100644
--- a/src/java/org/apache/cassandra/locator/SimpleSeedProvider.java
+++ b/src/java/org/apache/cassandra/locator/SimpleSeedProvider.java
@@ -17,6 +17,7 @@
  */
 package org.apache.cassandra.locator;
 
+import java.io.IOException;
 import java.io.InputStream;
 import java.net.InetAddress;
 import java.net.URL;
@@ -29,6 +30,7 @@ import java.util.Map;
 import org.apache.cassandra.config.Config;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.config.SeedProviderDef;
+import org.apache.cassandra.exceptions.ConfigurationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.yaml.snakeyaml.Loader;
@@ -39,20 +41,36 @@ public class SimpleSeedProvider implements SeedProvider
 {
     private static final Logger logger = 
LoggerFactory.getLogger(SimpleSeedProvider.class);
 
-    public SimpleSeedProvider(Map<String, String> args) {}
+    List<InetAddress> seeds;
+    public SimpleSeedProvider(Map<String, String> args) {
+        try
+        {
+            seeds = loadSeeds();
+        }
+        catch (Exception e)
+        {
+            throw new AssertionError(e);
+        }
+    }
 
     public List<InetAddress> getSeeds()
     {
-        InputStream input;
         try
         {
-            URL url = DatabaseDescriptor.getStorageConfigURL();
-            input = url.openStream();
+            seeds = loadSeeds();
         }
         catch (Exception e)
         {
-            throw new AssertionError(e);
+            logger.warn("Could not refresh seeds from configuration file: {}", 
e);
         }
+        return Collections.unmodifiableList(seeds);
+    }
+
+    private List<InetAddress> loadSeeds() throws IOException, 
ConfigurationException
+    {
+        InputStream input;
+        URL url = DatabaseDescriptor.getStorageConfigURL();
+        input = url.openStream();
         org.yaml.snakeyaml.constructor.Constructor constructor = new 
org.yaml.snakeyaml.constructor.Constructor(Config.class);
         TypeDescription seedDesc = new TypeDescription(SeedProviderDef.class);
         seedDesc.putMapPropertyType("parameters", String.class, String.class);
@@ -73,6 +91,6 @@ public class SimpleSeedProvider implements SeedProvider
                 logger.warn("Seed provider couldn't lookup host " + host);
             }
         }
-        return Collections.unmodifiableList(seeds);
+        return seeds;
     }
 }

Reply via email to