Repository: hbase
Updated Branches:
  refs/heads/master afcaa8747 -> e5e2bde87


HBASE-19110 Add default for Server#isStopping & #getFileSystem


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

Branch: refs/heads/master
Commit: e5e2bde87b43e3b3d897845c8973d717dc495f69
Parents: afcaa87
Author: Michael Stack <st...@apache.org>
Authored: Fri Oct 27 09:39:06 2017 -0700
Committer: Michael Stack <st...@apache.org>
Committed: Sat Oct 28 10:41:10 2017 -0700

----------------------------------------------------------------------
 .../java/org/apache/hadoop/hbase/Server.java    | 22 +++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/e5e2bde8/hbase-server/src/main/java/org/apache/hadoop/hbase/Server.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/Server.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/Server.java
index f436dcc1a..a6b39f3 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/Server.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/Server.java
@@ -26,6 +26,8 @@ import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
 import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
 import org.apache.yetus.audience.InterfaceAudience;
 
+import java.io.IOException;
+
 /**
  * Defines a curated set of shared functions implemented by HBase servers 
(Masters
  * and RegionServers). For use internally only. Be judicious adding API. 
Changes cause ripples
@@ -83,15 +85,29 @@ public interface Server extends Abortable, Stoppable {
   ChoreService getChoreService();
 
   /**
-   * @return Return the FileSystem object used.
+   * @return Return the FileSystem object used (can return null!).
    */
   // TODO: On Master, return Master's. On RegionServer, return RegionServers. 
The FileSystems
   // may differ. TODO.
-  FileSystem getFileSystem();
+  default FileSystem getFileSystem() {
+    // This default is pretty dodgy!
+    Configuration c = getConfiguration();
+    FileSystem fs = null;
+    try {
+      if (c != null) {
+        fs = FileSystem.get(c);
+      }
+    } catch (IOException e) {
+      // If an exception, just return null
+    }
+    return fs;
+  };
 
   /**
    * @return True is the server is Stopping
    */
   // Note: This method is not part of the Stoppable Interface.
-  boolean isStopping();
+  default boolean isStopping() {
+    return false;
+  }
 }

Reply via email to