You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2014/08/06 00:55:12 UTC

[02/11] git commit: Prevent SSP from erroring out when the yaml is yanked from it.

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
Commit: 73eb68c516a291e2f8a816abab20b67999eb851b
Parents: 244f234
Author: Brandon Williams <br...@apache.org>
Authored: Tue Aug 5 13:53:01 2014 -0500
Committer: Brandon Williams <br...@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;
     }
 }