You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2017/11/04 15:17:35 UTC

[01/21] hbase-site git commit: Published site at .

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 46e1b6b03 -> edf5597c9


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-reports.html b/hbase-build-configuration/hbase-spark/project-reports.html
index ba71c57..dd51d25 100644
--- a/hbase-build-configuration/hbase-spark/project-reports.html
+++ b/hbase-build-configuration/hbase-spark/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -131,7 +131,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-summary.html b/hbase-build-configuration/hbase-spark/project-summary.html
index 6b7c3ca..bc6458b 100644
--- a/hbase-build-configuration/hbase-spark/project-summary.html
+++ b/hbase-build-configuration/hbase-spark/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/source-repository.html b/hbase-build-configuration/hbase-spark/source-repository.html
index f45af2c..1a17597 100644
--- a/hbase-build-configuration/hbase-spark/source-repository.html
+++ b/hbase-build-configuration/hbase-spark/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/team-list.html b/hbase-build-configuration/hbase-spark/team-list.html
index b82f5fa..63d303a 100644
--- a/hbase-build-configuration/hbase-spark/team-list.html
+++ b/hbase-build-configuration/hbase-spark/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/index.html b/hbase-build-configuration/index.html
index b63f1e8..bf03f4a 100644
--- a/hbase-build-configuration/index.html
+++ b/hbase-build-configuration/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/integration.html b/hbase-build-configuration/integration.html
index 5c320fe..a51c65c 100644
--- a/hbase-build-configuration/integration.html
+++ b/hbase-build-configuration/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/issue-tracking.html b/hbase-build-configuration/issue-tracking.html
index 199841e..55ddec6 100644
--- a/hbase-build-configuration/issue-tracking.html
+++ b/hbase-build-configuration/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/license.html b/hbase-build-configuration/license.html
index bdbe67c..75c6b91 100644
--- a/hbase-build-configuration/license.html
+++ b/hbase-build-configuration/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/mail-lists.html b/hbase-build-configuration/mail-lists.html
index f77c479..37e752d 100644
--- a/hbase-build-configuration/mail-lists.html
+++ b/hbase-build-configuration/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/plugin-management.html b/hbase-build-configuration/plugin-management.html
index 7763520..eaed5c1 100644
--- a/hbase-build-configuration/plugin-management.html
+++ b/hbase-build-configuration/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/plugins.html b/hbase-build-configuration/plugins.html
index cfc02b8..bea3c99 100644
--- a/hbase-build-configuration/plugins.html
+++ b/hbase-build-configuration/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/project-info.html b/hbase-build-configuration/project-info.html
index 1e856ae..bc3a543 100644
--- a/hbase-build-configuration/project-info.html
+++ b/hbase-build-configuration/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/project-summary.html b/hbase-build-configuration/project-summary.html
index 18bced7..6bb2242 100644
--- a/hbase-build-configuration/project-summary.html
+++ b/hbase-build-configuration/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/source-repository.html b/hbase-build-configuration/source-repository.html
index 1c643a4..f8536dc 100644
--- a/hbase-build-configuration/source-repository.html
+++ b/hbase-build-configuration/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/team-list.html b/hbase-build-configuration/team-list.html
index e59ec34..38f3f67 100644
--- a/hbase-build-configuration/team-list.html
+++ b/hbase-build-configuration/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/checkstyle.html b/hbase-shaded-check-invariants/checkstyle.html
index 2aaee4c..0f65d90 100644
--- a/hbase-shaded-check-invariants/checkstyle.html
+++ b/hbase-shaded-check-invariants/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependencies.html b/hbase-shaded-check-invariants/dependencies.html
index 08e7825..fa402bb 100644
--- a/hbase-shaded-check-invariants/dependencies.html
+++ b/hbase-shaded-check-invariants/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -2852,7 +2852,7 @@ Jackson JSON processor's data binding functionality.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-convergence.html b/hbase-shaded-check-invariants/dependency-convergence.html
index 34aac30..1a1d713 100644
--- a/hbase-shaded-check-invariants/dependency-convergence.html
+++ b/hbase-shaded-check-invariants/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -763,7 +763,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-info.html b/hbase-shaded-check-invariants/dependency-info.html
index 6f79530..05af75a 100644
--- a/hbase-shaded-check-invariants/dependency-info.html
+++ b/hbase-shaded-check-invariants/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-management.html b/hbase-shaded-check-invariants/dependency-management.html
index 6bbcb08..2f5bdbe 100644
--- a/hbase-shaded-check-invariants/dependency-management.html
+++ b/hbase-shaded-check-invariants/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -784,7 +784,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/index.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/index.html b/hbase-shaded-check-invariants/index.html
index daba933..001ebe3 100644
--- a/hbase-shaded-check-invariants/index.html
+++ b/hbase-shaded-check-invariants/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -122,7 +122,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/integration.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/integration.html b/hbase-shaded-check-invariants/integration.html
index c0df3ab..2740a61 100644
--- a/hbase-shaded-check-invariants/integration.html
+++ b/hbase-shaded-check-invariants/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/issue-tracking.html b/hbase-shaded-check-invariants/issue-tracking.html
index a54ba16..484905f 100644
--- a/hbase-shaded-check-invariants/issue-tracking.html
+++ b/hbase-shaded-check-invariants/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/license.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/license.html b/hbase-shaded-check-invariants/license.html
index 910ac3e..fa9eabf 100644
--- a/hbase-shaded-check-invariants/license.html
+++ b/hbase-shaded-check-invariants/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/mail-lists.html b/hbase-shaded-check-invariants/mail-lists.html
index f35b379..e4bc323b 100644
--- a/hbase-shaded-check-invariants/mail-lists.html
+++ b/hbase-shaded-check-invariants/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/plugin-management.html b/hbase-shaded-check-invariants/plugin-management.html
index 460035d..f75ded4 100644
--- a/hbase-shaded-check-invariants/plugin-management.html
+++ b/hbase-shaded-check-invariants/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/plugins.html b/hbase-shaded-check-invariants/plugins.html
index ea0f6b5..a421662 100644
--- a/hbase-shaded-check-invariants/plugins.html
+++ b/hbase-shaded-check-invariants/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -218,7 +218,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-info.html b/hbase-shaded-check-invariants/project-info.html
index 9443240..2682792 100644
--- a/hbase-shaded-check-invariants/project-info.html
+++ b/hbase-shaded-check-invariants/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -170,7 +170,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-reports.html b/hbase-shaded-check-invariants/project-reports.html
index 0d717f1..c35a772 100644
--- a/hbase-shaded-check-invariants/project-reports.html
+++ b/hbase-shaded-check-invariants/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-summary.html b/hbase-shaded-check-invariants/project-summary.html
index 56d73bf..dfa361f 100644
--- a/hbase-shaded-check-invariants/project-summary.html
+++ b/hbase-shaded-check-invariants/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/source-repository.html b/hbase-shaded-check-invariants/source-repository.html
index be94b22..0179df3 100644
--- a/hbase-shaded-check-invariants/source-repository.html
+++ b/hbase-shaded-check-invariants/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-shaded-check-invariants/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/team-list.html b/hbase-shaded-check-invariants/team-list.html
index c9eb6c9..b76acaa 100644
--- a/hbase-shaded-check-invariants/team-list.html
+++ b/hbase-shaded-check-invariants/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 9d09cf9..a5b9a92 100644
--- a/index.html
+++ b/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -438,7 +438,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 891925d..a20d6a4 100644
--- a/integration.html
+++ b/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -296,7 +296,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 4daac61..0bfd710 100644
--- a/issue-tracking.html
+++ b/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -293,7 +293,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index ec286bb..b1f393d 100644
--- a/license.html
+++ b/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -496,7 +496,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 8567f0f..4a95301 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -346,7 +346,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index 5d77b4a..19cbedf 100644
--- a/metrics.html
+++ b/metrics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -297,14 +297,14 @@ under the License. -->
 <h2><a name="Introduction"></a>Introduction</h2>
       
 <p>
-      Apache HBase (TM) emits Hadoop <a class="externalLink" href="http://hadoop.apache.org/core/docs/current/api/org/apache/hadoop/metrics/package-summary.html">metrics</a>.
+      Apache HBase (TM) emits Hadoop <a class="externalLink" href="http://hadoop.apache.org/core/docs/stable/api/org/apache/hadoop/metrics/package-summary.html">metrics</a>.
       </p>
       </div>
       
 <div class="section">
 <h2><a name="Setup"></a>Setup</h2>
       
-<p>First read up on Hadoop <a class="externalLink" href="http://hadoop.apache.org/core/docs/current/api/org/apache/hadoop/metrics/package-summary.html">metrics</a>.
+<p>First read up on Hadoop <a class="externalLink" href="http://hadoop.apache.org/core/docs/stable/api/org/apache/hadoop/metrics/package-summary.html">metrics</a>.
       If you are using ganglia, the <a class="externalLink" href="http://wiki.apache.org/hadoop/GangliaMetrics">GangliaMetrics</a>
       wiki page is useful read.</p>
       
@@ -464,7 +464,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index a9d157b..444f25c 100644
--- a/old_news.html
+++ b/old_news.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -419,7 +419,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index e161118..e6419e8 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -441,7 +441,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 8e90e92..5579134 100644
--- a/plugins.html
+++ b/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -380,7 +380,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 0baaf5d..36c0c59 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase™</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -774,7 +774,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index c5333ba..e2dc41d 100644
--- a/project-info.html
+++ b/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -340,7 +340,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 8939586..34962b5 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -310,7 +310,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 44193f7..2c14ad4 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index b52ab8e..5b0da41 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -313,7 +313,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 626a03d..bb760a6 100644
--- a/replication.html
+++ b/replication.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -308,7 +308,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index b8fc427..8a69fef 100644
--- a/resources.html
+++ b/resources.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index c877512..c5f49a1 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -304,7 +304,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index b87a4a9..7310f9f 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase™ Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -338,7 +338,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index af4f08a..0856bb8 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -525,7 +525,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index 4005875..3a67020 100644
--- a/team-list.html
+++ b/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -717,7 +717,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
index 9f179b8..a547916 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.36">IntegrationTestRSGroup</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.38">IntegrationTestRSGroup</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsBase</a></pre>
 <div class="block">Runs all of the units tests defined in TestGroupBase as an integration test.
  Requires TestRSGroupBase.NUM_SLAVE_BASE servers to run.</div>
@@ -226,7 +226,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.37">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.39">LOG</a></pre>
 </li>
 </ul>
 <a name="initialized">
@@ -235,7 +235,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase
 <ul class="blockListLast">
 <li class="blockList">
 <h4>initialized</h4>
-<pre>private static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.38">initialized</a></pre>
+<pre>private static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.40">initialized</a></pre>
 </li>
 </ul>
 </li>
@@ -252,7 +252,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase
 <ul class="blockListLast">
 <li class="blockList">
 <h4>IntegrationTestRSGroup</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.36">IntegrationTestRSGroup</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.38">IntegrationTestRSGroup</a>()</pre>
 </li>
 </ul>
 </li>
@@ -269,7 +269,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase
 <ul class="blockList">
 <li class="blockList">
 <h4>beforeMethod</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.41">beforeMethod</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.43">beforeMethod</a>()
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -283,7 +283,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase
 <ul class="blockListLast">
 <li class="blockList">
 <h4>afterMethod</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.61">afterMethod</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html#line.67">afterMethod</a>()
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
index 862fba1..8126aa8 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
@@ -29,80 +29,86 @@
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import org.apache.commons.logging.Log;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import org.apache.commons.logging.LogFactory;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.IntegrationTestingUtility;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.Waiter;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.testclassification.IntegrationTests;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.junit.After;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.junit.Before;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.junit.experimental.categories.Category;<a name="line.29"></a>
-<span class="sourceLineNo">030</span><a name="line.30"></a>
-<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * Runs all of the units tests defined in TestGroupBase as an integration test.<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * Requires TestRSGroupBase.NUM_SLAVE_BASE servers to run.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> */<a name="line.34"></a>
-<span class="sourceLineNo">035</span>@Category(IntegrationTests.class)<a name="line.35"></a>
-<span class="sourceLineNo">036</span>public class IntegrationTestRSGroup extends TestRSGroupsBase {<a name="line.36"></a>
-<span class="sourceLineNo">037</span>  private final static Log LOG = LogFactory.getLog(IntegrationTestRSGroup.class);<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  private static boolean initialized = false;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>  @Before<a name="line.40"></a>
-<span class="sourceLineNo">041</span>  public void beforeMethod() throws Exception {<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    if(!initialized) {<a name="line.42"></a>
-<span class="sourceLineNo">043</span>      LOG.info("Setting up IntegrationTestRSGroup");<a name="line.43"></a>
-<span class="sourceLineNo">044</span>      LOG.info("Initializing cluster with " + NUM_SLAVES_BASE + " servers");<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      TEST_UTIL = new IntegrationTestingUtility();<a name="line.45"></a>
-<span class="sourceLineNo">046</span>      ((IntegrationTestingUtility)TEST_UTIL).initializeCluster(NUM_SLAVES_BASE);<a name="line.46"></a>
-<span class="sourceLineNo">047</span>      //set shared configs<a name="line.47"></a>
-<span class="sourceLineNo">048</span>      admin = TEST_UTIL.getAdmin();<a name="line.48"></a>
-<span class="sourceLineNo">049</span>      cluster = TEST_UTIL.getHBaseClusterInterface();<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      rsGroupAdmin = new VerifyingRSGroupAdminClient(new RSGroupAdminClient(TEST_UTIL.getConnection()),<a name="line.50"></a>
-<span class="sourceLineNo">051</span>          TEST_UTIL.getConfiguration());<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      LOG.info("Done initializing cluster");<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      initialized = true;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      //cluster may not be clean<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      //cleanup when initializing<a name="line.55"></a>
-<span class="sourceLineNo">056</span>      afterMethod();<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    }<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  }<a name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span>  @After<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public void afterMethod() throws Exception {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    LOG.info("Cleaning up previous test run");<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    //cleanup previous artifacts<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    deleteTableIfNecessary();<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    deleteNamespaceIfNecessary();<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    deleteGroups();<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    admin.setBalancerRunning(true, true);<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    LOG.info("Restoring the cluster");<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    ((IntegrationTestingUtility)TEST_UTIL).restoreCluster();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    LOG.info("Done restoring the cluster");<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      @Override<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      public boolean evaluate() throws Exception {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>        LOG.info("Waiting for cleanup to finish "+ rsGroupAdmin.listRSGroups());<a name="line.76"></a>
-<span class="sourceLineNo">077</span>        //Might be greater since moving servers back to default<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        //is after starting a server<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        return rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers().size()<a name="line.79"></a>
-<span class="sourceLineNo">080</span>            &gt;= NUM_SLAVES_BASE;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      }<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    });<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      @Override<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      public boolean evaluate() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>        LOG.info("Waiting for regionservers to be registered "+ rsGroupAdmin.listRSGroups());<a name="line.87"></a>
-<span class="sourceLineNo">088</span>        //Might be greater since moving servers back to default<a name="line.88"></a>
-<span class="sourceLineNo">089</span>        //is after starting a server<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        return rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers().size()<a name="line.90"></a>
-<span class="sourceLineNo">091</span>            == getNumServers();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      }<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    });<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>    LOG.info("Done cleaning up previous test run");<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  }<a name="line.96"></a>
-<span class="sourceLineNo">097</span>}<a name="line.97"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.HConstants;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.IntegrationTestingUtility;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.Waiter;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.testclassification.IntegrationTests;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.After;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.Before;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.junit.experimental.categories.Category;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>/**<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * Runs all of the units tests defined in TestGroupBase as an integration test.<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * Requires TestRSGroupBase.NUM_SLAVE_BASE servers to run.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>@Category(IntegrationTests.class)<a name="line.37"></a>
+<span class="sourceLineNo">038</span>public class IntegrationTestRSGroup extends TestRSGroupsBase {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  private final static Log LOG = LogFactory.getLog(IntegrationTestRSGroup.class);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  private static boolean initialized = false;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>  @Before<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  public void beforeMethod() throws Exception {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    if(!initialized) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>      LOG.info("Setting up IntegrationTestRSGroup");<a name="line.45"></a>
+<span class="sourceLineNo">046</span>      LOG.info("Initializing cluster with " + NUM_SLAVES_BASE + " servers");<a name="line.46"></a>
+<span class="sourceLineNo">047</span>      TEST_UTIL = new IntegrationTestingUtility();<a name="line.47"></a>
+<span class="sourceLineNo">048</span>      TEST_UTIL.getConfiguration().set(HConstants.HBASE_MASTER_LOADBALANCER_CLASS,<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        RSGroupBasedLoadBalancer.class.getName());<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      TEST_UTIL.getConfiguration().set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        RSGroupAdminEndpoint.class.getName());<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      ((IntegrationTestingUtility)TEST_UTIL).initializeCluster(NUM_SLAVES_BASE);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      //set shared configs<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      admin = TEST_UTIL.getAdmin();<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      cluster = TEST_UTIL.getHBaseClusterInterface();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      rsGroupAdmin = new VerifyingRSGroupAdminClient(new RSGroupAdminClient(TEST_UTIL.getConnection()),<a name="line.56"></a>
+<span class="sourceLineNo">057</span>          TEST_UTIL.getConfiguration());<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      LOG.info("Done initializing cluster");<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      initialized = true;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      //cluster may not be clean<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      //cleanup when initializing<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      afterMethod();<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    }<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>  @After<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public void afterMethod() throws Exception {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    LOG.info("Cleaning up previous test run");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    //cleanup previous artifacts<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    deleteTableIfNecessary();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    deleteNamespaceIfNecessary();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    deleteGroups();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    admin.setBalancerRunning(true, true);<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>    LOG.info("Restoring the cluster");<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    ((IntegrationTestingUtility)TEST_UTIL).restoreCluster();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    LOG.info("Done restoring the cluster");<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      public boolean evaluate() throws Exception {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        LOG.info("Waiting for cleanup to finish "+ rsGroupAdmin.listRSGroups());<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        //Might be greater since moving servers back to default<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        //is after starting a server<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        return rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers().size()<a name="line.85"></a>
+<span class="sourceLineNo">086</span>            &gt;= NUM_SLAVES_BASE;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      }<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    });<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      @Override<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      public boolean evaluate() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        LOG.info("Waiting for regionservers to be registered "+ rsGroupAdmin.listRSGroups());<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        //Might be greater since moving servers back to default<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        //is after starting a server<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        return rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers().size()<a name="line.96"></a>
+<span class="sourceLineNo">097</span>            == getNumServers();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    });<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>    LOG.info("Done cleaning up previous test run");<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>}<a name="line.103"></a>
 
 
 


[17/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index ddde653..5e1c42f 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -289,7 +289,7 @@
 <td>3511</td>
 <td>0</td>
 <td>0</td>
-<td>21935</td></tr></table></div>
+<td>21934</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -6167,7 +6167,7 @@
 <td><a href="#org.apache.hadoop.hbase.master.HMaster.java">org/apache/hadoop/hbase/master/HMaster.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>181</td></tr>
+<td>180</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.HMasterCommandLine.java">org/apache/hadoop/hbase/master/HMasterCommandLine.java</a></td>
 <td>0</td>
@@ -13651,12 +13651,12 @@
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a>
 <ul>
 <li>offset: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>862</td>
+<td>843</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>4410</td>
+<td>4429</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>misc</td>
@@ -13674,7 +13674,7 @@
 <ul>
 <li>max: <tt>&quot;100&quot;</tt></li>
 <li>ignorePattern: <tt>&quot;^package.*|^import.*|a href|href|http://|https://|ftp://|org.apache.thrift.|com.google.protobuf.|hbase.protobuf.generated&quot;</tt></li></ul></td>
-<td>1959</td>
+<td>1958</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
@@ -18636,7 +18636,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 26 has parse error. Missed HTML close tag 'arg'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>43</td></tr></table></div>
 <div class="section">
@@ -19311,7 +19311,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 4 has parse error. Missed HTML close tag 'pre'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>59</td></tr></table></div>
 <div class="section">
@@ -21546,7 +21546,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 19 has parse error. Details: no viable alternative at input '&lt;code&gt;\n   *   List&lt;Future&lt;' while parsing HTML_TAG</td>
 <td>165</td></tr></table></div>
 <div class="section">
@@ -25863,7 +25863,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 2 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>83</td></tr>
 <tr class="b">
@@ -27417,7 +27417,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 43 has parse error. Missed HTML close tag 'TableName'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>179</td></tr>
 <tr class="a">
@@ -33018,7 +33018,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 64 has parse error. Missed HTML close tag 'code'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>2103</td></tr>
 <tr class="a">
@@ -46056,7 +46056,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 37 has parse error. Details: no viable alternative at input '&lt;ColumnFamily,' while parsing HTML_ELEMENT</td>
 <td>29</td></tr></table></div>
 <div class="section">
@@ -67746,7 +67746,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 24 has parse error. Details: no viable alternative at input '&lt;key,' while parsing HTML_ELEMENT</td>
 <td>25</td></tr>
 <tr class="b">
@@ -71955,7 +71955,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 2 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>585</td></tr>
 <tr class="b">
@@ -80818,86 +80818,74 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
-<td>Line is longer than 100 characters (found 116).</td>
-<td>549</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
 <td>Line is longer than 100 characters (found 114).</td>
-<td>595</td></tr>
-<tr class="b">
+<td>598</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 131).</td>
-<td>608</td></tr>
-<tr class="a">
+<td>611</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>720</td></tr>
-<tr class="b">
+<td>723</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 204 lines (max allowed is 150).</td>
-<td>751</td></tr>
-<tr class="a">
+<td>754</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>839</td></tr>
-<tr class="b">
+<td>842</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>851</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1105</td></tr>
+<td>854</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1107</td></tr>
+<td>1108</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1109</td></tr>
+<td>1110</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1111</td></tr>
+<td>1112</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1113</td></tr>
+<td>1114</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1121</td></tr>
+<td>1116</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1122</td></tr>
+<td>1124</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
@@ -80909,127 +80897,127 @@
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1126</td></tr>
+<td>1128</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>blocks</td>
-<td>NeedBraces</td>
-<td>'if' construct must use '{}'s.</td>
-<td>1183</td></tr>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
+<td>1129</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1184</td></tr>
+<td>1186</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1185</td></tr>
+<td>1187</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1186</td></tr>
+<td>1188</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1187</td></tr>
+<td>1189</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1189</td></tr>
+<td>1190</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1190</td></tr>
+<td>1192</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1191</td></tr>
+<td>1193</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1195</td></tr>
+<td>1194</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1196</td></tr>
+<td>1198</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1197</td></tr>
+<td>1199</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1346</td></tr>
+<td>1200</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1368</td></tr>
+<td>1349</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1385</td></tr>
+<td>1371</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1420</td></tr>
+<td>1388</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>whitespace</td>
-<td>MethodParamPad</td>
-<td>'(' is preceded with whitespace.</td>
-<td>1563</td></tr>
+<td>blocks</td>
+<td>NeedBraces</td>
+<td>'if' construct must use '{}'s.</td>
+<td>1423</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
-<td>1567</td></tr>
+<td>1566</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1579</td></tr>
+<td>whitespace</td>
+<td>MethodParamPad</td>
+<td>'(' is preceded with whitespace.</td>
+<td>1570</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1581</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1582</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1583</td></tr>
+<td>1584</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
@@ -81046,50 +81034,50 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1590</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>1592</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1592</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1593</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1594</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1595</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1595</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>1597</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>1596</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1598</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1606</td></tr>
+<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
+<td>1599</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1608</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1609</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1609</td></tr>
+<td>1611</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
@@ -81100,164 +81088,164 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1613</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>1615</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1615</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1616</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1617</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1618</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1618</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>1620</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>1619</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1621</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
+<td>1622</td></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 116).</td>
-<td>1638</td></tr>
-<tr class="a">
+<td>1641</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
-<td>1640</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1732</td></tr>
+<td>1643</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1734</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1735</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1736</td></tr>
+<td>1737</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1740</td></tr>
+<td>1739</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1741</td></tr>
+<td>1743</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1743</td></tr>
+<td>1744</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1745</td></tr>
+<td>1746</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1746</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>1748</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1748</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1749</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1750</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1751</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1751</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>1753</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>1752</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>1754</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
+<td>1755</td></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>1782</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>blocks</td>
-<td>NeedBraces</td>
-<td>'if' construct must use '{}'s.</td>
-<td>2047</td></tr>
+<td>1785</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2055</td></tr>
+<td>2050</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2062</td></tr>
+<td>2058</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2070</td></tr>
+<td>2065</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2093</td></tr>
+<td>blocks</td>
+<td>NeedBraces</td>
+<td>'if' construct must use '{}'s.</td>
+<td>2073</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2095</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2096</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2097</td></tr>
+<td>2098</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
@@ -81269,581 +81257,587 @@
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2101</td></tr>
+<td>2103</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2103</td></tr>
+<td>2104</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2105</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
 <td>2106</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2108</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2110</td></tr>
+<td>2108</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2111</td></tr>
+<td>2109</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2112</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2111</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2125</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2113</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2127</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2114</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2129</td></tr>
+<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
+<td>2115</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2130</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2128</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2131</td></tr>
+<td>2130</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2133</td></tr>
+<td>2132</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2135</td></tr>
+<td>2133</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2136</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2134</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2138</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2136</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2140</td></tr>
+<td>2138</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2141</td></tr>
+<td>2139</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2142</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2141</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2223</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2143</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2225</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2144</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2231</td></tr>
+<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
+<td>2145</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2232</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2226</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if' have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2233</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2228</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if' child have incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
 <td>2234</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if' have incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
+<td>'if' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
 <td>2235</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if' child have incorrect indentation level 14, expected level should be one of the following: 16, 18.</td>
+<td>'if' have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
 <td>2236</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if' have incorrect indentation level 14, expected level should be one of the following: 16, 18.</td>
+<td>'if' child have incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
 <td>2237</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if' child have incorrect indentation level 16, expected level should be one of the following: 18, 20.</td>
+<td>'if' have incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
 <td>2238</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if rcurly' have incorrect indentation level 14, expected level should be one of the following: 16, 18.</td>
-<td>2240</td></tr>
+<td>'if' child have incorrect indentation level 14, expected level should be one of the following: 16, 18.</td>
+<td>2239</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if rcurly' have incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
-<td>2241</td></tr>
+<td>'if' have incorrect indentation level 14, expected level should be one of the following: 16, 18.</td>
+<td>2240</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if rcurly' have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2242</td></tr>
+<td>'if' child have incorrect indentation level 16, expected level should be one of the following: 18, 20.</td>
+<td>2241</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if' child have incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
+<td>'if rcurly' have incorrect indentation level 14, expected level should be one of the following: 16, 18.</td>
 <td>2243</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if rcurly' have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
+<td>'if rcurly' have incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
 <td>2244</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>'if rcurly' have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
 <td>2245</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2247</td></tr>
+<td>'if' child have incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
+<td>2246</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2254</td></tr>
+<td>'if rcurly' have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
+<td>2247</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2255</td></tr>
+<td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2248</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2257</td></tr>
+<td>2250</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2259</td></tr>
+<td>2257</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2260</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2258</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2262</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2260</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2264</td></tr>
+<td>2262</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2265</td></tr>
+<td>2263</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2266</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2265</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2276</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2267</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2278</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2268</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2280</td></tr>
+<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
+<td>2269</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2287</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2279</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2288</td></tr>
+<td>2281</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2290</td></tr>
+<td>2283</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2292</td></tr>
+<td>2290</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2293</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2291</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2295</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2293</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2297</td></tr>
+<td>2295</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2298</td></tr>
+<td>2296</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2299</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2298</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2346</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2300</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2348</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2301</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2350</td></tr>
+<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
+<td>2302</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2353</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2349</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2354</td></tr>
+<td>2351</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2356</td></tr>
+<td>2353</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2358</td></tr>
+<td>2356</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2359</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2357</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2361</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2359</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2363</td></tr>
+<td>2361</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2364</td></tr>
+<td>2362</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2365</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2364</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2379</td></tr>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2366</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2383</td></tr>
+<td>2367</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2385</td></tr>
+<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
+<td>2368</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2387</td></tr>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2382</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2386</td></tr>
+<tr class="b">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
 <td>2388</td></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
+<td>2390</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2389</td></tr>
+<td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
+<td>2391</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
+<td>2392</td></tr>
+<tr class="b">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>MissingSwitchDefault</td>
 <td>switch without &quot;default&quot; clause.</td>
-<td>2430</td></tr>
-<tr class="b">
+<td>2433</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
-<td>2455</td></tr>
-<tr class="a">
+<td>2458</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2688</td></tr>
-<tr class="b">
+<td>2691</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2689</td></tr>
-<tr class="a">
+<td>2692</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>2813</td></tr>
-<tr class="b">
+<td>2816</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2972</td></tr>
-<tr class="a">
+<td>2975</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2974</td></tr>
-<tr class="b">
+<td>2977</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 109).</td>
-<td>3044</td></tr>
-<tr class="a">
+<td>3047</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
-<td>3095</td></tr>
-<tr class="b">
+<td>3098</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>3102</td></tr>
-<tr class="a">
+<td>3105</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>3136</td></tr>
-<tr class="b">
+<td>3139</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 111).</td>
-<td>3232</td></tr>
-<tr class="a">
+<td>3235</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>3401</td></tr>
-<tr class="b">
+<td>3404</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
-<td>3418</td></tr>
-<tr class="a">
+<td>3421</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>3451</td></tr></table></div>
+<td>3454</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.HMasterCommandLine.java">org/apache/hadoop/hbase/master/HMasterCommandLine.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.client.Admin' import.</td>
 <td>38</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>76</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 14, expected level should be 12.</td>
 <td>172</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 14, expected level should be 12.</td>
 <td>173</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -81852,103 +81846,103 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.LoadBalancer.java">org/apache/hadoop/hbase/master/LoadBalancer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'edu.umd.cs.findbugs.annotations.Nullable' import.</td>
 <td>35</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>72</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>78</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>84</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>90</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>91</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>99</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>107</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>108</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>118</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>119</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>131</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>140</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>146</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>147</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -81957,19 +81951,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterAnnotationReadingPriorityFunction.java">org/apache/hadoop/hbase/master/MasterAnnotationReadingPriorityFunction.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.HConstants' import.</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -81978,109 +81972,109 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterCoprocessorHost.java">org/apache/hadoop/hbase/master/MasterCoprocessorHost.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.protobuf.Service' import.</td>
 <td>25</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>134</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>732</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>750</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>769</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>785</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>786</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>788</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>805</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>819</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>834</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>851</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>870</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>889</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>907</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 106).</td>
 <td>1604</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -82089,13 +82083,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterDumpServlet.java">org/apache/hadoop/hbase/master/MasterDumpServlet.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -82104,115 +82098,115 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterFileSystem.java">org/apache/hadoop/hbase/master/MasterFileSystem.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be 6.</td>
 <td>140</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be 6.</td>
 <td>141</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be 6.</td>
 <td>142</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be 6.</td>
 <td>143</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 43 should have line break after.</td>
 <td>197</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 31 should have line break after.</td>
 <td>213</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>231</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>232</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>233</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>235</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>236</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td>279</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>332</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>333</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>355</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>365</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch' child have incorrect indentation level 8, expected level should be 6.</td>
 <td>397</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -82221,13 +82215,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterMetaBootstrap.java">org/apache/hadoop/hbase/master/MasterMetaBootstrap.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -82236,19 +82230,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterMobCompactionThread.java">org/apache/hadoop/hbase/master/MasterMobCompactionThread.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.client.ColumnFamilyDescriptor' import.</td>
 <td>36</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -82257,109 +82251,109 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterRpcServices.java">org/apache/hadoop/hbase/master/MasterRpcServices.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController' import.</td>
 <td>87</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>290</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>508</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
 <td>786</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
 <td>788</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
 <td>789</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
 <td>790</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
 <td>791</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
 <td>792</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>926</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>953</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>955</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>994</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>1100</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1349</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>1591</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -82368,271 +82362,271 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterServices.java">org/apache/hadoop/hbase/master/MasterServices.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.HBaseIOException.</td>
 <td>24</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting' import.</td>
 <td>53</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.protobuf.Service' import.</td>
 <td>55</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>149</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>150</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>151</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>161</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>181</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>182</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>183</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>194</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>195</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>196</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>208</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>209</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>210</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>222</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>223</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>224</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>234</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>235</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>236</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>248</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>249</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>250</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>263</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>264</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>265</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>278</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>279</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>280</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>296</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>311</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>340</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>364</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>372</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>379</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>387</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>395</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>402</td></tr>
-<tr

<TRUNCATED>

[12/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/rsgroup/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-tree.html
index 69c71ac..3a0eca5 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-tree.html
@@ -95,6 +95,7 @@
 <li type="circle">org.apache.hadoop.hbase.rsgroup.<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupProtobufUtil.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupProtobufUtil</span></a></li>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Thread</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.rsgroup.<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</span></a> (implements org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.rsgroup.<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfoManagerImpl.RSGroupStartupWorker</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rsgroup.<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfoManagerImpl.ServerEventsListenerThread</span></a> (implements org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a>)</li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/rsgroup/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-use.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-use.html
index f69de56..918e7ec 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-use.html
@@ -124,9 +124,12 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.RSGroupStartupWorker</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.RSGroupStartupWorker</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a>
 <div class="block">Calls <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateDefaultServers-java.util.SortedSet-"><code>RSGroupInfoManagerImpl.updateDefaultServers(SortedSet)</code></a> to update list of known
  servers.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index 363caec..a25b61a 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -136,9 +136,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index 06ce7fd..29f4bfc 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -198,8 +198,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index a74025b..004fc63 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -537,14 +537,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index c6cac89..004e697 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -177,8 +177,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html
index da8bc06..7586854 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.47">ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.49">ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain</a>
 extends org.apache.zookeeper.ZooKeeperMain</pre>
 <div class="block">ZooKeeper 3.4.6 broke being able to pass commands on command line.
  See ZOOKEEPER-1897.  This class is a hack to restore this faclity.</div>
@@ -213,7 +213,7 @@ extends org.apache.zookeeper.ZooKeeperMain</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html#line.48">HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html#line.50">HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
                                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -237,7 +237,7 @@ extends org.apache.zookeeper.ZooKeeperMain</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>runCmdLine</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html#line.59">runCmdLine</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html#line.70">runCmdLine</a>()
          throws org.apache.zookeeper.KeeperException,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html
index 2e93ab8..ba602cc 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.LimitedPrivate(value="Tools")
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.36">ZooKeeperMainServer</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.38">ZooKeeperMainServer</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Tool for running ZookeeperMain from HBase by  reading a ZooKeeper server
  from HBase XML configuration.</div>
@@ -235,7 +235,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SERVER_ARG</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.37">SERVER_ARG</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.39">SERVER_ARG</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.zookeeper.ZooKeeperMainServer.SERVER_ARG">Constant Field Values</a></dd>
@@ -256,7 +256,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ZooKeeperMainServer</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.36">ZooKeeperMainServer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.38">ZooKeeperMainServer</a>()</pre>
 </li>
 </ul>
 </li>
@@ -273,7 +273,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>parse</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.39">parse</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.41">parse</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
 </li>
 </ul>
 <a name="hasServer-java.lang.String:A-">
@@ -282,7 +282,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hasServer</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.69">hasServer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.80">hasServer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>args</code> - </dd>
@@ -297,7 +297,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hasCommandLineArguments</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.77">hasCommandLineArguments</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.88">hasCommandLineArguments</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>args</code> - </dd>
@@ -312,7 +312,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.89">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html#line.100">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Run the tool.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index 2833690..edcd461 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -3727,6 +3727,7 @@
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/FastPathBalancedQueueRpcExecutor.FastPathHandler.html" title="class in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">FastPathBalancedQueueRpcExecutor.FastPathHandler</span></a></li>
 </ul>
 </li>
+<li type="circle">org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</span></a> (implements org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfoManagerImpl.RSGroupStartupWorker</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfoManagerImpl.ServerEventsListenerThread</span></a> (implements org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ShutdownHook.DoNothingThread.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ShutdownHook.DoNothingThread</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index e7c9219..042b2cb 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "e79a007dd9810b33cd508986037e17d45b55a705";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "22b07e91d73dfb846ce3fd1e6e270a794d161c1a";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Fri Nov  3 14:42:14 UTC 2017";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Sat Nov  4 14:42:21 UTC 2017";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "c1c43c44dadf27066333f4a57fa87784";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "2bdba3aeb90f9a446fb4073268c378ef";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


[14/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/master/ServerListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/ServerListener.html b/devapidocs/org/apache/hadoop/hbase/master/ServerListener.html
index af850b9..608bdd7 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/ServerListener.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/ServerListener.html
@@ -101,7 +101,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a>, <a href="../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html" title="class in org.apache.hadoop.hbase.master.procedure">RSProcedureDispatcher</a></dd>
+<dd><a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a>, <a href="../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html" title="class in org.apache.hadoop.hbase.master.procedure">RSProcedureDispatcher</a></dd>
 </dl>
 <hr>
 <br>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
index 2450aaa..a01cdad 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
@@ -197,8 +197,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/master/class-use/ServerListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/class-use/ServerListener.html b/devapidocs/org/apache/hadoop/hbase/master/class-use/ServerListener.html
index 9966f1a..5094ca6 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/class-use/ServerListener.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/class-use/ServerListener.html
@@ -197,6 +197,10 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a></span></code>
 <div class="block">Calls <a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateDefaultServers-java.util.SortedSet-"><code>RSGroupInfoManagerImpl.updateDefaultServers(SortedSet)</code></a> to update list of known
  servers.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index e1a397c..1a571ce 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -324,11 +324,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index 7f8dbfb..fe914c5 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -209,8 +209,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index ce9b878..38e53b4 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -432,19 +432,19 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilder.DataType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilder.DataType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterStatus.Option</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilder.DataType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilder.DataType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 8598438..ab4cd65 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -203,11 +203,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index becb827..de6cee3 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -206,12 +206,12 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 175cbcb..a09d3f5 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -702,19 +702,19 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index 313f199..9264ee0 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,8 +130,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index 870907a..b2572fc 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -202,8 +202,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
index 91776e4..dc2f127 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -110,8 +110,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
index d1d5711..b7f59a7 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
@@ -129,13 +129,21 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#DEFAULT_REASSIGN_WAIT_INTERVAL">DEFAULT_REASSIGN_WAIT_INTERVAL</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#META_FAMILY_BYTES">META_FAMILY_BYTES</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#META_QUALIFIER_BYTES">META_QUALIFIER_BYTES</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#REASSIGN_WAIT_INTERVAL_KEY">REASSIGN_WAIT_INTERVAL_KEY</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#ROW_KEY">ROW_KEY</a></span></code>&nbsp;</td>
@@ -250,13 +258,39 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <!--   -->
 </a>
 <h3>Field Detail</h3>
+<a name="REASSIGN_WAIT_INTERVAL_KEY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REASSIGN_WAIT_INTERVAL_KEY</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.40">REASSIGN_WAIT_INTERVAL_KEY</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager.REASSIGN_WAIT_INTERVAL_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DEFAULT_REASSIGN_WAIT_INTERVAL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_REASSIGN_WAIT_INTERVAL</h4>
+<pre>static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.41">DEFAULT_REASSIGN_WAIT_INTERVAL</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager.DEFAULT_REASSIGN_WAIT_INTERVAL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 <a name="RSGROUP_TABLE_NAME">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>RSGROUP_TABLE_NAME</h4>
-<pre>static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.40">RSGROUP_TABLE_NAME</a></pre>
+<pre>static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.44">RSGROUP_TABLE_NAME</a></pre>
 </li>
 </ul>
 <a name="rsGroupZNode">
@@ -265,7 +299,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>rsGroupZNode</h4>
-<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.42">rsGroupZNode</a></pre>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.46">rsGroupZNode</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager.rsGroupZNode">Constant Field Values</a></dd>
@@ -278,7 +312,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>META_FAMILY_BYTES</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.43">META_FAMILY_BYTES</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.47">META_FAMILY_BYTES</a></pre>
 </li>
 </ul>
 <a name="META_QUALIFIER_BYTES">
@@ -287,7 +321,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>META_QUALIFIER_BYTES</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.44">META_QUALIFIER_BYTES</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.48">META_QUALIFIER_BYTES</a></pre>
 </li>
 </ul>
 <a name="ROW_KEY">
@@ -296,7 +330,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ROW_KEY</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.45">ROW_KEY</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.49">ROW_KEY</a></pre>
 </li>
 </ul>
 </li>
@@ -313,7 +347,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>addRSGroup</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.50">addRSGroup</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;rsGroupInfo)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.54">addRSGroup</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;rsGroupInfo)
          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Add given RSGroupInfo to existing list of group infos.</div>
 <dl>
@@ -328,7 +362,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>removeRSGroup</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.55">removeRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.59">removeRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Remove a region server group.</div>
 <dl>
@@ -343,7 +377,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>moveServers</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.64">moveServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.68">moveServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcGroup,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dstGroup)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -366,7 +400,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupOfServer</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.70">getRSGroupOfServer</a>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;serverHostPort)
+<pre><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.74">getRSGroupOfServer</a>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;serverHostPort)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Gets the group info of server.</div>
 <dl>
@@ -381,7 +415,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroup</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.75">getRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.79">getRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Gets <code>RSGroupInfo</code> for the given group name.</div>
 <dl>
@@ -396,7 +430,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupOfTable</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.80">getRSGroupOfTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.84">getRSGroupOfTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Get the group membership of a table</div>
 <dl>
@@ -411,7 +445,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>moveTables</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.88">moveTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNames,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.92">moveTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNames,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Set the group membership of a set of tables</div>
@@ -430,7 +464,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>listRSGroups</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.93">listRSGroups</a>()
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.97">listRSGroups</a>()
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">List the existing <code>RSGroupInfo</code>s.</div>
 <dl>
@@ -445,7 +479,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>refresh</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.98">refresh</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.102">refresh</a>()
       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Refresh/reload the group information from the persistent store</div>
 <dl>
@@ -460,7 +494,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockList">
 <li class="blockList">
 <h4>isOnline</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.105">isOnline</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.109">isOnline</a>()</pre>
 <div class="block">Whether the manager is able to fully return group metadata</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -474,7 +508,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <ul class="blockListLast">
 <li class="blockList">
 <h4>moveServersAndTables</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.114">moveServersAndTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.118">moveServersAndTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                           <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcGroup,
                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dstGroup)

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
new file mode 100644
index 0000000..fd6903d
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
@@ -0,0 +1,436 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RSGroupInfoManagerImpl.FailedOpenUpdaterThread (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RSGroupInfoManagerImpl.FailedOpenUpdaterThread (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" target="_top">Frames</a></li>
+<li><a href="RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.java.lang.Thread">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.rsgroup</div>
+<h2 title="Class RSGroupInfoManagerImpl.FailedOpenUpdaterThread" class="title">Class RSGroupInfoManagerImpl.FailedOpenUpdaterThread</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">java.lang.Thread</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.rsgroup.RSGroupInfoManagerImpl.FailedOpenUpdaterThread</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl</a></dd>
+</dl>
+<hr>
+<br>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.652">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>
+implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.java.lang.Thread">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.State.html?is-external=true" title="class or interface in java.lang">Thread.State</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#hasChanged">hasChanged</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#waitInterval">waitInterval</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.java.lang.Thread">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#MAX_PRIORITY" title="class or interface in java.lang">MAX_PRIORITY</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#MIN_PRIORITY" title="class or interface in java.lang">MIN_PRIORITY</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#NORM_PRIORITY" title="class or interface in java.lang">NORM_PRIORITY</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#FailedOpenUpdaterThread-org.apache.hadoop.conf.Configuration-">FailedOpenUpdaterThread</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#run--">run</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#serverAdded-org.apache.hadoop.hbase.ServerName-">serverAdded</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<div class="block">The server has joined the cluster.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#serverChanged--">serverChanged</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">serverRemoved</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<div class="block">The server was removed from the cluster.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Thread">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#activeCount--" title="class or interface in java.lang">activeCount</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#checkAccess--" title="class or interface in java.lang">checkAccess</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#countStackFrames--" title="class or interface in java.lang">countStackFrames</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#currentThread--" title="class or interface in java.lang">currentThread</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#destroy--" title="class or interface in java.lang">destroy</a>, <a href="http://docs.oracle.com
 /javase/8/docs/api/java/lang/Thread.html?is-external=true#dumpStack--" title="class or interface in java.lang">dumpStack</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#enumerate-java.lang.Thread:A-" title="class or interface in java.lang">enumerate</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getAllStackTraces--" title="class or interface in java.lang">getAllStackTraces</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getContextClassLoader--" title="class or interface in java.lang">getContextClassLoader</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getDefaultUncaughtExceptionHandler--" title="class or interface in java.lang">getDefaultUncaughtExceptionHandler</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getId--" title="class or interface in java.lan
 g">getId</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getName--" title="class or interface in java.lang">getName</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getPriority--" title="class or interface in java.lang">getPriority</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getState--" title="class or interface in java.lang">getState</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getThreadGroup--" title="class or interface in java.lang">getThreadGroup</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getUncaughtExceptionHandler--" title="class or interface in java.lang">getUncaughtExceptionHa
 ndler</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#holdsLock-java.lang.Object-" title="class or interface in java.lang">holdsLock</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#interrupt--" title="class or interface in java.lang">interrupt</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#interrupted--" title="class or interface in java.lang">interrupted</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#isAlive--" title="class or interface in java.lang">isAlive</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#isDaemon--" title="class or interface in java.lang">isDaemon</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#isInterrupted--" title="class or interface in java.lang">isInterrupted</a>, <a href="http://docs.o
 racle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#join--" title="class or interface in java.lang">join</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#join-long-" title="class or interface in java.lang">join</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#join-long-int-" title="class or interface in java.lang">join</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#resume--" title="class or interface in java.lang">resume</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setContextClassLoader-java.lang.ClassLoader-" title="class or interface in java.lang">setContextClassLoader</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setDaemon-boolean-" title="class or interface in java.lang">setDaemon</a>, <a href="http://docs.oracle.com/javase/8/docs/api
 /java/lang/Thread.html?is-external=true#setDefaultUncaughtExceptionHandler-java.lang.Thread.UncaughtExceptionHandler-" title="class or interface in java.lang">setDefaultUncaughtExceptionHandler</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setName-java.lang.String-" title="class or interface in java.lang">setName</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setPriority-int-" title="class or interface in java.lang">setPriority</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setUncaughtExceptionHandler-java.lang.Thread.UncaughtExceptionHandler-" title="class or interface in java.lang">setUncaughtExceptionHandler</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#sleep-long-" title="class or interface in java.lang">sleep</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-ext
 ernal=true#sleep-long-int-" title="class or interface in java.lang">sleep</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#start--" title="class or interface in java.lang">start</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#stop--" title="class or interface in java.lang">stop</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#stop-java.lang.Throwable-" title="class or interface in java.lang">stop</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#suspend--" title="class or interface in java.lang">suspend</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#yield--" title="class or interface in java.lang">yield</a><
 /code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/j
 ava/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.master.ServerListener">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#waiting--">waiting</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="waitInterval">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitInterval</h4>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.653">waitInterval</a></pre>
+</li>
+</ul>
+<a name="hasChanged">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hasChanged</h4>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.654">hasChanged</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FailedOpenUpdaterThread-org.apache.hadoop.conf.Configuration-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FailedOpenUpdaterThread</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.656">FailedOpenUpdaterThread</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="serverAdded-org.apache.hadoop.hbase.ServerName-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serverAdded</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.663">serverAdded</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverAdded-org.apache.hadoop.hbase.ServerName-">ServerListener</a></code></span></div>
+<div class="block">The server has joined the cluster.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverAdded-org.apache.hadoop.hbase.ServerName-">serverAdded</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverName</code> - The remote servers name.</dd>
+</dl>
+</li>
+</ul>
+<a name="serverRemoved-org.apache.hadoop.hbase.ServerName-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serverRemoved</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.668">serverRemoved</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">ServerListener</a></code></span></div>
+<div class="block">The server was removed from the cluster.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">serverRemoved</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverName</code> - The remote servers name.</dd>
+</dl>
+</li>
+</ul>
+<a name="run--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>run</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.672">run</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="serverChanged--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serverChanged</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.705">serverChanged</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" target="_top">Frames</a></li>
+<li><a href="RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.java.lang.Thread">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>


[16/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 77591bc..fb6071f 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -26,7 +26,7 @@ under the License.
     <copyright>&#169;2007 - 2017 The Apache Software Foundation</copyright>
     <item>
       <title>File: 3511,
-             Errors: 21935,
+             Errors: 21934,
              Warnings: 0,
              Infos: 0
       </title>
@@ -39493,7 +39493,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  181
+                  180
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index a10673e..567d339 100644
--- a/coc.html
+++ b/coc.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -380,7 +380,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index 1106047..30dc896 100644
--- a/cygwin.html
+++ b/cygwin.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Installing Apache HBase (TM) on Windows using Cygwin</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -679,7 +679,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 65fc56a..57156e3 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -445,7 +445,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index d00d91a..db27464 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -933,7 +933,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index b20dd6c..9f40aee 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -318,7 +318,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index e5cfc02..5b004d4 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -954,7 +954,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 08eb2b7..3b07aed 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3705,21 +3705,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Fri Nov  3 14:42:14 UTC 2017"</code></td>
+<td class="colLast"><code>"Sat Nov  4 14:42:21 UTC 2017"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"e79a007dd9810b33cd508986037e17d45b55a705"</code></td>
+<td class="colLast"><code>"22b07e91d73dfb846ce3fd1e6e270a794d161c1a"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"c1c43c44dadf27066333f4a57fa87784"</code></td>
+<td class="colLast"><code>"2bdba3aeb90f9a446fb4073268c378ef"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -23969,6 +23969,20 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager.DEFAULT_REASSIGN_WAIT_INTERVAL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
+<td><code><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#DEFAULT_REASSIGN_WAIT_INTERVAL">DEFAULT_REASSIGN_WAIT_INTERVAL</a></code></td>
+<td class="colLast"><code>30000L</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager.REASSIGN_WAIT_INTERVAL_KEY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#REASSIGN_WAIT_INTERVAL_KEY">REASSIGN_WAIT_INTERVAL_KEY</a></code></td>
+<td class="colLast"><code>"hbase.rsgroup.reassign.wait"</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager.rsGroupZNode">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 62e9574..72821b5 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -22800,6 +22800,8 @@
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 &nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#DEFAULT_REASSIGN_WAIT_INTERVAL">DEFAULT_REASSIGN_WAIT_INTERVAL</a></span> - Static variable in interface org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.RegionCountSkewCostFunction.html#DEFAULT_REGION_COUNT_SKEW_COST">DEFAULT_REGION_COUNT_SKEW_COST</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.RegionCountSkewCostFunction.html" title="class in org.apache.hadoop.hbase.master.balancer">StochasticLoadBalancer.RegionCountSkewCostFunction</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/RegionGroupingProvider.html#DEFAULT_REGION_GROUPING_STRATEGY">DEFAULT_REGION_GROUPING_STRATEGY</a></span> - Static variable in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/RegionGroupingProvider.html" title="class in org.apache.hadoop.hbase.wal">RegionGroupingProvider</a></dt>
@@ -29065,6 +29067,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html#failedOpen">failedOpen</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html" title="class in org.apache.hadoop.hbase.master.procedure">RSProcedureDispatcher.RegionOpenOperation</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#failedOpenUpdaterThread">failedOpenUpdaterThread</a></span> - Variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#FailedOpenUpdaterThread-org.apache.hadoop.conf.Configuration-">FailedOpenUpdaterThread(Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html#FailedProcedure--">FailedProcedure()</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.FailedProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html#FailedProcedure-long-java.lang.String-org.apache.hadoop.hbase.security.User-org.apache.hadoop.hbase.util.NonceKey-java.io.IOException-">FailedProcedure(long, String, User, NonceKey, IOException)</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.FailedProcedure</a></dt>
@@ -52624,6 +52630,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.TsvParser.html#hasCellVisibility--">hasCellVisibility()</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.TsvParser.html" title="class in org.apache.hadoop.hbase.mapreduce">ImportTsv.TsvParser</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#hasChanged">hasChanged</a></span> - Variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/codec/prefixtree/decode/row/RowNodeReader.html#hasChildren--">hasChildren()</a></span> - Method in class org.apache.hadoop.hbase.codec.prefixtree.decode.row.<a href="org/apache/hadoop/hbase/codec/prefixtree/decode/row/RowNodeReader.html" title="class in org.apache.hadoop.hbase.codec.prefixtree.decode.row">RowNodeReader</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
@@ -85628,6 +85636,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AuthResult.html#reason">reason</a></span> - Variable in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AuthResult.html" title="class in org.apache.hadoop.hbase.security.access">AuthResult</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#REASSIGN_WAIT_INTERVAL_KEY">REASSIGN_WAIT_INTERVAL_KEY</a></span> - Static variable in interface org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/HBaseFsck.html#rebuildMeta-boolean-">rebuildMeta(boolean)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/HBaseFsck.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck</a></dt>
 <dd>
 <div class="block">Rebuilds meta from information in hdfs/fs.</div>
@@ -93479,6 +93489,8 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#RSGroupInfoManagerImpl-org.apache.hadoop.hbase.master.MasterServices-">RSGroupInfoManagerImpl(MasterServices)</a></span> - Constructor for class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</span></a> - Class in <a href="org/apache/hadoop/hbase/rsgroup/package-summary.html">org.apache.hadoop.hbase.rsgroup</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfoManagerImpl.RSGroupStartupWorker</span></a> - Class in <a href="org/apache/hadoop/hbase/rsgroup/package-summary.html">org.apache.hadoop.hbase.rsgroup</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfoManagerImpl.ServerEventsListenerThread</span></a> - Class in <a href="org/apache/hadoop/hbase/rsgroup/package-summary.html">org.apache.hadoop.hbase.rsgroup</a></dt>
@@ -93886,6 +93898,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationTableBase.CreateReplicationTableWorker.html#run--">run()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationTableBase.CreateReplicationTableWorker.html" title="class in org.apache.hadoop.hbase.replication">ReplicationTableBase.CreateReplicationTableWorker</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#run--">run()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#run--">run()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.RSGroupStartupWorker</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#run--">run()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a></dt>
@@ -96257,6 +96271,8 @@ service.</div>
 <dd>
 <div class="block">The server has joined the cluster.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#serverAdded-org.apache.hadoop.hbase.ServerName-">serverAdded(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#serverAdded-org.apache.hadoop.hbase.ServerName-">serverAdded(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/master/balancer/ServerAndLoad.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">ServerAndLoad</span></a> - Class in <a href="org/apache/hadoop/hbase/master/balancer/package-summary.html">org.apache.hadoop.hbase.master.balancer</a></dt>
@@ -96274,6 +96290,8 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/ServerCall.html#ServerCall-int-org.apache.hadoop.hbase.shaded.com.google.protobuf.BlockingService-org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hadoop.hbase.shaded.com.google.protobuf.Message-org.apache.hadoop.hbase.CellScanner-T-long-org.apache.htrace.TraceInfo-java.net.InetAddress-long-int-org.apache.hadoop.hbase.io.ByteBufferPool-org.apache.hadoop.hbase.ipc.CellBlockBuilder-org.apache.hadoop.hbase.ipc.RpcServer.CallCleanup-">ServerCall(int, BlockingService, Descriptors.MethodDescriptor, RPCProtos.RequestHeader, Message, CellScanner, T, long, TraceInfo, InetAddress, long, int, ByteBufferPool, CellBlockBuilder, RpcServer.CallCleanup)</a></span> - Constructor for class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/ServerCall.html" title="class in org.apache.hadoop.hbase.ipc">Ser
 verCall</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#serverChanged--">serverChanged()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#serverChanged--">serverChanged()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/example/HttpProxyExample.html#serverChannel">serverChannel</a></span> - Variable in class org.apache.hadoop.hbase.client.example.<a href="org/apache/hadoop/hbase/client/example/HttpProxyExample.html" title="class in org.apache.hadoop.hbase.client.example">HttpProxyExample</a></dt>
@@ -96539,6 +96557,8 @@ service.</div>
 <dd>
 <div class="block">The server was removed from the cluster.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">serverRemoved(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">serverRemoved(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/RegionStates.ServerReportEvent.html#ServerReportEvent-org.apache.hadoop.hbase.ServerName-">ServerReportEvent(ServerName)</a></span> - Constructor for class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/RegionStates.ServerReportEvent.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates.ServerReportEvent</a></dt>
@@ -113432,6 +113452,8 @@ service.</div>
 <div class="block"><span class="deprecationComment">Unused</span></div>
 </div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateFailedAssignments--">updateFailedAssignments()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/NoOpRetryableCallerInterceptor.html#updateFailureInfo-org.apache.hadoop.hbase.client.RetryingCallerInterceptorContext-">updateFailureInfo(RetryingCallerInterceptorContext)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/NoOpRetryableCallerInterceptor.html" title="class in org.apache.hadoop.hbase.client">NoOpRetryableCallerInterceptor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/PreemptiveFastFailInterceptor.html#updateFailureInfo-org.apache.hadoop.hbase.client.FastFailInterceptorContext-">updateFailureInfo(FastFailInterceptorContext)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/PreemptiveFastFailInterceptor.html" title="class in org.apache.hadoop.hbase.client">PreemptiveFastFailInterceptor</a></dt>
@@ -117102,6 +117124,8 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#waitInterval">waitInterval</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#waitInterval">waitInterval</a></span> - Variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#waitMetaInitialized-org.apache.hadoop.hbase.procedure2.Procedure-">waitMetaInitialized(Procedure)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#waitMetaInitialized-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.client.RegionInfo-">waitMetaInitialized(Procedure, RegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index fa4dba6..6dce061 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -168,9 +168,9 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
index 41ef884..c228eb6 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
@@ -5453,8 +5453,16 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupInfoManagerImpl.FailedOpenUpdaterThread.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#serverAdded-org.apache.hadoop.hbase.ServerName-">serverAdded</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupInfoManagerImpl.ServerEventsListenerThread.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">serverRemoved</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupInfoManagerImpl.FailedOpenUpdaterThread.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">serverRemoved</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index cd36d95..f5452d7 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -550,25 +550,25 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">HBaseAdmin.ReplicationState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">HBaseAdmin.ReplicationState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
index 5bdab95..bbf68db 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -104,8 +104,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index 8927e2a..74a55d5 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -181,14 +181,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index 6793d5b..b221947 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -273,12 +273,12 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index d57391b..bbafcf8 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -344,8 +344,8 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index a77e175..c7c6a5e 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -293,8 +293,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 </ul>


[18/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index ff8bbcd..2c0b85a 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -311,7 +311,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 


[10/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
index a2a8d9c..5da0b6a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
@@ -551,2975 +551,2978 @@
 <span class="sourceLineNo">543</span>    try {<a name="line.543"></a>
 <span class="sourceLineNo">544</span>      super.run();<a name="line.544"></a>
 <span class="sourceLineNo">545</span>    } finally {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      // If on way out, then we are no longer active master.<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      this.clusterSchemaService.stopAsync();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      try {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>        this.clusterSchemaService.awaitTerminated(getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      } catch (TimeoutException te) {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      }<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      this.activeMaster = false;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  }<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  // return the actual infoPort, -1 means disable info server.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  private int putUpJettyServer() throws IOException {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      return -1;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    }<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // -1 is for disabling info server, so no redirecting<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>      return -1;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    }<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    if(infoPort == infoServer.getPort()) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      return infoPort;<a name="line.570"></a>
+<span class="sourceLineNo">546</span>      if (this.clusterSchemaService != null) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        // If on way out, then we are no longer active master.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>        this.clusterSchemaService.stopAsync();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        try {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>          this.clusterSchemaService.awaitTerminated(<a name="line.550"></a>
+<span class="sourceLineNo">551</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.551"></a>
+<span class="sourceLineNo">552</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        } catch (TimeoutException te) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>        }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>      }<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      this.activeMaster = false;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>  // return the actual infoPort, -1 means disable info server.<a name="line.561"></a>
+<span class="sourceLineNo">562</span>  private int putUpJettyServer() throws IOException {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      return -1;<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.566"></a>
+<span class="sourceLineNo">567</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    // -1 is for disabling info server, so no redirecting<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      return -1;<a name="line.570"></a>
 <span class="sourceLineNo">571</span>    }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      String msg =<a name="line.574"></a>
-<span class="sourceLineNo">575</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.575"></a>
-<span class="sourceLineNo">576</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.576"></a>
-<span class="sourceLineNo">577</span>              + "hbase.master.info.bindAddress";<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      LOG.error(msg);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      throw new IOException(msg);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    }<a name="line.580"></a>
-<span class="sourceLineNo">581</span><a name="line.581"></a>
-<span class="sourceLineNo">582</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    // a second entire stack here.<a name="line.584"></a>
-<span class="sourceLineNo">585</span>    masterJettyServer = new Server();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    connector.setHost(addr);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    connector.setPort(infoPort);<a name="line.588"></a>
-<span class="sourceLineNo">589</span>    masterJettyServer.addConnector(connector);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.590"></a>
-<span class="sourceLineNo">591</span><a name="line.591"></a>
-<span class="sourceLineNo">592</span>    final String redirectHostname = shouldUseThisHostnameInstead() ? useThisHostnameInstead : null;<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    context.setServer(masterJettyServer);<a name="line.597"></a>
-<span class="sourceLineNo">598</span><a name="line.598"></a>
-<span class="sourceLineNo">599</span>    try {<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      masterJettyServer.start();<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    } catch (Exception e) {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    }<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    return connector.getLocalPort();<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.608"></a>
-<span class="sourceLineNo">609</span>  }<a name="line.609"></a>
-<span class="sourceLineNo">610</span>  /**<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   */<a name="line.612"></a>
-<span class="sourceLineNo">613</span>  @Override<a name="line.613"></a>
-<span class="sourceLineNo">614</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    try {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      super.login(user, host);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    } catch (IOException ie) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      user.login("hbase.master.keytab.file",<a name="line.618"></a>
-<span class="sourceLineNo">619</span>        "hbase.master.kerberos.principal", host);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    }<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>  /**<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   * If configured to put regions on active master,<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   * wait till a backup master becomes active.<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.626"></a>
-<span class="sourceLineNo">627</span>   */<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  @Override<a name="line.628"></a>
-<span class="sourceLineNo">629</span>  protected void waitForMasterActive(){<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      sleeper.sleep();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    }<a name="line.633"></a>
-<span class="sourceLineNo">634</span>  }<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>  @VisibleForTesting<a name="line.636"></a>
-<span class="sourceLineNo">637</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    return (MasterRpcServices)rpcServices;<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
-<span class="sourceLineNo">640</span><a name="line.640"></a>
-<span class="sourceLineNo">641</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>  @Override<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  protected String getProcessName() {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    return MASTER;<a name="line.647"></a>
-<span class="sourceLineNo">648</span>  }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span>  @Override<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  protected boolean canCreateBaseZNode() {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    return true;<a name="line.652"></a>
-<span class="sourceLineNo">653</span>  }<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>  @Override<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  protected boolean canUpdateTableDescriptor() {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    return true;<a name="line.657"></a>
-<span class="sourceLineNo">658</span>  }<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>  @Override<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    return new MasterRpcServices(this);<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  }<a name="line.663"></a>
-<span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>  @Override<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  protected void configureInfoServer() {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    infoServer.setAttribute(MASTER, this);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      super.configureInfoServer();<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    }<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>  @Override<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.675"></a>
-<span class="sourceLineNo">676</span>    return MasterDumpServlet.class;<a name="line.676"></a>
-<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
-<span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>  @Override<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public MetricsMaster getMasterMetrics() {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    return metricsMaster;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>  }<a name="line.682"></a>
-<span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>  /**<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * Initialize all ZK based system trackers.<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   */<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  void initializeZKBasedSystemTrackers() throws IOException,<a name="line.687"></a>
-<span class="sourceLineNo">688</span>      InterruptedException, KeeperException, CoordinatedStateException {<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    this.normalizer.setMasterServices(this);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    this.loadBalancerTracker.start();<a name="line.694"></a>
-<span class="sourceLineNo">695</span><a name="line.695"></a>
-<span class="sourceLineNo">696</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    this.regionNormalizerTracker.start();<a name="line.697"></a>
+<span class="sourceLineNo">572</span>    if(infoPort == infoServer.getPort()) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      return infoPort;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>      String msg =<a name="line.577"></a>
+<span class="sourceLineNo">578</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.578"></a>
+<span class="sourceLineNo">579</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.579"></a>
+<span class="sourceLineNo">580</span>              + "hbase.master.info.bindAddress";<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      LOG.error(msg);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      throw new IOException(msg);<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    }<a name="line.583"></a>
+<span class="sourceLineNo">584</span><a name="line.584"></a>
+<span class="sourceLineNo">585</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    // a second entire stack here.<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    masterJettyServer = new Server();<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    connector.setHost(addr);<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    connector.setPort(infoPort);<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    masterJettyServer.addConnector(connector);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>    final String redirectHostname = shouldUseThisHostnameInstead() ? useThisHostnameInstead : null;<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.599"></a>
+<span class="sourceLineNo">600</span>    context.setServer(masterJettyServer);<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>    try {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      masterJettyServer.start();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    } catch (Exception e) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    }<a name="line.606"></a>
+<span class="sourceLineNo">607</span>    return connector.getLocalPort();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>  }<a name="line.608"></a>
+<span class="sourceLineNo">609</span><a name="line.609"></a>
+<span class="sourceLineNo">610</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.611"></a>
+<span class="sourceLineNo">612</span>  }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>  /**<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   */<a name="line.615"></a>
+<span class="sourceLineNo">616</span>  @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    try {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      super.login(user, host);<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    } catch (IOException ie) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>      user.login("hbase.master.keytab.file",<a name="line.621"></a>
+<span class="sourceLineNo">622</span>        "hbase.master.kerberos.principal", host);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    }<a name="line.623"></a>
+<span class="sourceLineNo">624</span>  }<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>  /**<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   * If configured to put regions on active master,<a name="line.627"></a>
+<span class="sourceLineNo">628</span>   * wait till a backup master becomes active.<a name="line.628"></a>
+<span class="sourceLineNo">629</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.629"></a>
+<span class="sourceLineNo">630</span>   */<a name="line.630"></a>
+<span class="sourceLineNo">631</span>  @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>  protected void waitForMasterActive(){<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      sleeper.sleep();<a name="line.635"></a>
+<span class="sourceLineNo">636</span>    }<a name="line.636"></a>
+<span class="sourceLineNo">637</span>  }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>  @VisibleForTesting<a name="line.639"></a>
+<span class="sourceLineNo">640</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>    return (MasterRpcServices)rpcServices;<a name="line.641"></a>
+<span class="sourceLineNo">642</span>  }<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>  }<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>  @Override<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  protected String getProcessName() {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    return MASTER;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>  protected boolean canCreateBaseZNode() {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>    return true;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>  @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>  protected boolean canUpdateTableDescriptor() {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    return true;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>  @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    return new MasterRpcServices(this);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>  @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>  protected void configureInfoServer() {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.670"></a>
+<span class="sourceLineNo">671</span>    infoServer.setAttribute(MASTER, this);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      super.configureInfoServer();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>  }<a name="line.675"></a>
+<span class="sourceLineNo">676</span><a name="line.676"></a>
+<span class="sourceLineNo">677</span>  @Override<a name="line.677"></a>
+<span class="sourceLineNo">678</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>    return MasterDumpServlet.class;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>  }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>  @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>  public MetricsMaster getMasterMetrics() {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    return metricsMaster;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>  }<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span>  /**<a name="line.687"></a>
+<span class="sourceLineNo">688</span>   * Initialize all ZK based system trackers.<a name="line.688"></a>
+<span class="sourceLineNo">689</span>   */<a name="line.689"></a>
+<span class="sourceLineNo">690</span>  void initializeZKBasedSystemTrackers() throws IOException,<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      InterruptedException, KeeperException, CoordinatedStateException {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>    this.normalizer.setMasterServices(this);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    this.loadBalancerTracker.start();<a name="line.697"></a>
 <span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    this.splitOrMergeTracker.start();<a name="line.700"></a>
+<span class="sourceLineNo">699</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    this.regionNormalizerTracker.start();<a name="line.700"></a>
 <span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>    // Create Assignment Manager<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    this.assignmentManager = new AssignmentManager(this);<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    this.assignmentManager.start();<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>    this.replicationManager = new ReplicationManager(conf, zooKeeper, this);<a name="line.706"></a>
-<span class="sourceLineNo">707</span><a name="line.707"></a>
-<span class="sourceLineNo">708</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    this.regionServerTracker.start();<a name="line.709"></a>
+<span class="sourceLineNo">702</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    this.splitOrMergeTracker.start();<a name="line.703"></a>
+<span class="sourceLineNo">704</span><a name="line.704"></a>
+<span class="sourceLineNo">705</span>    // Create Assignment Manager<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    this.assignmentManager = new AssignmentManager(this);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>    this.assignmentManager.start();<a name="line.707"></a>
+<span class="sourceLineNo">708</span><a name="line.708"></a>
+<span class="sourceLineNo">709</span>    this.replicationManager = new ReplicationManager(conf, zooKeeper, this);<a name="line.709"></a>
 <span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    this.drainingServerTracker.start();<a name="line.712"></a>
+<span class="sourceLineNo">711</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    this.regionServerTracker.start();<a name="line.712"></a>
 <span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    this.maintenanceModeTracker.start();<a name="line.715"></a>
+<span class="sourceLineNo">714</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    this.drainingServerTracker.start();<a name="line.715"></a>
 <span class="sourceLineNo">716</span><a name="line.716"></a>
-<span class="sourceLineNo">717</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    // going ahead with their startup.<a name="line.718"></a>
-<span class="sourceLineNo">719</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    LOG.info("Server active/primary master=" + this.serverName +<a name="line.722"></a>
-<span class="sourceLineNo">723</span>        ", sessionid=0x" +<a name="line.723"></a>
-<span class="sourceLineNo">724</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.724"></a>
-<span class="sourceLineNo">725</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.725"></a>
-<span class="sourceLineNo">726</span><a name="line.726"></a>
-<span class="sourceLineNo">727</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    this.snapshotManager = new SnapshotManager();<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    this.mpmHost.register(this.snapshotManager);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    this.mpmHost.loadProcedures(conf);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>  }<a name="line.734"></a>
-<span class="sourceLineNo">735</span><a name="line.735"></a>
-<span class="sourceLineNo">736</span>  /**<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   *<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   * &lt;ol&gt;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>   * &lt;li&gt;Initialize master components - file system manager, server manager,<a name="line.740"></a>
-<span class="sourceLineNo">741</span>   *     assignment manager, region server tracker, etc&lt;/li&gt;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior,<a name="line.742"></a>
-<span class="sourceLineNo">743</span>   *     executor services, etc&lt;/li&gt;<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   * &lt;li&gt;Set cluster as UP in ZooKeeper&lt;/li&gt;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * &lt;li&gt;Wait for RegionServers to check-in&lt;/li&gt;<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * &lt;li&gt;Split logs and perform data recovery, if necessary&lt;/li&gt;<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * &lt;li&gt;Ensure assignment of meta/namespace regions&lt;li&gt;<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * &lt;li&gt;Handle either fresh cluster start or master failover&lt;/li&gt;<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   * &lt;/ol&gt;<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  private void finishActiveMasterInitialization(MonitoredTask status)<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      throws IOException, InterruptedException, KeeperException, CoordinatedStateException {<a name="line.752"></a>
-<span class="sourceLineNo">753</span><a name="line.753"></a>
-<span class="sourceLineNo">754</span>    activeMaster = true;<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.755"></a>
-<span class="sourceLineNo">756</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    zombieDetector.start();<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    /*<a name="line.759"></a>
-<span class="sourceLineNo">760</span>     * We are active master now... go initialize components we need to run.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>     * Note, there may be dross in zk from previous runs; it'll get addressed<a name="line.761"></a>
-<span class="sourceLineNo">762</span>     * below after we determine if cluster startup or failover.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>     */<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    status.setStatus("Initializing Master file system");<a name="line.765"></a>
-<span class="sourceLineNo">766</span><a name="line.766"></a>
-<span class="sourceLineNo">767</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.768"></a>
-<span class="sourceLineNo">769</span>    // Initialize the chunkCreator<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    initializeMemStoreChunkCreator();<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    this.walManager = new MasterWalManager(this);<a name="line.772"></a>
-<span class="sourceLineNo">773</span><a name="line.773"></a>
-<span class="sourceLineNo">774</span>    // enable table descriptors cache<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    this.tableDescriptors.setCacheOn();<a name="line.775"></a>
+<span class="sourceLineNo">717</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    this.maintenanceModeTracker.start();<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.720"></a>
+<span class="sourceLineNo">721</span>    // going ahead with their startup.<a name="line.721"></a>
+<span class="sourceLineNo">722</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.722"></a>
+<span class="sourceLineNo">723</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.723"></a>
+<span class="sourceLineNo">724</span><a name="line.724"></a>
+<span class="sourceLineNo">725</span>    LOG.info("Server active/primary master=" + this.serverName +<a name="line.725"></a>
+<span class="sourceLineNo">726</span>        ", sessionid=0x" +<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.730"></a>
+<span class="sourceLineNo">731</span>    this.snapshotManager = new SnapshotManager();<a name="line.731"></a>
+<span class="sourceLineNo">732</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.732"></a>
+<span class="sourceLineNo">733</span>    this.mpmHost.register(this.snapshotManager);<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    this.mpmHost.loadProcedures(conf);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>  }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>  /**<a name="line.739"></a>
+<span class="sourceLineNo">740</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   *<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * &lt;ol&gt;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   * &lt;li&gt;Initialize master components - file system manager, server manager,<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   *     assignment manager, region server tracker, etc&lt;/li&gt;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior,<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   *     executor services, etc&lt;/li&gt;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>   * &lt;li&gt;Set cluster as UP in ZooKeeper&lt;/li&gt;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>   * &lt;li&gt;Wait for RegionServers to check-in&lt;/li&gt;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>   * &lt;li&gt;Split logs and perform data recovery, if necessary&lt;/li&gt;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>   * &lt;li&gt;Ensure assignment of meta/namespace regions&lt;li&gt;<a name="line.750"></a>
+<span class="sourceLineNo">751</span>   * &lt;li&gt;Handle either fresh cluster start or master failover&lt;/li&gt;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>   * &lt;/ol&gt;<a name="line.752"></a>
+<span class="sourceLineNo">753</span>   */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>  private void finishActiveMasterInitialization(MonitoredTask status)<a name="line.754"></a>
+<span class="sourceLineNo">755</span>      throws IOException, InterruptedException, KeeperException, CoordinatedStateException {<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>    activeMaster = true;<a name="line.757"></a>
+<span class="sourceLineNo">758</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.758"></a>
+<span class="sourceLineNo">759</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.759"></a>
+<span class="sourceLineNo">760</span>    zombieDetector.start();<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>    /*<a name="line.762"></a>
+<span class="sourceLineNo">763</span>     * We are active master now... go initialize components we need to run.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>     * Note, there may be dross in zk from previous runs; it'll get addressed<a name="line.764"></a>
+<span class="sourceLineNo">765</span>     * below after we determine if cluster startup or failover.<a name="line.765"></a>
+<span class="sourceLineNo">766</span>     */<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>    status.setStatus("Initializing Master file system");<a name="line.768"></a>
+<span class="sourceLineNo">769</span><a name="line.769"></a>
+<span class="sourceLineNo">770</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.770"></a>
+<span class="sourceLineNo">771</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    // Initialize the chunkCreator<a name="line.772"></a>
+<span class="sourceLineNo">773</span>    initializeMemStoreChunkCreator();<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    this.walManager = new MasterWalManager(this);<a name="line.775"></a>
 <span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>    // warm-up HTDs cache on master initialization<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    if (preLoadTableDescriptors) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      status.setStatus("Pre-loading table descriptors");<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      this.tableDescriptors.getAll();<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    }<a name="line.781"></a>
-<span class="sourceLineNo">782</span><a name="line.782"></a>
-<span class="sourceLineNo">783</span>    // publish cluster ID<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    status.setStatus("Publishing Cluster ID in ZooKeeper");<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    this.initLatch.countDown();<a name="line.786"></a>
-<span class="sourceLineNo">787</span><a name="line.787"></a>
-<span class="sourceLineNo">788</span>    this.serverManager = createServerManager(this);<a name="line.788"></a>
-<span class="sourceLineNo">789</span><a name="line.789"></a>
-<span class="sourceLineNo">790</span>    this.tableStateManager = new TableStateManager(this);<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    status.setStatus("Initializing ZK system trackers");<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    initializeZKBasedSystemTrackers();<a name="line.793"></a>
+<span class="sourceLineNo">777</span>    // enable table descriptors cache<a name="line.777"></a>
+<span class="sourceLineNo">778</span>    this.tableDescriptors.setCacheOn();<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>    // warm-up HTDs cache on master initialization<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    if (preLoadTableDescriptors) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>      status.setStatus("Pre-loading table descriptors");<a name="line.782"></a>
+<span class="sourceLineNo">783</span>      this.tableDescriptors.getAll();<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    }<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span>    // publish cluster ID<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    status.setStatus("Publishing Cluster ID in ZooKeeper");<a name="line.787"></a>
+<span class="sourceLineNo">788</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    this.initLatch.countDown();<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>    this.serverManager = createServerManager(this);<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>    this.tableStateManager = new TableStateManager(this);<a name="line.793"></a>
 <span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    // This is for backwards compatibility<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    // See HBASE-11393<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    status.setStatus("Update TableCFs node in ZNode");<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    TableCFsUpdater tableCFsUpdater = new TableCFsUpdater(zooKeeper,<a name="line.798"></a>
-<span class="sourceLineNo">799</span>            conf, this.clusterConnection);<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    tableCFsUpdater.update();<a name="line.800"></a>
-<span class="sourceLineNo">801</span><a name="line.801"></a>
-<span class="sourceLineNo">802</span>    // Add the Observer to delete space quotas on table deletion before starting all CPs by<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    // default with quota support, avoiding if user specifically asks to not load this Observer.<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      updateConfigurationForSpaceQuotaObserver(conf);<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    }<a name="line.806"></a>
-<span class="sourceLineNo">807</span>    // initialize master side coprocessors before we start handling requests<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    status.setStatus("Initializing master coprocessors");<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    this.cpHost = new MasterCoprocessorHost(this, this.conf);<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>    // start up all service threads.<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    status.setStatus("Initializing master service threads");<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    startServiceThreads();<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>    // Wake up this server to check in<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    sleeper.skipSleepCycle();<a name="line.816"></a>
+<span class="sourceLineNo">795</span>    status.setStatus("Initializing ZK system trackers");<a name="line.795"></a>
+<span class="sourceLineNo">796</span>    initializeZKBasedSystemTrackers();<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>    // This is for backwards compatibility<a name="line.798"></a>
+<span class="sourceLineNo">799</span>    // See HBASE-11393<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    status.setStatus("Update TableCFs node in ZNode");<a name="line.800"></a>
+<span class="sourceLineNo">801</span>    TableCFsUpdater tableCFsUpdater = new TableCFsUpdater(zooKeeper,<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            conf, this.clusterConnection);<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    tableCFsUpdater.update();<a name="line.803"></a>
+<span class="sourceLineNo">804</span><a name="line.804"></a>
+<span class="sourceLineNo">805</span>    // Add the Observer to delete space quotas on table deletion before starting all CPs by<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    // default with quota support, avoiding if user specifically asks to not load this Observer.<a name="line.806"></a>
+<span class="sourceLineNo">807</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>      updateConfigurationForSpaceQuotaObserver(conf);<a name="line.808"></a>
+<span class="sourceLineNo">809</span>    }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>    // initialize master side coprocessors before we start handling requests<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    status.setStatus("Initializing master coprocessors");<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    this.cpHost = new MasterCoprocessorHost(this, this.conf);<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>    // start up all service threads.<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    status.setStatus("Initializing master service threads");<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    startServiceThreads();<a name="line.816"></a>
 <span class="sourceLineNo">817</span><a name="line.817"></a>
-<span class="sourceLineNo">818</span>    // Wait for region servers to report in<a name="line.818"></a>
-<span class="sourceLineNo">819</span>    String statusStr = "Wait for region servers to report in";<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    status.setStatus(statusStr);<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    LOG.info(status);<a name="line.821"></a>
-<span class="sourceLineNo">822</span>    waitForRegionServers(status);<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>    if (this.balancer instanceof FavoredNodesPromoter) {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>      favoredNodesManager = new FavoredNodesManager(this);<a name="line.825"></a>
-<span class="sourceLineNo">826</span>    }<a name="line.826"></a>
-<span class="sourceLineNo">827</span>    // Wait for regionserver to finish initialization.<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      waitForServerOnline();<a name="line.829"></a>
-<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
-<span class="sourceLineNo">831</span><a name="line.831"></a>
-<span class="sourceLineNo">832</span>    //initialize load balancer<a name="line.832"></a>
-<span class="sourceLineNo">833</span>    this.balancer.setMasterServices(this);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    this.balancer.initialize();<a name="line.835"></a>
-<span class="sourceLineNo">836</span><a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Check if master is shutting down because of some issue<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // in initializing the regionserver or the balancer.<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    if (isStopped()) return;<a name="line.839"></a>
-<span class="sourceLineNo">840</span><a name="line.840"></a>
-<span class="sourceLineNo">841</span>    // Make sure meta assigned before proceeding.<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    status.setStatus("Recovering  Meta Region");<a name="line.842"></a>
+<span class="sourceLineNo">818</span>    // Wake up this server to check in<a name="line.818"></a>
+<span class="sourceLineNo">819</span>    sleeper.skipSleepCycle();<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>    // Wait for region servers to report in<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    String statusStr = "Wait for region servers to report in";<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    status.setStatus(statusStr);<a name="line.823"></a>
+<span class="sourceLineNo">824</span>    LOG.info(status);<a name="line.824"></a>
+<span class="sourceLineNo">825</span>    waitForRegionServers(status);<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>    if (this.balancer instanceof FavoredNodesPromoter) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>      favoredNodesManager = new FavoredNodesManager(this);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>    }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    // Wait for regionserver to finish initialization.<a name="line.830"></a>
+<span class="sourceLineNo">831</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      waitForServerOnline();<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    }<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>    //initialize load balancer<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    this.balancer.setMasterServices(this);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    this.balancer.initialize();<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>    // Check if master is shutting down because of some issue<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // in initializing the regionserver or the balancer.<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    if (isStopped()) return;<a name="line.842"></a>
 <span class="sourceLineNo">843</span><a name="line.843"></a>
-<span class="sourceLineNo">844</span>    // we recover hbase:meta region servers inside master initialization and<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    // handle other failed servers in SSH in order to start up master node ASAP<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    MasterMetaBootstrap metaBootstrap = createMetaBootstrap(this, status);<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    metaBootstrap.recoverMeta();<a name="line.847"></a>
-<span class="sourceLineNo">848</span><a name="line.848"></a>
-<span class="sourceLineNo">849</span>    // check if master is shutting down because above assignMeta could return even hbase:meta isn't<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    // assigned when master is shutting down<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    if (isStopped()) return;<a name="line.851"></a>
-<span class="sourceLineNo">852</span><a name="line.852"></a>
-<span class="sourceLineNo">853</span>    //Initialize after meta as it scans meta<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    if (favoredNodesManager != null) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      SnapshotOfRegionAssignmentFromMeta snapshotOfRegionAssignment =<a name="line.855"></a>
-<span class="sourceLineNo">856</span>          new SnapshotOfRegionAssignmentFromMeta(getConnection());<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      snapshotOfRegionAssignment.initialize();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      favoredNodesManager.initialize(snapshotOfRegionAssignment);<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    }<a name="line.859"></a>
-<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // migrating existent table state from zk, so splitters<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    // and recovery process treat states properly.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    for (Map.Entry&lt;TableName, TableState.State&gt; entry : ZKDataMigrator<a name="line.863"></a>
-<span class="sourceLineNo">864</span>        .queryForTableStates(getZooKeeper()).entrySet()) {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>      LOG.info("Converting state from zk to new states:" + entry);<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      tableStateManager.setTableState(entry.getKey(), entry.getValue());<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    }<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    ZKUtil.deleteChildrenRecursively(getZooKeeper(), getZooKeeper().znodePaths.tableZNode);<a name="line.868"></a>
-<span class="sourceLineNo">869</span><a name="line.869"></a>
-<span class="sourceLineNo">870</span>    status.setStatus("Submitting log splitting work for previously failed region servers");<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    metaBootstrap.processDeadServers();<a name="line.871"></a>
+<span class="sourceLineNo">844</span>    // Make sure meta assigned before proceeding.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    status.setStatus("Recovering  Meta Region");<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>    // we recover hbase:meta region servers inside master initialization and<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    // handle other failed servers in SSH in order to start up master node ASAP<a name="line.848"></a>
+<span class="sourceLineNo">849</span>    MasterMetaBootstrap metaBootstrap = createMetaBootstrap(this, status);<a name="line.849"></a>
+<span class="sourceLineNo">850</span>    metaBootstrap.recoverMeta();<a name="line.850"></a>
+<span class="sourceLineNo">851</span><a name="line.851"></a>
+<span class="sourceLineNo">852</span>    // check if master is shutting down because above assignMeta could return even hbase:meta isn't<a name="line.852"></a>
+<span class="sourceLineNo">853</span>    // assigned when master is shutting down<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    if (isStopped()) return;<a name="line.854"></a>
+<span class="sourceLineNo">855</span><a name="line.855"></a>
+<span class="sourceLineNo">856</span>    //Initialize after meta as it scans meta<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    if (favoredNodesManager != null) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>      SnapshotOfRegionAssignmentFromMeta snapshotOfRegionAssignment =<a name="line.858"></a>
+<span class="sourceLineNo">859</span>          new SnapshotOfRegionAssignmentFromMeta(getConnection());<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      snapshotOfRegionAssignment.initialize();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>      favoredNodesManager.initialize(snapshotOfRegionAssignment);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>    }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>    // migrating existent table state from zk, so splitters<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    // and recovery process treat states properly.<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    for (Map.Entry&lt;TableName, TableState.State&gt; entry : ZKDataMigrator<a name="line.866"></a>
+<span class="sourceLineNo">867</span>        .queryForTableStates(getZooKeeper()).entrySet()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>      LOG.info("Converting state from zk to new states:" + entry);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      tableStateManager.setTableState(entry.getKey(), entry.getValue());<a name="line.869"></a>
+<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    ZKUtil.deleteChildrenRecursively(getZooKeeper(), getZooKeeper().znodePaths.tableZNode);<a name="line.871"></a>
 <span class="sourceLineNo">872</span><a name="line.872"></a>
-<span class="sourceLineNo">873</span>    // Fix up assignment manager status<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    status.setStatus("Starting assignment manager");<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    this.assignmentManager.joinCluster();<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>    // set cluster status again after user regions are assigned<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.878"></a>
+<span class="sourceLineNo">873</span>    status.setStatus("Submitting log splitting work for previously failed region servers");<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    metaBootstrap.processDeadServers();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>    // Fix up assignment manager status<a name="line.876"></a>
+<span class="sourceLineNo">877</span>    status.setStatus("Starting assignment manager");<a name="line.877"></a>
+<span class="sourceLineNo">878</span>    this.assignmentManager.joinCluster();<a name="line.878"></a>
 <span class="sourceLineNo">879</span><a name="line.879"></a>
-<span class="sourceLineNo">880</span>    // Start balancer and meta catalog janitor after meta and regions have been assigned.<a name="line.880"></a>
-<span class="sourceLineNo">881</span>    status.setStatus("Starting balancer and catalog janitor");<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    this.clusterStatusChore = new ClusterStatusChore(this, balancer);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    getChoreService().scheduleChore(clusterStatusChore);<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    this.balancerChore = new BalancerChore(this);<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    getChoreService().scheduleChore(balancerChore);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    this.normalizerChore = new RegionNormalizerChore(this);<a name="line.886"></a>
-<span class="sourceLineNo">887</span>    getChoreService().scheduleChore(normalizerChore);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>    this.catalogJanitorChore = new CatalogJanitor(this);<a name="line.888"></a>
-<span class="sourceLineNo">889</span>    getChoreService().scheduleChore(catalogJanitorChore);<a name="line.889"></a>
-<span class="sourceLineNo">890</span><a name="line.890"></a>
-<span class="sourceLineNo">891</span>    status.setStatus("Starting cluster schema service");<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    initClusterSchemaService();<a name="line.892"></a>
+<span class="sourceLineNo">880</span>    // set cluster status again after user regions are assigned<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>    // Start balancer and meta catalog janitor after meta and regions have been assigned.<a name="line.883"></a>
+<span class="sourceLineNo">884</span>    status.setStatus("Starting balancer and catalog janitor");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    this.clusterStatusChore = new ClusterStatusChore(this, balancer);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    getChoreService().scheduleChore(clusterStatusChore);<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    this.balancerChore = new BalancerChore(this);<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    getChoreService().scheduleChore(balancerChore);<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    this.normalizerChore = new RegionNormalizerChore(this);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    getChoreService().scheduleChore(normalizerChore);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    this.catalogJanitorChore = new CatalogJanitor(this);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>    getChoreService().scheduleChore(catalogJanitorChore);<a name="line.892"></a>
 <span class="sourceLineNo">893</span><a name="line.893"></a>
-<span class="sourceLineNo">894</span>    if (this.cpHost != null) {<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      try {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>        this.cpHost.preMasterInitialization();<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      } catch (IOException e) {<a name="line.897"></a>
-<span class="sourceLineNo">898</span>        LOG.error("Coprocessor preMasterInitialization() hook failed", e);<a name="line.898"></a>
-<span class="sourceLineNo">899</span>      }<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    }<a name="line.900"></a>
-<span class="sourceLineNo">901</span><a name="line.901"></a>
-<span class="sourceLineNo">902</span>    status.markComplete("Initialization successful");<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    LOG.info(String.format("Master has completed initialization %.3fsec",<a name="line.903"></a>
-<span class="sourceLineNo">904</span>       (System.currentTimeMillis() - masterActiveTime) / 1000.0f));<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    this.masterFinishedInitializationTime = System.currentTimeMillis();<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    configurationManager.registerObserver(this.balancer);<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    configurationManager.registerObserver(this.hfileCleaner);<a name="line.907"></a>
-<span class="sourceLineNo">908</span><a name="line.908"></a>
-<span class="sourceLineNo">909</span>    // Set master as 'initialized'.<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    setInitialized(true);<a name="line.910"></a>
+<span class="sourceLineNo">894</span>    status.setStatus("Starting cluster schema service");<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    initClusterSchemaService();<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>    if (this.cpHost != null) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>      try {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        this.cpHost.preMasterInitialization();<a name="line.899"></a>
+<span class="sourceLineNo">900</span>      } catch (IOException e) {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>        LOG.error("Coprocessor preMasterInitialization() hook failed", e);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>      }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    }<a name="line.903"></a>
+<span class="sourceLineNo">904</span><a name="line.904"></a>
+<span class="sourceLineNo">905</span>    status.markComplete("Initialization successful");<a name="line.905"></a>
+<span class="sourceLineNo">906</span>    LOG.info(String.format("Master has completed initialization %.3fsec",<a name="line.906"></a>
+<span class="sourceLineNo">907</span>       (System.currentTimeMillis() - masterActiveTime) / 1000.0f));<a name="line.907"></a>
+<span class="sourceLineNo">908</span>    this.masterFinishedInitializationTime = System.currentTimeMillis();<a name="line.908"></a>
+<span class="sourceLineNo">909</span>    configurationManager.registerObserver(this.balancer);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>    configurationManager.registerObserver(this.hfileCleaner);<a name="line.910"></a>
 <span class="sourceLineNo">911</span><a name="line.911"></a>
-<span class="sourceLineNo">912</span>    assignmentManager.checkIfShouldMoveSystemRegionAsync();<a name="line.912"></a>
-<span class="sourceLineNo">913</span><a name="line.913"></a>
-<span class="sourceLineNo">914</span>    status.setStatus("Assign meta replicas");<a name="line.914"></a>
-<span class="sourceLineNo">915</span>    metaBootstrap.assignMetaReplicas();<a name="line.915"></a>
+<span class="sourceLineNo">912</span>    // Set master as 'initialized'.<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    setInitialized(true);<a name="line.913"></a>
+<span class="sourceLineNo">914</span><a name="line.914"></a>
+<span class="sourceLineNo">915</span>    assignmentManager.checkIfShouldMoveSystemRegionAsync();<a name="line.915"></a>
 <span class="sourceLineNo">916</span><a name="line.916"></a>
-<span class="sourceLineNo">917</span>    status.setStatus("Starting quota manager");<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    initQuotaManager();<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      // Create the quota snapshot notifier<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      spaceQuotaSnapshotNotifier = createQuotaSnapshotNotifier();<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      spaceQuotaSnapshotNotifier.initialize(getClusterConnection());<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      this.quotaObserverChore = new QuotaObserverChore(this, getMasterMetrics());<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      // Start the chore to read the region FS space reports and act on them<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      getChoreService().scheduleChore(quotaObserverChore);<a name="line.925"></a>
-<span class="sourceLineNo">926</span><a name="line.926"></a>
-<span class="sourceLineNo">927</span>      this.snapshotQuotaChore = new SnapshotQuotaObserverChore(this, getMasterMetrics());<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      // Start the chore to read snapshots and add their usage to table/NS quotas<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      getChoreService().scheduleChore(snapshotQuotaChore);<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    // master initialization. See HBASE-5916.<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.935"></a>
-<span class="sourceLineNo">936</span><a name="line.936"></a>
-<span class="sourceLineNo">937</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    status.setStatus("Checking ZNode ACLs");<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    initMobCleaner();<a name="line.942"></a>
+<span class="sourceLineNo">917</span>    status.setStatus("Assign meta replicas");<a name="line.917"></a>
+<span class="sourceLineNo">918</span>    metaBootstrap.assignMetaReplicas();<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span>    status.setStatus("Starting quota manager");<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    initQuotaManager();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>      // Create the quota snapshot notifier<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      spaceQuotaSnapshotNotifier = createQuotaSnapshotNotifier();<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      spaceQuotaSnapshotNotifier.initialize(getClusterConnection());<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      this.quotaObserverChore = new QuotaObserverChore(this, getMasterMetrics());<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      // Start the chore to read the region FS space reports and act on them<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      getChoreService().scheduleChore(quotaObserverChore);<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>      this.snapshotQuotaChore = new SnapshotQuotaObserverChore(this, getMasterMetrics());<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      // Start the chore to read snapshots and add their usage to table/NS quotas<a name="line.931"></a>
+<span class="sourceLineNo">932</span>      getChoreService().scheduleChore(snapshotQuotaChore);<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
+<span class="sourceLineNo">934</span><a name="line.934"></a>
+<span class="sourceLineNo">935</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    // master initialization. See HBASE-5916.<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    status.setStatus("Checking ZNode ACLs");<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.942"></a>
 <span class="sourceLineNo">943</span><a name="line.943"></a>
-<span class="sourceLineNo">944</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    if (this.cpHost != null) {<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      // don't let cp initialization errors kill the master<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      try {<a name="line.947"></a>
-<span class="sourceLineNo">948</span>        this.cpHost.postStartMaster();<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      } catch (IOException ioe) {<a name="line.949"></a>
-<span class="sourceLineNo">950</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      }<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    }<a name="line.952"></a>
-<span class="sourceLineNo">953</span><a name="line.953"></a>
-<span class="sourceLineNo">954</span>    zombieDetector.interrupt();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>  }<a name="line.955"></a>
+<span class="sourceLineNo">944</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    initMobCleaner();<a name="line.945"></a>
+<span class="sourceLineNo">946</span><a name="line.946"></a>
+<span class="sourceLineNo">947</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.947"></a>
+<span class="sourceLineNo">948</span>    if (this.cpHost != null) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      // don't let cp initialization errors kill the master<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      try {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        this.cpHost.postStartMaster();<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      } catch (IOException ioe) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>    }<a name="line.955"></a>
 <span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>  /**<a name="line.957"></a>
-<span class="sourceLineNo">958</span>   * Adds the {@code MasterSpaceQuotaObserver} to the list of configured Master observers to<a name="line.958"></a>
-<span class="sourceLineNo">959</span>   * automatically remove space quotas for a table when that table is deleted.<a name="line.959"></a>
-<span class="sourceLineNo">960</span>   */<a name="line.960"></a>
-<span class="sourceLineNo">961</span>  @VisibleForTesting<a name="line.961"></a>
-<span class="sourceLineNo">962</span>  public void updateConfigurationForSpaceQuotaObserver(Configuration conf) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    // We're configured to not delete quotas on table deletion, so we don't need to add the obs.<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    if (!conf.getBoolean(<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          MasterSpaceQuotaObserver.REMOVE_QUOTA_ON_TABLE_DELETE,<a name="line.965"></a>
-<span class="sourceLineNo">966</span>          MasterSpaceQuotaObserver.REMOVE_QUOTA_ON_TABLE_DELETE_DEFAULT)) {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      return;<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span>    String[] masterCoprocs = conf.getStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    final int length = null == masterCoprocs ? 0 : masterCoprocs.length;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    String[] updatedCoprocs = new String[length + 1];<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    if (length &gt; 0) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>      System.arraycopy(masterCoprocs, 0, updatedCoprocs, 0, masterCoprocs.length);<a name="line.973"></a>
-<span class="sourceLineNo">974</span>    }<a name="line.974"></a>
-<span class="sourceLineNo">975</span>    updatedCoprocs[length] = MasterSpaceQuotaObserver.class.getName();<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    conf.setStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, updatedCoprocs);<a name="line.976"></a>
-<span class="sourceLineNo">977</span>  }<a name="line.977"></a>
-<span class="sourceLineNo">978</span><a name="line.978"></a>
-<span class="sourceLineNo">979</span>  private void initMobCleaner() {<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    this.expiredMobFileCleanerChore = new ExpiredMobFileCleanerChore(this);<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    getChoreService().scheduleChore(expiredMobFileCleanerChore);<a name="line.981"></a>
-<span class="sourceLineNo">982</span><a name="line.982"></a>
-<span class="sourceLineNo">983</span>    int mobCompactionPeriod = conf.getInt(MobConstants.MOB_COMPACTION_CHORE_PERIOD,<a name="line.983"></a>
-<span class="sourceLineNo">984</span>        MobConstants.DEFAULT_MOB_COMPACTION_CHORE_PERIOD);<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    if (mobCompactionPeriod &gt; 0) {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      this.mobCompactChore = new MobCompactionChore(this, mobCompactionPeriod);<a name="line.986"></a>
-<span class="sourceLineNo">987</span>      getChoreService().scheduleChore(mobCompactChore);<a name="line.987"></a>
-<span class="sourceLineNo">988</span>    } else {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>      LOG<a name="line.989"></a>
-<span class="sourceLineNo">990</span>        .info("The period is " + mobCompactionPeriod + " seconds, MobCompactionChore is disabled");<a name="line.990"></a>
-<span class="sourceLineNo">991</span>    }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>    this.mobCompactThread = new MasterMobCompactionThread(this);<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  }<a name="line.993"></a>
-<span class="sourceLineNo">994</span><a name="line.994"></a>
-<span class="sourceLineNo">995</span>  /**<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   * Create a {@link MasterMetaBootstrap} instance.<a name="line.996"></a>
-<span class="sourceLineNo">997</span>   */<a name="line.997"></a>
-<span class="sourceLineNo">998</span>  MasterMetaBootstrap createMetaBootstrap(final HMaster master, final MonitoredTask status) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    // w/ a mocked up MasterMetaBootstrap.<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    return new MasterMetaBootstrap(master, status);<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  /**<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>   * Create a {@link ServerManager} instance.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   */<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>  ServerManager createServerManager(final MasterServices master) throws IOException {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>    // w/ a mocked up ServerManager.<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    setupClusterConnection();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>    return new ServerManager(master);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>  }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span><a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  private void waitForRegionServers(final MonitoredTask status)<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      throws IOException, InterruptedException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    this.serverManager.waitForRegionServers(status);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    // Check zk for region servers that are up but didn't register<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>    for (ServerName sn: this.regionServerTracker.getOnlineServers()) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>      // The isServerOnline check is opportunistic, correctness is handled inside<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      if (!this.serverManager.isServerOnline(sn) &amp;&amp;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>          serverManager.checkAndRecordNewServer(sn, ServerLoad.EMPTY_SERVERLOAD)) {<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>        LOG.info("Registered server found up in zk but who has not yet reported in: " + sn);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  }<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span><a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  void initClusterSchemaService() throws IOException, InterruptedException {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>   

<TRUNCATED>

[09/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
index a2a8d9c..5da0b6a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
@@ -551,2975 +551,2978 @@
 <span class="sourceLineNo">543</span>    try {<a name="line.543"></a>
 <span class="sourceLineNo">544</span>      super.run();<a name="line.544"></a>
 <span class="sourceLineNo">545</span>    } finally {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      // If on way out, then we are no longer active master.<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      this.clusterSchemaService.stopAsync();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      try {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>        this.clusterSchemaService.awaitTerminated(getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      } catch (TimeoutException te) {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      }<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      this.activeMaster = false;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  }<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  // return the actual infoPort, -1 means disable info server.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  private int putUpJettyServer() throws IOException {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      return -1;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    }<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // -1 is for disabling info server, so no redirecting<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>      return -1;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    }<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    if(infoPort == infoServer.getPort()) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      return infoPort;<a name="line.570"></a>
+<span class="sourceLineNo">546</span>      if (this.clusterSchemaService != null) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        // If on way out, then we are no longer active master.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>        this.clusterSchemaService.stopAsync();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        try {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>          this.clusterSchemaService.awaitTerminated(<a name="line.550"></a>
+<span class="sourceLineNo">551</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.551"></a>
+<span class="sourceLineNo">552</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        } catch (TimeoutException te) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>        }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>      }<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      this.activeMaster = false;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>  // return the actual infoPort, -1 means disable info server.<a name="line.561"></a>
+<span class="sourceLineNo">562</span>  private int putUpJettyServer() throws IOException {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      return -1;<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.566"></a>
+<span class="sourceLineNo">567</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    // -1 is for disabling info server, so no redirecting<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      return -1;<a name="line.570"></a>
 <span class="sourceLineNo">571</span>    }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      String msg =<a name="line.574"></a>
-<span class="sourceLineNo">575</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.575"></a>
-<span class="sourceLineNo">576</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.576"></a>
-<span class="sourceLineNo">577</span>              + "hbase.master.info.bindAddress";<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      LOG.error(msg);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      throw new IOException(msg);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    }<a name="line.580"></a>
-<span class="sourceLineNo">581</span><a name="line.581"></a>
-<span class="sourceLineNo">582</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    // a second entire stack here.<a name="line.584"></a>
-<span class="sourceLineNo">585</span>    masterJettyServer = new Server();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    connector.setHost(addr);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    connector.setPort(infoPort);<a name="line.588"></a>
-<span class="sourceLineNo">589</span>    masterJettyServer.addConnector(connector);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.590"></a>
-<span class="sourceLineNo">591</span><a name="line.591"></a>
-<span class="sourceLineNo">592</span>    final String redirectHostname = shouldUseThisHostnameInstead() ? useThisHostnameInstead : null;<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    context.setServer(masterJettyServer);<a name="line.597"></a>
-<span class="sourceLineNo">598</span><a name="line.598"></a>
-<span class="sourceLineNo">599</span>    try {<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      masterJettyServer.start();<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    } catch (Exception e) {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    }<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    return connector.getLocalPort();<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.608"></a>
-<span class="sourceLineNo">609</span>  }<a name="line.609"></a>
-<span class="sourceLineNo">610</span>  /**<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   */<a name="line.612"></a>
-<span class="sourceLineNo">613</span>  @Override<a name="line.613"></a>
-<span class="sourceLineNo">614</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    try {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      super.login(user, host);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    } catch (IOException ie) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      user.login("hbase.master.keytab.file",<a name="line.618"></a>
-<span class="sourceLineNo">619</span>        "hbase.master.kerberos.principal", host);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    }<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>  /**<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   * If configured to put regions on active master,<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   * wait till a backup master becomes active.<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.626"></a>
-<span class="sourceLineNo">627</span>   */<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  @Override<a name="line.628"></a>
-<span class="sourceLineNo">629</span>  protected void waitForMasterActive(){<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      sleeper.sleep();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    }<a name="line.633"></a>
-<span class="sourceLineNo">634</span>  }<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>  @VisibleForTesting<a name="line.636"></a>
-<span class="sourceLineNo">637</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    return (MasterRpcServices)rpcServices;<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
-<span class="sourceLineNo">640</span><a name="line.640"></a>
-<span class="sourceLineNo">641</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>  @Override<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  protected String getProcessName() {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    return MASTER;<a name="line.647"></a>
-<span class="sourceLineNo">648</span>  }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span>  @Override<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  protected boolean canCreateBaseZNode() {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    return true;<a name="line.652"></a>
-<span class="sourceLineNo">653</span>  }<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>  @Override<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  protected boolean canUpdateTableDescriptor() {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    return true;<a name="line.657"></a>
-<span class="sourceLineNo">658</span>  }<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>  @Override<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    return new MasterRpcServices(this);<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  }<a name="line.663"></a>
-<span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>  @Override<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  protected void configureInfoServer() {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    infoServer.setAttribute(MASTER, this);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      super.configureInfoServer();<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    }<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>  @Override<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.675"></a>
-<span class="sourceLineNo">676</span>    return MasterDumpServlet.class;<a name="line.676"></a>
-<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
-<span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>  @Override<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public MetricsMaster getMasterMetrics() {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    return metricsMaster;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>  }<a name="line.682"></a>
-<span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>  /**<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * Initialize all ZK based system trackers.<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   */<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  void initializeZKBasedSystemTrackers() throws IOException,<a name="line.687"></a>
-<span class="sourceLineNo">688</span>      InterruptedException, KeeperException, CoordinatedStateException {<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    this.normalizer.setMasterServices(this);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    this.loadBalancerTracker.start();<a name="line.694"></a>
-<span class="sourceLineNo">695</span><a name="line.695"></a>
-<span class="sourceLineNo">696</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    this.regionNormalizerTracker.start();<a name="line.697"></a>
+<span class="sourceLineNo">572</span>    if(infoPort == infoServer.getPort()) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      return infoPort;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>      String msg =<a name="line.577"></a>
+<span class="sourceLineNo">578</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.578"></a>
+<span class="sourceLineNo">579</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.579"></a>
+<span class="sourceLineNo">580</span>              + "hbase.master.info.bindAddress";<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      LOG.error(msg);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      throw new IOException(msg);<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    }<a name="line.583"></a>
+<span class="sourceLineNo">584</span><a name="line.584"></a>
+<span class="sourceLineNo">585</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    // a second entire stack here.<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    masterJettyServer = new Server();<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    connector.setHost(addr);<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    connector.setPort(infoPort);<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    masterJettyServer.addConnector(connector);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>    final String redirectHostname = shouldUseThisHostnameInstead() ? useThisHostnameInstead : null;<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.599"></a>
+<span class="sourceLineNo">600</span>    context.setServer(masterJettyServer);<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>    try {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      masterJettyServer.start();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    } catch (Exception e) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    }<a name="line.606"></a>
+<span class="sourceLineNo">607</span>    return connector.getLocalPort();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>  }<a name="line.608"></a>
+<span class="sourceLineNo">609</span><a name="line.609"></a>
+<span class="sourceLineNo">610</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.611"></a>
+<span class="sourceLineNo">612</span>  }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>  /**<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   */<a name="line.615"></a>
+<span class="sourceLineNo">616</span>  @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    try {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      super.login(user, host);<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    } catch (IOException ie) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>      user.login("hbase.master.keytab.file",<a name="line.621"></a>
+<span class="sourceLineNo">622</span>        "hbase.master.kerberos.principal", host);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    }<a name="line.623"></a>
+<span class="sourceLineNo">624</span>  }<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>  /**<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   * If configured to put regions on active master,<a name="line.627"></a>
+<span class="sourceLineNo">628</span>   * wait till a backup master becomes active.<a name="line.628"></a>
+<span class="sourceLineNo">629</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.629"></a>
+<span class="sourceLineNo">630</span>   */<a name="line.630"></a>
+<span class="sourceLineNo">631</span>  @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>  protected void waitForMasterActive(){<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      sleeper.sleep();<a name="line.635"></a>
+<span class="sourceLineNo">636</span>    }<a name="line.636"></a>
+<span class="sourceLineNo">637</span>  }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>  @VisibleForTesting<a name="line.639"></a>
+<span class="sourceLineNo">640</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>    return (MasterRpcServices)rpcServices;<a name="line.641"></a>
+<span class="sourceLineNo">642</span>  }<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>  }<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>  @Override<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  protected String getProcessName() {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    return MASTER;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>  protected boolean canCreateBaseZNode() {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>    return true;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>  @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>  protected boolean canUpdateTableDescriptor() {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    return true;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>  @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    return new MasterRpcServices(this);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>  @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>  protected void configureInfoServer() {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.670"></a>
+<span class="sourceLineNo">671</span>    infoServer.setAttribute(MASTER, this);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      super.configureInfoServer();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>  }<a name="line.675"></a>
+<span class="sourceLineNo">676</span><a name="line.676"></a>
+<span class="sourceLineNo">677</span>  @Override<a name="line.677"></a>
+<span class="sourceLineNo">678</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>    return MasterDumpServlet.class;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>  }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>  @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>  public MetricsMaster getMasterMetrics() {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    return metricsMaster;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>  }<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span>  /**<a name="line.687"></a>
+<span class="sourceLineNo">688</span>   * Initialize all ZK based system trackers.<a name="line.688"></a>
+<span class="sourceLineNo">689</span>   */<a name="line.689"></a>
+<span class="sourceLineNo">690</span>  void initializeZKBasedSystemTrackers() throws IOException,<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      InterruptedException, KeeperException, CoordinatedStateException {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>    this.normalizer.setMasterServices(this);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    this.loadBalancerTracker.start();<a name="line.697"></a>
 <span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    this.splitOrMergeTracker.start();<a name="line.700"></a>
+<span class="sourceLineNo">699</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    this.regionNormalizerTracker.start();<a name="line.700"></a>
 <span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>    // Create Assignment Manager<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    this.assignmentManager = new AssignmentManager(this);<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    this.assignmentManager.start();<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>    this.replicationManager = new ReplicationManager(conf, zooKeeper, this);<a name="line.706"></a>
-<span class="sourceLineNo">707</span><a name="line.707"></a>
-<span class="sourceLineNo">708</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    this.regionServerTracker.start();<a name="line.709"></a>
+<span class="sourceLineNo">702</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    this.splitOrMergeTracker.start();<a name="line.703"></a>
+<span class="sourceLineNo">704</span><a name="line.704"></a>
+<span class="sourceLineNo">705</span>    // Create Assignment Manager<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    this.assignmentManager = new AssignmentManager(this);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>    this.assignmentManager.start();<a name="line.707"></a>
+<span class="sourceLineNo">708</span><a name="line.708"></a>
+<span class="sourceLineNo">709</span>    this.replicationManager = new ReplicationManager(conf, zooKeeper, this);<a name="line.709"></a>
 <span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    this.drainingServerTracker.start();<a name="line.712"></a>
+<span class="sourceLineNo">711</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    this.regionServerTracker.start();<a name="line.712"></a>
 <span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    this.maintenanceModeTracker.start();<a name="line.715"></a>
+<span class="sourceLineNo">714</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    this.drainingServerTracker.start();<a name="line.715"></a>
 <span class="sourceLineNo">716</span><a name="line.716"></a>
-<span class="sourceLineNo">717</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    // going ahead with their startup.<a name="line.718"></a>
-<span class="sourceLineNo">719</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    LOG.info("Server active/primary master=" + this.serverName +<a name="line.722"></a>
-<span class="sourceLineNo">723</span>        ", sessionid=0x" +<a name="line.723"></a>
-<span class="sourceLineNo">724</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.724"></a>
-<span class="sourceLineNo">725</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.725"></a>
-<span class="sourceLineNo">726</span><a name="line.726"></a>
-<span class="sourceLineNo">727</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    this.snapshotManager = new SnapshotManager();<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    this.mpmHost.register(this.snapshotManager);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    this.mpmHost.loadProcedures(conf);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>  }<a name="line.734"></a>
-<span class="sourceLineNo">735</span><a name="line.735"></a>
-<span class="sourceLineNo">736</span>  /**<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   *<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   * &lt;ol&gt;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>   * &lt;li&gt;Initialize master components - file system manager, server manager,<a name="line.740"></a>
-<span class="sourceLineNo">741</span>   *     assignment manager, region server tracker, etc&lt;/li&gt;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior,<a name="line.742"></a>
-<span class="sourceLineNo">743</span>   *     executor services, etc&lt;/li&gt;<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   * &lt;li&gt;Set cluster as UP in ZooKeeper&lt;/li&gt;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * &lt;li&gt;Wait for RegionServers to check-in&lt;/li&gt;<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * &lt;li&gt;Split logs and perform data recovery, if necessary&lt;/li&gt;<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * &lt;li&gt;Ensure assignment of meta/namespace regions&lt;li&gt;<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * &lt;li&gt;Handle either fresh cluster start or master failover&lt;/li&gt;<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   * &lt;/ol&gt;<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  private void finishActiveMasterInitialization(MonitoredTask status)<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      throws IOException, InterruptedException, KeeperException, CoordinatedStateException {<a name="line.752"></a>
-<span class="sourceLineNo">753</span><a name="line.753"></a>
-<span class="sourceLineNo">754</span>    activeMaster = true;<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.755"></a>
-<span class="sourceLineNo">756</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    zombieDetector.start();<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    /*<a name="line.759"></a>
-<span class="sourceLineNo">760</span>     * We are active master now... go initialize components we need to run.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>     * Note, there may be dross in zk from previous runs; it'll get addressed<a name="line.761"></a>
-<span class="sourceLineNo">762</span>     * below after we determine if cluster startup or failover.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>     */<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    status.setStatus("Initializing Master file system");<a name="line.765"></a>
-<span class="sourceLineNo">766</span><a name="line.766"></a>
-<span class="sourceLineNo">767</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.768"></a>
-<span class="sourceLineNo">769</span>    // Initialize the chunkCreator<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    initializeMemStoreChunkCreator();<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    this.walManager = new MasterWalManager(this);<a name="line.772"></a>
-<span class="sourceLineNo">773</span><a name="line.773"></a>
-<span class="sourceLineNo">774</span>    // enable table descriptors cache<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    this.tableDescriptors.setCacheOn();<a name="line.775"></a>
+<span class="sourceLineNo">717</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    this.maintenanceModeTracker.start();<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.720"></a>
+<span class="sourceLineNo">721</span>    // going ahead with their startup.<a name="line.721"></a>
+<span class="sourceLineNo">722</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.722"></a>
+<span class="sourceLineNo">723</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.723"></a>
+<span class="sourceLineNo">724</span><a name="line.724"></a>
+<span class="sourceLineNo">725</span>    LOG.info("Server active/primary master=" + this.serverName +<a name="line.725"></a>
+<span class="sourceLineNo">726</span>        ", sessionid=0x" +<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.730"></a>
+<span class="sourceLineNo">731</span>    this.snapshotManager = new SnapshotManager();<a name="line.731"></a>
+<span class="sourceLineNo">732</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.732"></a>
+<span class="sourceLineNo">733</span>    this.mpmHost.register(this.snapshotManager);<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    this.mpmHost.loadProcedures(conf);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>  }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>  /**<a name="line.739"></a>
+<span class="sourceLineNo">740</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   *<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * &lt;ol&gt;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   * &lt;li&gt;Initialize master components - file system manager, server manager,<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   *     assignment manager, region server tracker, etc&lt;/li&gt;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior,<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   *     executor services, etc&lt;/li&gt;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>   * &lt;li&gt;Set cluster as UP in ZooKeeper&lt;/li&gt;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>   * &lt;li&gt;Wait for RegionServers to check-in&lt;/li&gt;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>   * &lt;li&gt;Split logs and perform data recovery, if necessary&lt;/li&gt;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>   * &lt;li&gt;Ensure assignment of meta/namespace regions&lt;li&gt;<a name="line.750"></a>
+<span class="sourceLineNo">751</span>   * &lt;li&gt;Handle either fresh cluster start or master failover&lt;/li&gt;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>   * &lt;/ol&gt;<a name="line.752"></a>
+<span class="sourceLineNo">753</span>   */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>  private void finishActiveMasterInitialization(MonitoredTask status)<a name="line.754"></a>
+<span class="sourceLineNo">755</span>      throws IOException, InterruptedException, KeeperException, CoordinatedStateException {<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>    activeMaster = true;<a name="line.757"></a>
+<span class="sourceLineNo">758</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.758"></a>
+<span class="sourceLineNo">759</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.759"></a>
+<span class="sourceLineNo">760</span>    zombieDetector.start();<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>    /*<a name="line.762"></a>
+<span class="sourceLineNo">763</span>     * We are active master now... go initialize components we need to run.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>     * Note, there may be dross in zk from previous runs; it'll get addressed<a name="line.764"></a>
+<span class="sourceLineNo">765</span>     * below after we determine if cluster startup or failover.<a name="line.765"></a>
+<span class="sourceLineNo">766</span>     */<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>    status.setStatus("Initializing Master file system");<a name="line.768"></a>
+<span class="sourceLineNo">769</span><a name="line.769"></a>
+<span class="sourceLineNo">770</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.770"></a>
+<span class="sourceLineNo">771</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    // Initialize the chunkCreator<a name="line.772"></a>
+<span class="sourceLineNo">773</span>    initializeMemStoreChunkCreator();<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    this.walManager = new MasterWalManager(this);<a name="line.775"></a>
 <span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>    // warm-up HTDs cache on master initialization<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    if (preLoadTableDescriptors) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      status.setStatus("Pre-loading table descriptors");<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      this.tableDescriptors.getAll();<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    }<a name="line.781"></a>
-<span class="sourceLineNo">782</span><a name="line.782"></a>
-<span class="sourceLineNo">783</span>    // publish cluster ID<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    status.setStatus("Publishing Cluster ID in ZooKeeper");<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    this.initLatch.countDown();<a name="line.786"></a>
-<span class="sourceLineNo">787</span><a name="line.787"></a>
-<span class="sourceLineNo">788</span>    this.serverManager = createServerManager(this);<a name="line.788"></a>
-<span class="sourceLineNo">789</span><a name="line.789"></a>
-<span class="sourceLineNo">790</span>    this.tableStateManager = new TableStateManager(this);<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    status.setStatus("Initializing ZK system trackers");<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    initializeZKBasedSystemTrackers();<a name="line.793"></a>
+<span class="sourceLineNo">777</span>    // enable table descriptors cache<a name="line.777"></a>
+<span class="sourceLineNo">778</span>    this.tableDescriptors.setCacheOn();<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>    // warm-up HTDs cache on master initialization<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    if (preLoadTableDescriptors) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>      status.setStatus("Pre-loading table descriptors");<a name="line.782"></a>
+<span class="sourceLineNo">783</span>      this.tableDescriptors.getAll();<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    }<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span>    // publish cluster ID<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    status.setStatus("Publishing Cluster ID in ZooKeeper");<a name="line.787"></a>
+<span class="sourceLineNo">788</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    this.initLatch.countDown();<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>    this.serverManager = createServerManager(this);<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>    this.tableStateManager = new TableStateManager(this);<a name="line.793"></a>
 <span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    // This is for backwards compatibility<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    // See HBASE-11393<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    status.setStatus("Update TableCFs node in ZNode");<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    TableCFsUpdater tableCFsUpdater = new TableCFsUpdater(zooKeeper,<a name="line.798"></a>
-<span class="sourceLineNo">799</span>            conf, this.clusterConnection);<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    tableCFsUpdater.update();<a name="line.800"></a>
-<span class="sourceLineNo">801</span><a name="line.801"></a>
-<span class="sourceLineNo">802</span>    // Add the Observer to delete space quotas on table deletion before starting all CPs by<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    // default with quota support, avoiding if user specifically asks to not load this Observer.<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      updateConfigurationForSpaceQuotaObserver(conf);<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    }<a name="line.806"></a>
-<span class="sourceLineNo">807</span>    // initialize master side coprocessors before we start handling requests<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    status.setStatus("Initializing master coprocessors");<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    this.cpHost = new MasterCoprocessorHost(this, this.conf);<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>    // start up all service threads.<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    status.setStatus("Initializing master service threads");<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    startServiceThreads();<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>    // Wake up this server to check in<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    sleeper.skipSleepCycle();<a name="line.816"></a>
+<span class="sourceLineNo">795</span>    status.setStatus("Initializing ZK system trackers");<a name="line.795"></a>
+<span class="sourceLineNo">796</span>    initializeZKBasedSystemTrackers();<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>    // This is for backwards compatibility<a name="line.798"></a>
+<span class="sourceLineNo">799</span>    // See HBASE-11393<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    status.setStatus("Update TableCFs node in ZNode");<a name="line.800"></a>
+<span class="sourceLineNo">801</span>    TableCFsUpdater tableCFsUpdater = new TableCFsUpdater(zooKeeper,<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            conf, this.clusterConnection);<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    tableCFsUpdater.update();<a name="line.803"></a>
+<span class="sourceLineNo">804</span><a name="line.804"></a>
+<span class="sourceLineNo">805</span>    // Add the Observer to delete space quotas on table deletion before starting all CPs by<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    // default with quota support, avoiding if user specifically asks to not load this Observer.<a name="line.806"></a>
+<span class="sourceLineNo">807</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>      updateConfigurationForSpaceQuotaObserver(conf);<a name="line.808"></a>
+<span class="sourceLineNo">809</span>    }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>    // initialize master side coprocessors before we start handling requests<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    status.setStatus("Initializing master coprocessors");<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    this.cpHost = new MasterCoprocessorHost(this, this.conf);<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>    // start up all service threads.<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    status.setStatus("Initializing master service threads");<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    startServiceThreads();<a name="line.816"></a>
 <span class="sourceLineNo">817</span><a name="line.817"></a>
-<span class="sourceLineNo">818</span>    // Wait for region servers to report in<a name="line.818"></a>
-<span class="sourceLineNo">819</span>    String statusStr = "Wait for region servers to report in";<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    status.setStatus(statusStr);<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    LOG.info(status);<a name="line.821"></a>
-<span class="sourceLineNo">822</span>    waitForRegionServers(status);<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>    if (this.balancer instanceof FavoredNodesPromoter) {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>      favoredNodesManager = new FavoredNodesManager(this);<a name="line.825"></a>
-<span class="sourceLineNo">826</span>    }<a name="line.826"></a>
-<span class="sourceLineNo">827</span>    // Wait for regionserver to finish initialization.<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      waitForServerOnline();<a name="line.829"></a>
-<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
-<span class="sourceLineNo">831</span><a name="line.831"></a>
-<span class="sourceLineNo">832</span>    //initialize load balancer<a name="line.832"></a>
-<span class="sourceLineNo">833</span>    this.balancer.setMasterServices(this);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    this.balancer.initialize();<a name="line.835"></a>
-<span class="sourceLineNo">836</span><a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Check if master is shutting down because of some issue<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // in initializing the regionserver or the balancer.<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    if (isStopped()) return;<a name="line.839"></a>
-<span class="sourceLineNo">840</span><a name="line.840"></a>
-<span class="sourceLineNo">841</span>    // Make sure meta assigned before proceeding.<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    status.setStatus("Recovering  Meta Region");<a name="line.842"></a>
+<span class="sourceLineNo">818</span>    // Wake up this server to check in<a name="line.818"></a>
+<span class="sourceLineNo">819</span>    sleeper.skipSleepCycle();<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>    // Wait for region servers to report in<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    String statusStr = "Wait for region servers to report in";<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    status.setStatus(statusStr);<a name="line.823"></a>
+<span class="sourceLineNo">824</span>    LOG.info(status);<a name="line.824"></a>
+<span class="sourceLineNo">825</span>    waitForRegionServers(status);<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>    if (this.balancer instanceof FavoredNodesPromoter) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>      favoredNodesManager = new FavoredNodesManager(this);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>    }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    // Wait for regionserver to finish initialization.<a name="line.830"></a>
+<span class="sourceLineNo">831</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      waitForServerOnline();<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    }<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>    //initialize load balancer<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    this.balancer.setMasterServices(this);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    this.balancer.initialize();<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>    // Check if master is shutting down because of some issue<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // in initializing the regionserver or the balancer.<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    if (isStopped()) return;<a name="line.842"></a>
 <span class="sourceLineNo">843</span><a name="line.843"></a>
-<span class="sourceLineNo">844</span>    // we recover hbase:meta region servers inside master initialization and<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    // handle other failed servers in SSH in order to start up master node ASAP<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    MasterMetaBootstrap metaBootstrap = createMetaBootstrap(this, status);<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    metaBootstrap.recoverMeta();<a name="line.847"></a>
-<span class="sourceLineNo">848</span><a name="line.848"></a>
-<span class="sourceLineNo">849</span>    // check if master is shutting down because above assignMeta could return even hbase:meta isn't<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    // assigned when master is shutting down<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    if (isStopped()) return;<a name="line.851"></a>
-<span class="sourceLineNo">852</span><a name="line.852"></a>
-<span class="sourceLineNo">853</span>    //Initialize after meta as it scans meta<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    if (favoredNodesManager != null) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      SnapshotOfRegionAssignmentFromMeta snapshotOfRegionAssignment =<a name="line.855"></a>
-<span class="sourceLineNo">856</span>          new SnapshotOfRegionAssignmentFromMeta(getConnection());<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      snapshotOfRegionAssignment.initialize();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      favoredNodesManager.initialize(snapshotOfRegionAssignment);<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    }<a name="line.859"></a>
-<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // migrating existent table state from zk, so splitters<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    // and recovery process treat states properly.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    for (Map.Entry&lt;TableName, TableState.State&gt; entry : ZKDataMigrator<a name="line.863"></a>
-<span class="sourceLineNo">864</span>        .queryForTableStates(getZooKeeper()).entrySet()) {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>      LOG.info("Converting state from zk to new states:" + entry);<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      tableStateManager.setTableState(entry.getKey(), entry.getValue());<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    }<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    ZKUtil.deleteChildrenRecursively(getZooKeeper(), getZooKeeper().znodePaths.tableZNode);<a name="line.868"></a>
-<span class="sourceLineNo">869</span><a name="line.869"></a>
-<span class="sourceLineNo">870</span>    status.setStatus("Submitting log splitting work for previously failed region servers");<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    metaBootstrap.processDeadServers();<a name="line.871"></a>
+<span class="sourceLineNo">844</span>    // Make sure meta assigned before proceeding.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    status.setStatus("Recovering  Meta Region");<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>    // we recover hbase:meta region servers inside master initialization and<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    // handle other failed servers in SSH in order to start up master node ASAP<a name="line.848"></a>
+<span class="sourceLineNo">849</span>    MasterMetaBootstrap metaBootstrap = createMetaBootstrap(this, status);<a name="line.849"></a>
+<span class="sourceLineNo">850</span>    metaBootstrap.recoverMeta();<a name="line.850"></a>
+<span class="sourceLineNo">851</span><a name="line.851"></a>
+<span class="sourceLineNo">852</span>    // check if master is shutting down because above assignMeta could return even hbase:meta isn't<a name="line.852"></a>
+<span class="sourceLineNo">853</span>    // assigned when master is shutting down<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    if (isStopped()) return;<a name="line.854"></a>
+<span class="sourceLineNo">855</span><a name="line.855"></a>
+<span class="sourceLineNo">856</span>    //Initialize after meta as it scans meta<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    if (favoredNodesManager != null) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>      SnapshotOfRegionAssignmentFromMeta snapshotOfRegionAssignment =<a name="line.858"></a>
+<span class="sourceLineNo">859</span>          new SnapshotOfRegionAssignmentFromMeta(getConnection());<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      snapshotOfRegionAssignment.initialize();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>      favoredNodesManager.initialize(snapshotOfRegionAssignment);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>    }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>    // migrating existent table state from zk, so splitters<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    // and recovery process treat states properly.<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    for (Map.Entry&lt;TableName, TableState.State&gt; entry : ZKDataMigrator<a name="line.866"></a>
+<span class="sourceLineNo">867</span>        .queryForTableStates(getZooKeeper()).entrySet()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>      LOG.info("Converting state from zk to new states:" + entry);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      tableStateManager.setTableState(entry.getKey(), entry.getValue());<a name="line.869"></a>
+<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    ZKUtil.deleteChildrenRecursively(getZooKeeper(), getZooKeeper().znodePaths.tableZNode);<a name="line.871"></a>
 <span class="sourceLineNo">872</span><a name="line.872"></a>
-<span class="sourceLineNo">873</span>    // Fix up assignment manager status<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    status.setStatus("Starting assignment manager");<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    this.assignmentManager.joinCluster();<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>    // set cluster status again after user regions are assigned<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.878"></a>
+<span class="sourceLineNo">873</span>    status.setStatus("Submitting log splitting work for previously failed region servers");<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    metaBootstrap.processDeadServers();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>    // Fix up assignment manager status<a name="line.876"></a>
+<span class="sourceLineNo">877</span>    status.setStatus("Starting assignment manager");<a name="line.877"></a>
+<span class="sourceLineNo">878</span>    this.assignmentManager.joinCluster();<a name="line.878"></a>
 <span class="sourceLineNo">879</span><a name="line.879"></a>
-<span class="sourceLineNo">880</span>    // Start balancer and meta catalog janitor after meta and regions have been assigned.<a name="line.880"></a>
-<span class="sourceLineNo">881</span>    status.setStatus("Starting balancer and catalog janitor");<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    this.clusterStatusChore = new ClusterStatusChore(this, balancer);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    getChoreService().scheduleChore(clusterStatusChore);<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    this.balancerChore = new BalancerChore(this);<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    getChoreService().scheduleChore(balancerChore);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    this.normalizerChore = new RegionNormalizerChore(this);<a name="line.886"></a>
-<span class="sourceLineNo">887</span>    getChoreService().scheduleChore(normalizerChore);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>    this.catalogJanitorChore = new CatalogJanitor(this);<a name="line.888"></a>
-<span class="sourceLineNo">889</span>    getChoreService().scheduleChore(catalogJanitorChore);<a name="line.889"></a>
-<span class="sourceLineNo">890</span><a name="line.890"></a>
-<span class="sourceLineNo">891</span>    status.setStatus("Starting cluster schema service");<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    initClusterSchemaService();<a name="line.892"></a>
+<span class="sourceLineNo">880</span>    // set cluster status again after user regions are assigned<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>    // Start balancer and meta catalog janitor after meta and regions have been assigned.<a name="line.883"></a>
+<span class="sourceLineNo">884</span>    status.setStatus("Starting balancer and catalog janitor");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    this.clusterStatusChore = new ClusterStatusChore(this, balancer);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    getChoreService().scheduleChore(clusterStatusChore);<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    this.balancerChore = new BalancerChore(this);<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    getChoreService().scheduleChore(balancerChore);<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    this.normalizerChore = new RegionNormalizerChore(this);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    getChoreService().scheduleChore(normalizerChore);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    this.catalogJanitorChore = new CatalogJanitor(this);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>    getChoreService().scheduleChore(catalogJanitorChore);<a name="line.892"></a>
 <span class="sourceLineNo">893</span><a name="line.893"></a>
-<span class="sourceLineNo">894</span>    if (this.cpHost != null) {<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      try {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>        this.cpHost.preMasterInitialization();<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      } catch (IOException e) {<a name="line.897"></a>
-<span class="sourceLineNo">898</span>        LOG.error("Coprocessor preMasterInitialization() hook failed", e);<a name="line.898"></a>
-<span class="sourceLineNo">899</span>      }<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    }<a name="line.900"></a>
-<span class="sourceLineNo">901</span><a name="line.901"></a>
-<span class="sourceLineNo">902</span>    status.markComplete("Initialization successful");<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    LOG.info(String.format("Master has completed initialization %.3fsec",<a name="line.903"></a>
-<span class="sourceLineNo">904</span>       (System.currentTimeMillis() - masterActiveTime) / 1000.0f));<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    this.masterFinishedInitializationTime = System.currentTimeMillis();<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    configurationManager.registerObserver(this.balancer);<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    configurationManager.registerObserver(this.hfileCleaner);<a name="line.907"></a>
-<span class="sourceLineNo">908</span><a name="line.908"></a>
-<span class="sourceLineNo">909</span>    // Set master as 'initialized'.<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    setInitialized(true);<a name="line.910"></a>
+<span class="sourceLineNo">894</span>    status.setStatus("Starting cluster schema service");<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    initClusterSchemaService();<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>    if (this.cpHost != null) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>      try {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        this.cpHost.preMasterInitialization();<a name="line.899"></a>
+<span class="sourceLineNo">900</span>      } catch (IOException e) {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>        LOG.error("Coprocessor preMasterInitialization() hook failed", e);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>      }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    }<a name="line.903"></a>
+<span class="sourceLineNo">904</span><a name="line.904"></a>
+<span class="sourceLineNo">905</span>    status.markComplete("Initialization successful");<a name="line.905"></a>
+<span class="sourceLineNo">906</span>    LOG.info(String.format("Master has completed initialization %.3fsec",<a name="line.906"></a>
+<span class="sourceLineNo">907</span>       (System.currentTimeMillis() - masterActiveTime) / 1000.0f));<a name="line.907"></a>
+<span class="sourceLineNo">908</span>    this.masterFinishedInitializationTime = System.currentTimeMillis();<a name="line.908"></a>
+<span class="sourceLineNo">909</span>    configurationManager.registerObserver(this.balancer);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>    configurationManager.registerObserver(this.hfileCleaner);<a name="line.910"></a>
 <span class="sourceLineNo">911</span><a name="line.911"></a>
-<span class="sourceLineNo">912</span>    assignmentManager.checkIfShouldMoveSystemRegionAsync();<a name="line.912"></a>
-<span class="sourceLineNo">913</span><a name="line.913"></a>
-<span class="sourceLineNo">914</span>    status.setStatus("Assign meta replicas");<a name="line.914"></a>
-<span class="sourceLineNo">915</span>    metaBootstrap.assignMetaReplicas();<a name="line.915"></a>
+<span class="sourceLineNo">912</span>    // Set master as 'initialized'.<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    setInitialized(true);<a name="line.913"></a>
+<span class="sourceLineNo">914</span><a name="line.914"></a>
+<span class="sourceLineNo">915</span>    assignmentManager.checkIfShouldMoveSystemRegionAsync();<a name="line.915"></a>
 <span class="sourceLineNo">916</span><a name="line.916"></a>
-<span class="sourceLineNo">917</span>    status.setStatus("Starting quota manager");<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    initQuotaManager();<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      // Create the quota snapshot notifier<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      spaceQuotaSnapshotNotifier = createQuotaSnapshotNotifier();<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      spaceQuotaSnapshotNotifier.initialize(getClusterConnection());<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      this.quotaObserverChore = new QuotaObserverChore(this, getMasterMetrics());<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      // Start the chore to read the region FS space reports and act on them<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      getChoreService().scheduleChore(quotaObserverChore);<a name="line.925"></a>
-<span class="sourceLineNo">926</span><a name="line.926"></a>
-<span class="sourceLineNo">927</span>      this.snapshotQuotaChore = new SnapshotQuotaObserverChore(this, getMasterMetrics());<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      // Start the chore to read snapshots and add their usage to table/NS quotas<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      getChoreService().scheduleChore(snapshotQuotaChore);<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    // master initialization. See HBASE-5916.<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.935"></a>
-<span class="sourceLineNo">936</span><a name="line.936"></a>
-<span class="sourceLineNo">937</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    status.setStatus("Checking ZNode ACLs");<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    initMobCleaner();<a name="line.942"></a>
+<span class="sourceLineNo">917</span>    status.setStatus("Assign meta replicas");<a name="line.917"></a>
+<span class="sourceLineNo">918</span>    metaBootstrap.assignMetaReplicas();<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span>    status.setStatus("Starting quota manager");<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    initQuotaManager();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>      // Create the quota snapshot notifier<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      spaceQuotaSnapshotNotifier = createQuotaSnapshotNotifier();<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      spaceQuotaSnapshotNotifier.initialize(getClusterConnection());<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      this.quotaObserverChore = new QuotaObserverChore(this, getMasterMetrics());<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      // Start the chore to read the region FS space reports and act on them<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      getChoreService().scheduleChore(quotaObserverChore);<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>      this.snapshotQuotaChore = new SnapshotQuotaObserverChore(this, getMasterMetrics());<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      // Start the chore to read snapshots and add their usage to table/NS quotas<a name="line.931"></a>
+<span class="sourceLineNo">932</span>      getChoreService().scheduleChore(snapshotQuotaChore);<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
+<span class="sourceLineNo">934</span><a name="line.934"></a>
+<span class="sourceLineNo">935</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    // master initialization. See HBASE-5916.<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    status.setStatus("Checking ZNode ACLs");<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.942"></a>
 <span class="sourceLineNo">943</span><a name="line.943"></a>
-<span class="sourceLineNo">944</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    if (this.cpHost != null) {<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      // don't let cp initialization errors kill the master<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      try {<a name="line.947"></a>
-<span class="sourceLineNo">948</span>        this.cpHost.postStartMaster();<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      } catch (IOException ioe) {<a name="line.949"></a>
-<span class="sourceLineNo">950</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      }<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    }<a name="line.952"></a>
-<span class="sourceLineNo">953</span><a name="line.953"></a>
-<span class="sourceLineNo">954</span>    zombieDetector.interrupt();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>  }<a name="line.955"></a>
+<span class="sourceLineNo">944</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    initMobCleaner();<a name="line.945"></a>
+<span class="sourceLineNo">946</span><a name="line.946"></a>
+<span class="sourceLineNo">947</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.947"></a>
+<span class="sourceLineNo">948</span>    if (this.cpHost != null) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      // don't let cp initialization errors kill the master<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      try {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        this.cpHost.postStartMaster();<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      } catch (IOException ioe) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>    }<a name="line.955"></a>
 <span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>  /**<a name="line.957"></a>
-<span class="sourceLineNo">958</span>   * Adds the {@code MasterSpaceQuotaObserver} to the list of configured Master observers to<a name="line.958"></a>
-<span class="sourceLineNo">959</span>   * automatically remove space quotas for a table when that table is deleted.<a name="line.959"></a>
-<span class="sourceLineNo">960</span>   */<a name="line.960"></a>
-<span class="sourceLineNo">961</span>  @VisibleForTesting<a name="line.961"></a>
-<span class="sourceLineNo">962</span>  public void updateConfigurationForSpaceQuotaObserver(Configuration conf) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    // We're configured to not delete quotas on table deletion, so we don't need to add the obs.<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    if (!conf.getBoolean(<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          MasterSpaceQuotaObserver.REMOVE_QUOTA_ON_TABLE_DELETE,<a name="line.965"></a>
-<span class="sourceLineNo">966</span>          MasterSpaceQuotaObserver.REMOVE_QUOTA_ON_TABLE_DELETE_DEFAULT)) {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      return;<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span>    String[] masterCoprocs = conf.getStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    final int length = null == masterCoprocs ? 0 : masterCoprocs.length;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    String[] updatedCoprocs = new String[length + 1];<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    if (length &gt; 0) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>      System.arraycopy(masterCoprocs, 0, updatedCoprocs, 0, masterCoprocs.length);<a name="line.973"></a>
-<span class="sourceLineNo">974</span>    }<a name="line.974"></a>
-<span class="sourceLineNo">975</span>    updatedCoprocs[length] = MasterSpaceQuotaObserver.class.getName();<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    conf.setStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, updatedCoprocs);<a name="line.976"></a>
-<span class="sourceLineNo">977</span>  }<a name="line.977"></a>
-<span class="sourceLineNo">978</span><a name="line.978"></a>
-<span class="sourceLineNo">979</span>  private void initMobCleaner() {<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    this.expiredMobFileCleanerChore = new ExpiredMobFileCleanerChore(this);<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    getChoreService().scheduleChore(expiredMobFileCleanerChore);<a name="line.981"></a>
-<span class="sourceLineNo">982</span><a name="line.982"></a>
-<span class="sourceLineNo">983</span>    int mobCompactionPeriod = conf.getInt(MobConstants.MOB_COMPACTION_CHORE_PERIOD,<a name="line.983"></a>
-<span class="sourceLineNo">984</span>        MobConstants.DEFAULT_MOB_COMPACTION_CHORE_PERIOD);<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    if (mobCompactionPeriod &gt; 0) {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      this.mobCompactChore = new MobCompactionChore(this, mobCompactionPeriod);<a name="line.986"></a>
-<span class="sourceLineNo">987</span>      getChoreService().scheduleChore(mobCompactChore);<a name="line.987"></a>
-<span class="sourceLineNo">988</span>    } else {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>      LOG<a name="line.989"></a>
-<span class="sourceLineNo">990</span>        .info("The period is " + mobCompactionPeriod + " seconds, MobCompactionChore is disabled");<a name="line.990"></a>
-<span class="sourceLineNo">991</span>    }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>    this.mobCompactThread = new MasterMobCompactionThread(this);<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  }<a name="line.993"></a>
-<span class="sourceLineNo">994</span><a name="line.994"></a>
-<span class="sourceLineNo">995</span>  /**<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   * Create a {@link MasterMetaBootstrap} instance.<a name="line.996"></a>
-<span class="sourceLineNo">997</span>   */<a name="line.997"></a>
-<span class="sourceLineNo">998</span>  MasterMetaBootstrap createMetaBootstrap(final HMaster master, final MonitoredTask status) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    // w/ a mocked up MasterMetaBootstrap.<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    return new MasterMetaBootstrap(master, status);<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  /**<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>   * Create a {@link ServerManager} instance.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   */<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>  ServerManager createServerManager(final MasterServices master) throws IOException {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>    // w/ a mocked up ServerManager.<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    setupClusterConnection();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>    return new ServerManager(master);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>  }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span><a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  private void waitForRegionServers(final MonitoredTask status)<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      throws IOException, InterruptedException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    this.serverManager.waitForRegionServers(status);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    // Check zk for region servers that are up but didn't register<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>    for (ServerName sn: this.regionServerTracker.getOnlineServers()) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>      // The isServerOnline check is opportunistic, correctness is handled inside<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      if (!this.serverManager.isServerOnline(sn) &amp;&amp;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>          serverManager.checkAndRecordNewServer(sn, ServerLoad.EMPTY_SERVERLOAD)) {<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>        LOG.info("Registered server found up in zk but who has not yet reported in: " + sn);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  }<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span><a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  void initClusterSchemaService() throws IOException, InterruptedException {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    this.clusterSchemaService = new ClusterSchemaServiceImpl(this);<a name="line.10

<TRUNCATED>

[07/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
new file mode 100644
index 0000000..27d1f37
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
@@ -0,0 +1,978 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.rsgroup;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.io.ByteArrayInputStream;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.ArrayList;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Arrays;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Collections;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.HashMap;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.HashSet;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.LinkedList;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.List;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.Map;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.NavigableSet;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.Set;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.SortedSet;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.TreeSet;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.commons.logging.Log;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.commons.logging.LogFactory;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.conf.Configuration;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.Cell;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HConstants;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor.DefaultVisitorBase;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ServerName;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.TableName;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.Get;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Put;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Result;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.Table;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.net.Address;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.ProtobufMagic;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.security.access.AccessControlLists;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.zookeeper.KeeperException;<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>import com.google.protobuf.ServiceException;<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>/**<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * This is an implementation of {@link RSGroupInfoManager} which makes<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * use of an HBase table as the persistence store for the group information.<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * It also makes use of zookeeper to store group information needed<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * for bootstrapping during offline mode.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> *<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;h2&gt;Concurrency&lt;/h2&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * RSGroup state is kept locally in Maps. There is a rsgroup name to cached<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * RSGroupInfo Map at {@link #rsGroupMap} and a Map of tables to the name of the<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * rsgroup they belong too (in {@link #tableMap}). These Maps are persisted to the<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * hbase:rsgroup table (and cached in zk) on each modification.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> *<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * &lt;p&gt;Mutations on state are synchronized but reads can continue without having<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * to wait on an instance monitor, mutations do wholesale replace of the Maps on<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * update -- Copy-On-Write; the local Maps of state are read-only, just-in-case<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * (see flushConfig).<a name="line.107"></a>
+<span class="sourceLineNo">108</span> *<a name="line.108"></a>
+<span class="sourceLineNo">109</span> * &lt;p&gt;Reads must not block else there is a danger we'll deadlock.<a name="line.109"></a>
+<span class="sourceLineNo">110</span> *<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * &lt;p&gt;Clients of this class, the {@link RSGroupAdminEndpoint} for example, want to query and<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * then act on the results of the query modifying cache in zookeeper without another thread<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * making intermediate modifications. These clients synchronize on the 'this' instance so<a name="line.113"></a>
+<span class="sourceLineNo">114</span> * no other has access concurrently. Reads must be able to continue concurrently.<a name="line.114"></a>
+<span class="sourceLineNo">115</span> */<a name="line.115"></a>
+<span class="sourceLineNo">116</span>@InterfaceAudience.Private<a name="line.116"></a>
+<span class="sourceLineNo">117</span>class RSGroupInfoManagerImpl implements RSGroupInfoManager {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private static final Log LOG = LogFactory.getLog(RSGroupInfoManagerImpl.class);<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  /** Table descriptor for &lt;code&gt;hbase:rsgroup&lt;/code&gt; catalog table */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  private final static HTableDescriptor RSGROUP_TABLE_DESC;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  static {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    RSGROUP_TABLE_DESC = new HTableDescriptor(RSGROUP_TABLE_NAME);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    RSGROUP_TABLE_DESC.addFamily(new HColumnDescriptor(META_FAMILY_BYTES));<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    RSGROUP_TABLE_DESC.setRegionSplitPolicyClassName(DisabledRegionSplitPolicy.class.getName());<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    try {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      RSGROUP_TABLE_DESC.addCoprocessor(<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        MultiRowMutationEndpoint.class.getName(),<a name="line.128"></a>
+<span class="sourceLineNo">129</span>          null, Coprocessor.PRIORITY_SYSTEM, null);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    } catch (IOException ex) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      throw new RuntimeException(ex);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>  // There two Maps are immutable and wholesale replaced on each modification<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // so are safe to access concurrently. See class comment.<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  private volatile Map&lt;String, RSGroupInfo&gt; rsGroupMap = Collections.emptyMap();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  private volatile Map&lt;TableName, String&gt; tableMap = Collections.emptyMap();<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>  private final MasterServices masterServices;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  private Table rsGroupTable;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private final ClusterConnection conn;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  private final ZooKeeperWatcher watcher;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  private final RSGroupStartupWorker rsGroupStartupWorker = new RSGroupStartupWorker();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  // contains list of groups that were last flushed to persistent store<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  private Set&lt;String&gt; prevRSGroups = new HashSet&lt;&gt;();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final ServerEventsListenerThread serverEventsListenerThread =<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      new ServerEventsListenerThread();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  private FailedOpenUpdaterThread failedOpenUpdaterThread;<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private RSGroupInfoManagerImpl(MasterServices masterServices) throws IOException {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    this.masterServices = masterServices;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    this.watcher = masterServices.getZooKeeper();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    this.conn = masterServices.getClusterConnection();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private synchronized void init() throws IOException{<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    refresh();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    rsGroupStartupWorker.start();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    serverEventsListenerThread.start();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    masterServices.getServerManager().registerListener(serverEventsListenerThread);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    failedOpenUpdaterThread = new FailedOpenUpdaterThread(masterServices.getConfiguration());<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    failedOpenUpdaterThread.start();<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    masterServices.getServerManager().registerListener(failedOpenUpdaterThread);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  static RSGroupInfoManager getInstance(MasterServices master) throws IOException {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    RSGroupInfoManagerImpl instance = new RSGroupInfoManagerImpl(master);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    instance.init();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    return instance;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  @Override<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public synchronized void addRSGroup(RSGroupInfo rsGroupInfo) throws IOException {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    checkGroupName(rsGroupInfo.getName());<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    if (rsGroupMap.get(rsGroupInfo.getName()) != null ||<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        rsGroupInfo.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      throw new DoNotRetryIOException("Group already exists: "+ rsGroupInfo.getName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    newGroupMap.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    flushConfig(newGroupMap);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  private RSGroupInfo getRSGroupInfo(final String groupName) throws DoNotRetryIOException {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    RSGroupInfo rsGroupInfo = getRSGroup(groupName);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    if (rsGroupInfo == null) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      throw new DoNotRetryIOException("RSGroup " + groupName + " does not exist");<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    return rsGroupInfo;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>  }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>  @Override<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public synchronized Set&lt;Address&gt; moveServers(Set&lt;Address&gt; servers, String srcGroup,<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      String dstGroup) throws IOException {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    RSGroupInfo src = getRSGroupInfo(srcGroup);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    RSGroupInfo dst = getRSGroupInfo(dstGroup);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // If destination is 'default' rsgroup, only add servers that are online. If not online, drop<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // it. If not 'default' group, add server to 'dst' rsgroup EVEN IF IT IS NOT online (could be a<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    // rsgroup of dead servers that are to come back later).<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    Set&lt;Address&gt; onlineServers = dst.getName().equals(RSGroupInfo.DEFAULT_GROUP)?<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        Utility.getOnlineServers(this.masterServices): null;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    for (Address el: servers) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      src.removeServer(el);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      if (onlineServers != null) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (!onlineServers.contains(el)) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          if (LOG.isDebugEnabled()) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>            LOG.debug("Dropping " + el + " during move-to-default rsgroup because not online");<a name="line.208"></a>
+<span class="sourceLineNo">209</span>          }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>          continue;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      dst.addServer(el);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    newGroupMap.put(src.getName(), src);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    newGroupMap.put(dst.getName(), dst);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    flushConfig(newGroupMap);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    return dst.getServers();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  @Override<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  public RSGroupInfo getRSGroupOfServer(Address serverHostPort) throws IOException {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    for (RSGroupInfo info: rsGroupMap.values()) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      if (info.containsServer(serverHostPort)) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        return info;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    return null;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public RSGroupInfo getRSGroup(String groupName) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    return rsGroupMap.get(groupName);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  public String getRSGroupOfTable(TableName tableName) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    return tableMap.get(tableName);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>  @Override<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  public synchronized void moveTables(Set&lt;TableName&gt; tableNames, String groupName)<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      throws IOException {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    if (groupName != null &amp;&amp; !rsGroupMap.containsKey(groupName)) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      throw new DoNotRetryIOException("Group "+groupName+" does not exist or is a special group");<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    for(TableName tableName: tableNames) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      if (tableMap.containsKey(tableName)) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        RSGroupInfo src = new RSGroupInfo(newGroupMap.get(tableMap.get(tableName)));<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        src.removeTable(tableName);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        newGroupMap.put(src.getName(), src);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      if(groupName != null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        RSGroupInfo dst = new RSGroupInfo(newGroupMap.get(groupName));<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        dst.addTable(tableName);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        newGroupMap.put(dst.getName(), dst);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    flushConfig(newGroupMap);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  public synchronized void removeRSGroup(String groupName) throws IOException {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    if (!rsGroupMap.containsKey(groupName) || groupName.equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      throw new DoNotRetryIOException("Group " + groupName + " does not exist or is a reserved "<a name="line.268"></a>
+<span class="sourceLineNo">269</span>          + "group");<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    newGroupMap.remove(groupName);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    flushConfig(newGroupMap);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>  public List&lt;RSGroupInfo&gt; listRSGroups() {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return Lists.newLinkedList(rsGroupMap.values());<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public boolean isOnline() {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    return rsGroupStartupWorker.isOnline();<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  public void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                   String srcGroup, String dstGroup) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    //get server's group<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    RSGroupInfo srcGroupInfo = getRSGroupInfo(srcGroup);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    RSGroupInfo dstGroupInfo = getRSGroupInfo(dstGroup);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    //move servers<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    for (Address el: servers) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      srcGroupInfo.removeServer(el);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      dstGroupInfo.addServer(el);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    //move tables<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    for(TableName tableName: tables) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      srcGroupInfo.removeTable(tableName);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      dstGroupInfo.addTable(tableName);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    //flush changed groupinfo<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    newGroupMap.put(srcGroupInfo.getName(), srcGroupInfo);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    newGroupMap.put(dstGroupInfo.getName(), dstGroupInfo);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    flushConfig(newGroupMap);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.314"></a>
+<span class="sourceLineNo">315</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    return rsGroupInfoList;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    //Overwrite any info stored by table, this takes precedence<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    try {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          byte[] data = ZKUtil.getData(watcher, ZKUtil.joinZNode(groupBasePath, znode));<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          if(data.length &gt; 0) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.334"></a>
+<span class="sourceLineNo">335</span>          }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return RSGroupInfoList;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public void refresh() throws IOException {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    refresh(false);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  /**<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   * Update zk cache. Called on startup of the manager.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   */<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    // if online read from GROUP table<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    if (forceOnline || isOnline()) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      LOG.debug("Refreshing in Online mode.");<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      if (rsGroupTable == null) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    } else {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>    // refresh default group, prune<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>    final List&lt;TableName&gt; specialTables;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    if(!masterServices.isInitialized()) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.378"></a>
+<span class="sourceLineNo">379</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    } else {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      specialTables =<a name="line.381"></a>
+<span class="sourceLineNo">382</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>    for (TableName table : specialTables) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      orphanTables.add(table);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    for (RSGroupInfo group: groupList) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        orphanTables.removeAll(group.getTables());<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    // from region group table or zk<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        orphanTables));<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>    // populate the data<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    for (RSGroupInfo group : groupList) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      newGroupMap.put(group.getName(), group);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      for(TableName table: group.getTables()) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        newTableMap.put(table, group.getName());<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    }<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      throws IOException {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>    // populate deletes<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    for(String groupName : prevRSGroups) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      if(!groupMap.containsKey(groupName)) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        mutations.add(d);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    // populate puts<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      mutations.add(p);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>    if(mutations.size() &gt; 0) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      multiMutate(mutations);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    }<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    return newTableMap;<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>  private synchronized void flushConfig()<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  throws IOException {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    flushConfig(this.rsGroupMap);<a name="line.444"></a>
+<span class="sourceLineNo">445</span>  }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  throws IOException {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>    // For offline mode persistence is still unavailable<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    // We're refreshing in-memory state but only for default servers<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    if (!isOnline()) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      if (!m.equals(newGroupMap) ||<a name="line.457"></a>
+<span class="sourceLineNo">458</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      }<a name="line.460"></a>
+<span class="sourceLineNo">461</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.461"></a>
+<span class="sourceLineNo">462</span>      rsGroupMap = newGroupMap;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>      return;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>    // Make changes visible after having been persisted to the source of truth<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>    try {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.475"></a>
+<span class="sourceLineNo">476</span>      for(String groupName : prevRSGroups) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>          String znode = ZKUtil.joinZNode(groupBasePath, groupName);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
+<span class="sourceLineNo">482</span><a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        String znode = ZKUtil.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        LOG.debug("Updating znode: "+znode);<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.490"></a>
+<span class="sourceLineNo">491</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.491"></a>
+<span class="sourceLineNo">492</span>      }<a name="line.492"></a>
+<span class="sourceLineNo">493</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    } catch (KeeperException e) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.497"></a>
+<span class="sourceLineNo">498</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.501"></a>
+<span class="sourceLineNo">502</span>  }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>  /**<a name="line.504"></a>
+<span class="sourceLineNo">505</span>   * Make changes visible.<a name="line.505"></a>
+<span class="sourceLineNo">506</span>   * Caller must be synchronized on 'this'.<a name="line.506"></a>
+<span class="sourceLineNo">507</span>   */<a name="line.507"></a>
+<span class="sourceLineNo">508</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.508"></a>
+<span class="sourceLineNo">509</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    // Make maps Immutable.<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>  }<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>  /**<a name="line.515"></a>
+<span class="sourceLineNo">516</span>   * Update cache of rsgroups.<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   * Caller must be synchronized on 'this'.<a name="line.517"></a>
+<span class="sourceLineNo">518</span>   * @param currentGroups Current list of Groups.<a name="line.518"></a>
+<span class="sourceLineNo">519</span>   */<a name="line.519"></a>
+<span class="sourceLineNo">520</span>  private void updateCacheOfRSGroups(final Set&lt;String&gt; currentGroups) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>    this.prevRSGroups.clear();<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    this.prevRSGroups.addAll(currentGroups);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>  }<a name="line.523"></a>
+<span class="sourceLineNo">524</span><a name="line.524"></a>
+<span class="sourceLineNo">525</span>  // Called by getDefaultServers. Presume it has lock in place.<a name="line.525"></a>
+<span class="sourceLineNo">526</span>  private List&lt;ServerName&gt; getOnlineRS() throws IOException {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    if (masterServices != null) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>      return masterServices.getServerManager().getOnlineServersList();<a name="line.528"></a>
+<span class="sourceLineNo">529</span>    }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>    LOG.debug("Reading online RS from zookeeper");<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    List&lt;ServerName&gt; servers = new LinkedList&lt;&gt;();<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    try {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      for (String el: ZKUtil.listChildrenNoWatch(watcher, watcher.znodePaths.rsZNode)) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        servers.add(ServerName.parseServerName(el));<a name="line.534"></a>
+<span class="sourceLineNo">535</span>      }<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    } catch (KeeperException e) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>      throw new IOException("Failed to retrieve server list from zookeeper", e);<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    return servers;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>  // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>  private SortedSet&lt;Address&gt; getDefaultServers() throws IOException {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>    SortedSet&lt;Address&gt; defaultServers = Sets.newTreeSet();<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    for (ServerName serverName : getOnlineRS()) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      Address server =<a name="line.546"></a>
+<span class="sourceLineNo">547</span>          Address.fromParts(serverName.getHostname(), serverName.getPort());<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      boolean found = false;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      for(RSGroupInfo rsgi: listRSGroups()) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        if(!RSGroupInfo.DEFAULT_GROUP.equals(rsgi.getName()) &amp;&amp;<a name="line.550"></a>
+<span class="sourceLineNo">551</span>            rsgi.containsServer(server)) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>          found = true;<a name="line.552"></a>
+<span class="sourceLineNo">553</span>          break;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>      if (!found) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        defaultServers.add(server);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>      }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    return defaultServers;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>  }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>  // Called by ServerEventsListenerThread. Synchronize on this because redoing<a name="line.563"></a>
+<span class="sourceLineNo">564</span>  // the rsGroupMap then writing it out.<a name="line.564"></a>
+<span class="sourceLineNo">565</span>  private synchronized void updateDefaultServers(SortedSet&lt;Address&gt; servers) throws IOException {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    RSGroupInfo info = rsGroupMap.get(RSGroupInfo.DEFAULT_GROUP);<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    RSGroupInfo newInfo = new RSGroupInfo(info.getName(), servers, info.getTables());<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    newGroupMap.put(newInfo.getName(), newInfo);<a name="line.569"></a>
+<span class="sourceLineNo">570</span>    flushConfig(newGroupMap);<a name="line.570"></a>
+<span class="sourceLineNo">571</span>  }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>  // Called by FailedOpenUpdaterThread<a name="line.573"></a>
+<span class="sourceLineNo">574</span>  private void updateFailedAssignments() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    // Kick all regions in FAILED_OPEN state<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    List&lt;RegionInfo&gt; stuckAssignments = Lists.newArrayList();<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    for (RegionStateNode state:<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        masterServices.getAssignmentManager().getRegionStates().getRegionsInTransition()) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      if (state.isStuck()) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        stuckAssignments.add(state.getRegionInfo());<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      }<a name="line.581"></a>
+<span class="sourceLineNo">582</span>    }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    for (RegionInfo region: stuckAssignments) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      LOG.info("Retrying assignment of " + region);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      try {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        masterServices.getAssignmentManager().unassign(region);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      } catch (IOException e) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        LOG.warn("Unable to reassign " + region, e);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      }<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>  }<a name="line.591"></a>
+<span class="sourceLineNo">592</span><a name="line.592"></a>
+<span class="sourceLineNo">593</span>  /**<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   * Calls {@link RSGroupInfoManagerImpl#updateDefaultServers(SortedSet)} to update list of known<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   * servers. Notifications about server changes are received by registering {@link ServerListener}.<a name="line.595"></a>
+<span class="sourceLineNo">596</span>   * As a listener, we need to return immediately, so the real work of updating the servers is<a name="line.596"></a>
+<span class="sourceLineNo">597</span>   * done asynchronously in this thread.<a name="line.597"></a>
+<span class="sourceLineNo">598</span>   */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>  private class ServerEventsListenerThread extends Thread implements ServerListener {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>    private final Log LOG = LogFactory.getLog(ServerEventsListenerThread.class);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>    private boolean changed = false;<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>    ServerEventsListenerThread() {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      setDaemon(true);<a name="line.604"></a>
+<span class="sourceLineNo">605</span>    }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>    @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    public void serverAdded(ServerName serverName) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      serverChanged();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>    @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    public void serverRemoved(ServerName serverName) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      serverChanged();<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    }<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>    private synchronized void serverChanged() {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      changed = true;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      this.notify();<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>    @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    public void run() {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      setName(ServerEventsListenerThread.class.getName() + "-" + masterServices.getServerName());<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      SortedSet&lt;Address&gt; prevDefaultServers = new TreeSet&lt;&gt;();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      while(isMasterRunning(masterServices)) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        try {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>          LOG.info("Updating default servers.");<a name="line.628"></a>
+<span class="sourceLineNo">629</span>          SortedSet&lt;Address&gt; servers = RSGroupInfoManagerImpl.this.getDefaultServers();<a name="line.629"></a>
+<span class="sourceLineNo">630</span>          if (!servers.equals(prevDefaultServers)) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>            RSGroupInfoManagerImpl.this.updateDefaultServers(servers);<a name="line.631"></a>
+<span class="sourceLineNo">632</span>            prevDefaultServers = servers;<a name="line.632"></a>
+<span class="sourceLineNo">633</span>            LOG.info("Updated with servers: "+servers.size());<a name="line.633"></a>
+<span class="sourceLineNo">634</span>          }<a name="line.634"></a>
+<span class="sourceLineNo">635</span>          try {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>            synchronized (this) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>              while (!changed) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                wait();<a name="line.638"></a>
+<span class="sourceLineNo">639</span>              }<a name="line.639"></a>
+<span class="sourceLineNo">640</span>              changed = false;<a name="line.640"></a>
+<span class="sourceLineNo">641</span>            }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>          } catch (InterruptedException e) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>            LOG.warn("Interrupted", e);<a name="line.643"></a>
+<span class="sourceLineNo">644</span>          }<a name="line.644"></a>
+<span class="sourceLineNo">645</span>        } catch (IOException e) {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>          LOG.warn("Failed to update default servers", e);<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        }<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>  }<a name="line.650"></a>
+<span class="sourceLineNo">651</span><a name="line.651"></a>
+<span class="sourceLineNo">652</span>  private class FailedOpenUpdaterThread extends Thread implements ServerListener {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    private final long waitInterval;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    private volatile boolean hasChanged = false;<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>    public FailedOpenUpdaterThread(Configuration conf) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>      this.waitInterval = conf.getLong(REASSIGN_WAIT_INTERVAL_KEY,<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        DEFAULT_REASSIGN_WAIT_INTERVAL);<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      setDaemon(true);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    }<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span>    @Override<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    public void serverAdded(ServerName serverName) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      serverChanged();<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span><a name="line.666"></a>
+<span class="sourceLineNo">667</span>    @Override<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    public void serverRemoved(ServerName serverName) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>    @Override<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    public void run() {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      while (isMasterRunning(masterServices)) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        boolean interrupted = false;<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        try {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>          synchronized (this) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>            while (!hasChanged) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>              wait();<a name="line.678"></a>
+<span class="sourceLineNo">679</span>            }<a name="line.679"></a>
+<span class="sourceLineNo">680</span>            hasChanged = false;<a name="line.680"></a>
+<span class="sourceLineNo">681</span>          }<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        } catch (InterruptedException e) {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>          LOG.warn("Interrupted", e);<a name="line.683"></a>
+<span class="sourceLineNo">684</span>          interrupted = true;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>        if (!isMasterRunning(masterServices) || interrupted) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>          continue;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>        }<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>        // First, wait a while in case more servers are about to rejoin the cluster<a name="line.690"></a>
+<span class="sourceLineNo">691</span>        try {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>          Thread.sleep(waitInterval);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        } catch (InterruptedException e) {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>          LOG.warn("Interrupted", e);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        if (!isMasterRunning(masterServices)) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>          continue;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>        }<a name="line.698"></a>
+<span class="sourceLineNo">699</span><a name="line.699"></a>
+<span class="sourceLineNo">700</span>        // Kick all regions in FAILED_OPEN state<a name="line.700"></a>
+<span class="sourceLineNo">701</span>        updateFailedAssignments();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
+<span class="sourceLineNo">704</span><a name="line.704"></a>
+<span class="sourceLineNo">705</span>    public void serverChanged() {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>      synchronized (this) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>        hasChanged = true;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>        this.notify();<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      }<a name="line.709"></a>
+<span class="sourceLineNo">710</span>    }<a name="line.710"></a>
+<span class="sourceLineNo">711</span>  }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>  private class RSGroupStartupWorker extends Thread {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    private final Log LOG = LogFactory.getLog(RSGroupStartupWorker.class);<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    private volatile boolean online = false;<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>    RSGroupStartupWorker() {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>      setDaemon(true);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>    }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>    @Override<a name="line.721"></a>
+<span class="sourceLineNo">722</span>    public void run() {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>      setName(RSGroupStartupWorker.class.getName() + "-" + masterServices.getServerName());<a name="line.723"></a>
+<span class="sourceLineNo">724</span>      if (waitForGroupTableOnline()) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>        LOG.info("GroupBasedLoadBalancer is now online");<a name="line.725"></a>
+<span class="sourceLineNo">726</span>      }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>    private boolean waitForGroupTableOnline() {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>      final List&lt;RegionInfo&gt; foundRegions = new LinkedList&lt;&gt;();<a name="line.730"></a>
+<span class="sourceLineNo">731</span>      final List&lt;RegionInfo&gt; assignedRegions = new LinkedList&lt;&gt;();<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      final AtomicBoolean found = new AtomicBoolean(false);<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      final TableStateManager tsm = masterServices.getTableStateManager();<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      boolean createSent = false;<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      while (!found.get() &amp;&amp; isMasterRunning(masterServices)) {<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        foundRegions.clear();<a name="line.736"></a>
+<span class="sourceLineNo">737</span>        assignedRegions.clear();<a name="line.737"></a>
+<span class="sourceLineNo">738</span>        found.set(true);<a name="line.738"></a>
+<span class="sourceLineNo">739</span>        try {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>          conn.getTable(TableName.NAMESPACE_TABLE_NAME);<a name="line.740"></a>
+<span class="sourceLineNo">741</span>          conn.getTable(RSGROUP_TABLE_NAME);<a name="line.741"></a>
+<span class="sourceLineNo">742</span>          boolean rootMetaFound =<a name="line.742"></a>
+<span class="sourceLineNo">743</span>              masterServices.getMetaTableLocator().verifyMetaRegionLocation(<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                  conn, masterServices.getZooKeeper(), 1);<a name="line.744"></a>
+<span class="sourceLineNo">745</span>          final AtomicBoolean nsFound = new AtomicBoolean(false);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>          if (rootMetaFound) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>            MetaTableAccessor.Visitor visitor = new DefaultVisitorBase() {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>              @Override<a name="line.748"></a>
+<span class="sourceLineNo">749</span>              public boolean visitInternal(Result row) throws IOException {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                RegionInfo info = MetaTableAccessor.getRegionInfo(row);<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                if (info != null) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                  Cell serverCell =<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                      row.getColumnLatestCell(HConstants.CATALOG_FAMILY,<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                          HConstants.SERVER_QUALIFIER);<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                  if (RSGROUP_TABLE_NAME.equals(info.getTable()) &amp;&amp; serverCell != null) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                    ServerName sn =<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        ServerName.parseVersionedServerName(CellUtil.cloneValue(serverCell));<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                    if (sn == null) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                      found.set(false);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                    } else if (tsm.isTableState(RSGROUP_TABLE_NAME, TableState.State.ENABLED)) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                      try {<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        ClientProtos.ClientService.BlockingInterface rs = conn.getClient(sn);<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        ClientProtos.GetRequest request =<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                            RequestConverter.buildGetRequest(info.getRegionName(),<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                new Get(ROW_KEY));<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        rs.get(null, request);<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        assignedRegions.add(info);<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                      } catch(Exception ex) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        LOG.debug("Caught exception while verifying group region", ex);<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                      }<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                    }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                    foundRegions.add(info);<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                  }<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                  if (TableName.NAMESPACE_TABLE_NAME.equals(info.getTable())) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                    Cell cell = row.getColumnLatestCell(HConstants.CATALOG_FAMILY,<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        HConstants.SERVER_QUALIFIER);<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                    ServerName sn = null;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                    if(cell != null) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                      sn = ServerName.parseVersionedServerName(CellUtil.cloneValue(cell));<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                    }<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                    if (sn == null) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                      nsFound.set(false);<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                    } else if (tsm.isTableState(TableName.NAMESPACE_TABLE_NAME,<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        TableState.State.ENABLED)) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                      try {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        ClientProtos.ClientService.BlockingInterface rs = conn.getClient(sn);<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        ClientProtos.GetRequest request =<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                            RequestConverter.buildGetRequest(info.getRegionName(),<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                new Get(ROW_KEY));<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        rs.get(null, request);<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        nsFound.set(true);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                      } catch(Exception ex) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        LOG.debug("Caught exception while verifying group region", ex);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                      }<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                    }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                  }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                return true;<a name="line.798"></a>
+<span class="sourceLineNo">799</span>              }<a name="line.799"></a>
+<span class="sourceLineNo">800</span>            };<a name="line.800"></a>
+<span class="sourceLineNo">801</span>            MetaTableAccessor.fullScanRegions(conn, visitor);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            // if no regions in meta then we have to create the table<a name="line.802"></a>
+<span class="sourceLineNo">803</span>            if (foundRegions.size() &lt; 1 &amp;&amp; rootMetaFound &amp;&amp; !createSent &amp;&amp; nsFound.get()) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>              createRSGroupTable();<a name="line.804"></a>
+<span class="sourceLineNo">805</span>              createSent = true;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>            }<a name="line.806"></a>
+<span class="sourceLineNo">807</span>            LOG.info("RSGroup table=" + RSGROUP_TABLE_NAME + " isOnline=" + found.get()<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                + ", regionCount=" + foundRegions.size() + ", assignCount="<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                + assignedRegions.size() + ", rootMetaFound=" + rootMetaFound);<a name="line.809"></a>
+<span class="sourceLineNo">810</span>            found.set(found.get() &amp;&amp; assignedRegions.size() == foundRegions.size()<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                &amp;&amp; foundRegions.size() &gt; 0);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>          } else {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>            LOG.info("Waiting for catalog tables to come online");<a name="line.813"></a>
+<span class="sourceLineNo">814</span>            found.set(false);<a name="line.814"></a>
+<span class="sourceLineNo">815</span>          }<a name="line.815"></a>
+<span class="sourceLineNo">816</span>          if (found.get()) {<a name="line.816"></a>
+<span class="sourceLineNo">817</span>            LOG.debug("With group table online, refreshing cached information.");<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            RSGroupInfoManagerImpl.this.refresh(true);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            online = true;<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            //flush any inconsistencies between ZK and HTable<a name="line.820"></a>
+<span class="sourceLineNo">821</span>            RSGroupInfoManagerImpl.this.flushConfig();<a name="line.821"></a>
+<span class="sourceLineNo">822</span>          }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        } catch (RuntimeException e) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>          throw e;<a name="line.824"></a>
+<span class="sourceLineNo">825</span>        } catch(Exception e) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>          found.set(false);<a name="line.826"></a>
+<span class="sourceLineNo">827</span>          LOG.warn("Failed to perform check", e);<a name="line.827"></a>
+<span class="sourceLineNo">828</span>        }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        try {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          Thread.sleep(100);<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        } catch (InterruptedException e) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>          LOG.info("Sleep interrupted", e);<a name="line.832"></a>
+<span class="sourceLineNo">833</span>        }<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>      return found.get();<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    }<a name="line.836"></a>
+<span class="sourceLineNo">837</span><a name="line.837"></a>
+<span class="sourceLineNo">838</span>    private void createRSGroupTable() throws IOException {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>      Long procId = masterServices.createSystemTable(RSGROUP_TABLE_DESC);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>      // wait for region to be online<a name="line.840"></a>
+<span class="sourceLineNo">841</span>      int tries = 600;<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      while (!(masterServices.getMasterProcedureExecutor().isFinished(procId))<a name="line.842"></a>
+<span class="sourceLineNo">843</span>          &amp;&amp; masterServices.getMasterProcedureExecutor().isRunning()<a name="line.843"></a>
+<span class="sourceLineNo">844</span>          &amp;&amp; tries &gt; 0) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>        try {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>          Thread.sleep(100);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        } catch (InterruptedException e) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>          throw new IOException("Wait interrupted ", e);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        tries--;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      }<a name="line.851"></a>
+<span class="sourceLineNo">852</span>      if(tries &lt;= 0) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        throw new IOException("Failed to create group table in a given time.");<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      } else {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        Procedure&lt;?&gt; result = masterServices.getMasterProcedureExecutor().getResult(procId);<a name="line.855"></a>
+<span class="sourceLineNo">856</span>        if (result != null &amp;&amp; result.isFailed()) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>          throw new IOException("Failed to create group table. " +<a name="line.857"></a>
+<span class="sourceLineNo">858</span>            result.getException().unwrapRemoteIOException());<a name="line.858"></a>
+<span class="sourceLineNo">859</span>        }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      }<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>    public boolean isOnline() {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      return online;<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  }<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>  private static boolean isMasterRunning(MasterServices masterServices) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    return !masterServices.isAborted() &amp;&amp; !masterServices.isStopped();<a name="line.869"></a>
+<span class="sourceLineNo">870</span>  }<a name="line.870"></a>
+<span class="sourceLineNo">871</span><a name="line.871"></a>
+<span class="sourceLineNo">872</span>  private void multiMutate(List&lt;Mutation&gt; mutations) throws IOException {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    CoprocessorRpcChannel channel = rsGroupTable.coprocessorService(ROW_KEY);<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    MultiRowMutationProtos.MutateRowsRequest.Builder mmrBuilder<a name="line.874"></a>
+<span class="sourceLineNo">875</span>      = MultiRowMutationProtos.MutateRowsRequest.newBuilder();<a name="line.875"></a>
+<span class="sourceLineNo">876</span>    for (Mutation mutation : mutations) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>      if (mutation instanceof Put) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        mmrBuilder.addMutationRequest(org.apache.hadoop.hbase.protobuf.ProtobufUtil.toMutation(<a name="line.878"></a>
+<span class="sourceLineNo">879</span>            org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto.MutationType.PUT,<a name="line.879"></a>
+<span class="sourceLineNo">880</span>           

<TRUNCATED>

[13/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
index 1baa676..17bca06 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.626">RSGroupInfoManagerImpl.RSGroupStartupWorker</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.713">RSGroupInfoManagerImpl.RSGroupStartupWorker</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></pre>
 </li>
 </ul>
@@ -255,7 +255,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.627">LOG</a></pre>
+<pre>private final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.714">LOG</a></pre>
 </li>
 </ul>
 <a name="online">
@@ -264,7 +264,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>online</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.628">online</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.715">online</a></pre>
 </li>
 </ul>
 </li>
@@ -281,7 +281,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSGroupStartupWorker</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.630">RSGroupStartupWorker</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.717">RSGroupStartupWorker</a>()</pre>
 </li>
 </ul>
 </li>
@@ -298,7 +298,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.635">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.722">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -313,7 +313,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForGroupTableOnline</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.642">waitForGroupTableOnline</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.729">waitForGroupTableOnline</a>()</pre>
 </li>
 </ul>
 <a name="createRSGroupTable--">
@@ -322,7 +322,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createRSGroupTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.751">createRSGroupTable</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.838">createRSGroupTable</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -336,7 +336,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isOnline</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.776">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.863">isOnline</a>()</pre>
 </li>
 </ul>
 </li>
@@ -367,7 +367,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
index b78bf01..c412241 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.573">RSGroupInfoManagerImpl.ServerEventsListenerThread</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.599">RSGroupInfoManagerImpl.ServerEventsListenerThread</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a></pre>
 <div class="block">Calls <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateDefaultServers-java.util.SortedSet-"><code>RSGroupInfoManagerImpl.updateDefaultServers(SortedSet)</code></a> to update list of known
@@ -271,7 +271,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.574">LOG</a></pre>
+<pre>private final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.600">LOG</a></pre>
 </li>
 </ul>
 <a name="changed">
@@ -280,7 +280,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockListLast">
 <li class="blockList">
 <h4>changed</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.575">changed</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.601">changed</a></pre>
 </li>
 </ul>
 </li>
@@ -297,7 +297,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ServerEventsListenerThread</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.577">ServerEventsListenerThread</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.603">ServerEventsListenerThread</a>()</pre>
 </li>
 </ul>
 </li>
@@ -314,7 +314,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>serverAdded</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.582">serverAdded</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.608">serverAdded</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverAdded-org.apache.hadoop.hbase.ServerName-">ServerListener</a></code></span></div>
 <div class="block">The server has joined the cluster.</div>
 <dl>
@@ -331,7 +331,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>serverRemoved</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.587">serverRemoved</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.613">serverRemoved</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">ServerListener</a></code></span></div>
 <div class="block">The server was removed from the cluster.</div>
 <dl>
@@ -348,7 +348,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>serverChanged</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.591">serverChanged</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.617">serverChanged</a>()</pre>
 </li>
 </ul>
 <a name="run--">
@@ -357,7 +357,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.597">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.623">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
index d0091db..4a25e08 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":9,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":9,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" target="_top">Frames</a></li>
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.115">RSGroupInfoManagerImpl</a>
+class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.117">RSGroupInfoManagerImpl</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a></pre>
 <div class="block">This is an implementation of <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup"><code>RSGroupInfoManager</code></a> which makes
@@ -159,10 +159,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.RSGroupStartupWorker</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.RSGroupStartupWorker</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a></span></code>
 <div class="block">Calls <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateDefaultServers-java.util.SortedSet-"><code>updateDefaultServers(SortedSet)</code></a> to update list of known
  servers.</div>
@@ -188,44 +192,48 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#conn">conn</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#failedOpenUpdaterThread">failedOpenUpdaterThread</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private static org.apache.commons.logging.Log</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#masterServices">masterServices</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#prevRSGroups">prevRSGroups</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#RSGROUP_TABLE_DESC">RSGROUP_TABLE_DESC</a></span></code>
 <div class="block">Table descriptor for <code>hbase:rsgroup</code> catalog table</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#rsGroupMap">rsGroupMap</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.RSGroupStartupWorker</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#rsGroupStartupWorker">rsGroupStartupWorker</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#rsGroupTable">rsGroupTable</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#serverEventsListenerThread">serverEventsListenerThread</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#tableMap">tableMap</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#watcher">watcher</a></span></code>&nbsp;</td>
 </tr>
@@ -235,7 +243,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <!--   -->
 </a>
 <h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.rsgroup.<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#META_FAMILY_BYTES">META_FAMILY_BYTES</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#META_QUALIFIER_BYTES">META_QUALIFIER_BYTES</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#ROW_KEY">ROW_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#RSGROUP_TABLE_NAME">RSGROUP_TABLE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#rsGroupZNode">rsGroupZNode</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#DEFAULT_REASSIGN_WAIT_INTERVAL">DEFAULT_REASSIGN_WAIT_INTERVAL</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#META_FAMILY_BYTES">META_FAMILY_BYTES</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#META_QUALIFIER_BYTES">META_QUALIFIER_BYTES</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#REASSIGN_WAIT_INTERVAL_KEY">REASSIGN_WAIT_INTERVAL_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#ROW_KEY">ROW_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#RSGROUP_TABLE_NAME">RSGROUP_TABLE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#rsGroupZNode">rsGroupZNode</a></code></li>
 </ul>
 </li>
 </ul>
@@ -417,6 +425,10 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateDefaultServers-java.util.SortedSet-">updateDefaultServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
 </tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateFailedAssignments--">updateFailedAssignments</a></span>()</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -445,7 +457,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.116">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.118">LOG</a></pre>
 </li>
 </ul>
 <a name="RSGROUP_TABLE_DESC">
@@ -454,7 +466,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>RSGROUP_TABLE_DESC</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.119">RSGROUP_TABLE_DESC</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.121">RSGROUP_TABLE_DESC</a></pre>
 <div class="block">Table descriptor for <code>hbase:rsgroup</code> catalog table</div>
 </li>
 </ul>
@@ -464,7 +476,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>rsGroupMap</h4>
-<pre>private volatile&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.135">rsGroupMap</a></pre>
+<pre>private volatile&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.137">rsGroupMap</a></pre>
 </li>
 </ul>
 <a name="tableMap">
@@ -473,7 +485,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>tableMap</h4>
-<pre>private volatile&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.136">tableMap</a></pre>
+<pre>private volatile&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.138">tableMap</a></pre>
 </li>
 </ul>
 <a name="masterServices">
@@ -482,7 +494,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>masterServices</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.138">masterServices</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.140">masterServices</a></pre>
 </li>
 </ul>
 <a name="rsGroupTable">
@@ -491,7 +503,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>rsGroupTable</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.139">rsGroupTable</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.141">rsGroupTable</a></pre>
 </li>
 </ul>
 <a name="conn">
@@ -500,7 +512,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>conn</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.140">conn</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.142">conn</a></pre>
 </li>
 </ul>
 <a name="watcher">
@@ -509,7 +521,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>watcher</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.141">watcher</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.143">watcher</a></pre>
 </li>
 </ul>
 <a name="rsGroupStartupWorker">
@@ -518,7 +530,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>rsGroupStartupWorker</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.RSGroupStartupWorker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.142">rsGroupStartupWorker</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.RSGroupStartupWorker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.144">rsGroupStartupWorker</a></pre>
 </li>
 </ul>
 <a name="prevRSGroups">
@@ -527,16 +539,25 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>prevRSGroups</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.144">prevRSGroups</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.146">prevRSGroups</a></pre>
 </li>
 </ul>
 <a name="serverEventsListenerThread">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>serverEventsListenerThread</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.145">serverEventsListenerThread</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.ServerEventsListenerThread</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.147">serverEventsListenerThread</a></pre>
+</li>
+</ul>
+<a name="failedOpenUpdaterThread">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>failedOpenUpdaterThread</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.149">failedOpenUpdaterThread</a></pre>
 </li>
 </ul>
 </li>
@@ -553,7 +574,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSGroupInfoManagerImpl</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.148">RSGroupInfoManagerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;masterServices)
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.151">RSGroupInfoManagerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;masterServices)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -575,7 +596,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>init</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.154">init</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.157">init</a>()
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -589,7 +610,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getInstance</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.161">getInstance</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.167">getInstance</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -603,7 +624,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>addRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.168">addRSGroup</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;rsGroupInfo)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.174">addRSGroup</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;rsGroupInfo)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#addRSGroup-org.apache.hadoop.hbase.rsgroup.RSGroupInfo-">RSGroupInfoManager</a></code></span></div>
 <div class="block">Add given RSGroupInfo to existing list of group infos.</div>
@@ -621,7 +642,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupInfo</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.179">getRSGroupInfo</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.185">getRSGroupInfo</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                             throws <a href="../../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -635,7 +656,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>moveServers</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.188">moveServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.194">moveServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcGroup,
                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dstGroup)
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -661,7 +682,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupOfServer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.217">getRSGroupOfServer</a>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;serverHostPort)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.223">getRSGroupOfServer</a>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;serverHostPort)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#getRSGroupOfServer-org.apache.hadoop.hbase.net.Address-">RSGroupInfoManager</a></code></span></div>
 <div class="block">Gets the group info of server.</div>
@@ -679,7 +700,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroup</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.227">getRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.233">getRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#getRSGroup-java.lang.String-">RSGroupInfoManager</a></code></span></div>
 <div class="block">Gets <code>RSGroupInfo</code> for the given group name.</div>
 <dl>
@@ -694,7 +715,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupOfTable</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.232">getRSGroupOfTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.238">getRSGroupOfTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#getRSGroupOfTable-org.apache.hadoop.hbase.TableName-">RSGroupInfoManager</a></code></span></div>
 <div class="block">Get the group membership of a table</div>
 <dl>
@@ -709,7 +730,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>moveTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.237">moveTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNames,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.243">moveTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNames,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#moveTables-java.util.Set-java.lang.String-">RSGroupInfoManager</a></code></span></div>
@@ -731,7 +752,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>removeRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.260">removeRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.266">removeRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#removeRSGroup-java.lang.String-">RSGroupInfoManager</a></code></span></div>
 <div class="block">Remove a region server group.</div>
@@ -749,7 +770,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>listRSGroups</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.271">listRSGroups</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.277">listRSGroups</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#listRSGroups--">RSGroupInfoManager</a></code></span></div>
 <div class="block">List the existing <code>RSGroupInfo</code>s.</div>
 <dl>
@@ -764,7 +785,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>isOnline</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.276">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.282">isOnline</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#isOnline--">RSGroupInfoManager</a></code></span></div>
 <div class="block">Whether the manager is able to fully return group metadata</div>
 <dl>
@@ -781,7 +802,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>moveServersAndTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.281">moveServersAndTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.287">moveServersAndTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcGroup,
                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dstGroup)
@@ -807,7 +828,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>retrieveGroupListFromGroupTable</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.305">retrieveGroupListFromGroupTable</a>()
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.311">retrieveGroupListFromGroupTable</a>()
                                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -821,7 +842,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>retrieveGroupListFromZookeeper</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.315">retrieveGroupListFromZookeeper</a>()
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.321">retrieveGroupListFromZookeeper</a>()
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -835,7 +856,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>refresh</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.340">refresh</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.346">refresh</a>()
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#refresh--">RSGroupInfoManager</a></code></span></div>
 <div class="block">Refresh/reload the group information from the persistent store</div>
@@ -853,7 +874,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>refresh</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.348">refresh</a>(boolean&nbsp;forceOnline)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.354">refresh</a>(boolean&nbsp;forceOnline)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Read rsgroup info from the source of truth, the hbase:rsgroup table.
  Update zk cache. Called on startup of the manager.</div>
@@ -869,7 +890,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>flushConfigTable</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.406">flushConfigTable</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;groupMap)
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.412">flushConfigTable</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;groupMap)
                                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -883,7 +904,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>flushConfig</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.436">flushConfig</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.442">flushConfig</a>()
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -897,7 +918,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>flushConfig</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.441">flushConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;newGroupMap)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.447">flushConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;newGroupMap)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -911,7 +932,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>resetRSGroupAndTableMaps</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.502">resetRSGroupAndTableMaps</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;newRSGroupMap,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.508">resetRSGroupAndTableMaps</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;newRSGroupMap,
                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;newTableMap)</pre>
 <div class="block">Make changes visible.
  Caller must be synchronized on 'this'.</div>
@@ -923,7 +944,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCacheOfRSGroups</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.514">updateCacheOfRSGroups</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;currentGroups)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.520">updateCacheOfRSGroups</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;currentGroups)</pre>
 <div class="block">Update cache of rsgroups.
  Caller must be synchronized on 'this'.</div>
 <dl>
@@ -938,7 +959,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineRS</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.520">getOnlineRS</a>()
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.526">getOnlineRS</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -952,7 +973,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getDefaultServers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.537">getDefaultServers</a>()
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.543">getDefaultServers</a>()
                                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -966,7 +987,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDefaultServers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.559">updateDefaultServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.565">updateDefaultServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -974,13 +995,22 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 </dl>
 </li>
 </ul>
+<a name="updateFailedAssignments--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateFailedAssignments</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.574">updateFailedAssignments</a>()</pre>
+</li>
+</ul>
 <a name="isMasterRunning-org.apache.hadoop.hbase.master.MasterServices-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>isMasterRunning</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.781">isMasterRunning</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;masterServices)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.868">isMasterRunning</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;masterServices)</pre>
 </li>
 </ul>
 <a name="multiMutate-java.util.List-">
@@ -989,7 +1019,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>multiMutate</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.785">multiMutate</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;mutations)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.872">multiMutate</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;mutations)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1003,7 +1033,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockListLast">
 <li class="blockList">
 <h4>checkGroupName</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.814">checkGroupName</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.901">checkGroupName</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                      throws <a href="../../../../../org/apache/hadoop/hbase/constraint/ConstraintException.html" title="class in org.apache.hadoop.hbase.constraint">ConstraintException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1040,7 +1070,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
new file mode 100644
index 0000000..370e1a5
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.rsgroup.RSGroupInfoManagerImpl.FailedOpenUpdaterThread (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.rsgroup.RSGroupInfoManagerImpl.FailedOpenUpdaterThread (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" target="_top">Frames</a></li>
+<li><a href="RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.rsgroup.RSGroupInfoManagerImpl.FailedOpenUpdaterThread" class="title">Uses of Class<br>org.apache.hadoop.hbase.rsgroup.RSGroupInfoManagerImpl.FailedOpenUpdaterThread</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.rsgroup">org.apache.hadoop.hbase.rsgroup</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.rsgroup">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a> in <a href="../../../../../../org/apache/hadoop/hbase/rsgroup/package-summary.html">org.apache.hadoop.hbase.rsgroup</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/rsgroup/package-summary.html">org.apache.hadoop.hbase.rsgroup</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupInfoManagerImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#failedOpenUpdaterThread">failedOpenUpdaterThread</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" target="_top">Frames</a></li>
+<li><a href="RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/rsgroup/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-summary.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-summary.html
index f4f2d93..356360d 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-summary.html
@@ -147,11 +147,11 @@
  use of an HBase table as the persistence store for the group information.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupProtobufUtil.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupProtobufUtil</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/Utility.html" title="class in org.apache.hadoop.hbase.rsgroup">Utility</a></td>
 <td class="colLast">
 <div class="block">Utility for this RSGroup package in hbase-rsgroup.</div>


[05/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
index 55ab0c0..27d1f37 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
@@ -44,787 +44,874 @@
 <span class="sourceLineNo">036</span><a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.commons.logging.Log;<a name="line.37"></a>
 <span class="sourceLineNo">038</span>import org.apache.commons.logging.LogFactory;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.Cell;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HConstants;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.MetaTableAccessor.DefaultVisitorBase;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.ServerName;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.TableName;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.Get;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.Put;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Result;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Table;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.net.Address;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.ProtobufMagic;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.security.access.AccessControlLists;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.zookeeper.KeeperException;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>import com.google.protobuf.ServiceException;<a name="line.88"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.conf.Configuration;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.Cell;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HConstants;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor.DefaultVisitorBase;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ServerName;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.TableName;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.Get;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Put;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Result;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.Table;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.net.Address;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.ProtobufMagic;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.security.access.AccessControlLists;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.zookeeper.KeeperException;<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.88"></a>
 <span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>/**<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * This is an implementation of {@link RSGroupInfoManager} which makes<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * use of an HBase table as the persistence store for the group information.<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * It also makes use of zookeeper to store group information needed<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * for bootstrapping during offline mode.<a name="line.94"></a>
-<span class="sourceLineNo">095</span> *<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;h2&gt;Concurrency&lt;/h2&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * RSGroup state is kept locally in Maps. There is a rsgroup name to cached<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * RSGroupInfo Map at {@link #rsGroupMap} and a Map of tables to the name of the<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * rsgroup they belong too (in {@link #tableMap}). These Maps are persisted to the<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * hbase:rsgroup table (and cached in zk) on each modification.<a name="line.100"></a>
-<span class="sourceLineNo">101</span> *<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * &lt;p&gt;Mutations on state are synchronized but reads can continue without having<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * to wait on an instance monitor, mutations do wholesale replace of the Maps on<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * update -- Copy-On-Write; the local Maps of state are read-only, just-in-case<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * (see flushConfig).<a name="line.105"></a>
-<span class="sourceLineNo">106</span> *<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * &lt;p&gt;Reads must not block else there is a danger we'll deadlock.<a name="line.107"></a>
+<span class="sourceLineNo">090</span>import com.google.protobuf.ServiceException;<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>/**<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * This is an implementation of {@link RSGroupInfoManager} which makes<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * use of an HBase table as the persistence store for the group information.<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * It also makes use of zookeeper to store group information needed<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * for bootstrapping during offline mode.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> *<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;h2&gt;Concurrency&lt;/h2&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * RSGroup state is kept locally in Maps. There is a rsgroup name to cached<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * RSGroupInfo Map at {@link #rsGroupMap} and a Map of tables to the name of the<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * rsgroup they belong too (in {@link #tableMap}). These Maps are persisted to the<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * hbase:rsgroup table (and cached in zk) on each modification.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> *<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * &lt;p&gt;Mutations on state are synchronized but reads can continue without having<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * to wait on an instance monitor, mutations do wholesale replace of the Maps on<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * update -- Copy-On-Write; the local Maps of state are read-only, just-in-case<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * (see flushConfig).<a name="line.107"></a>
 <span class="sourceLineNo">108</span> *<a name="line.108"></a>
-<span class="sourceLineNo">109</span> * &lt;p&gt;Clients of this class, the {@link RSGroupAdminEndpoint} for example, want to query and<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * then act on the results of the query modifying cache in zookeeper without another thread<a name="line.110"></a>
-<span class="sourceLineNo">111</span> * making intermediate modifications. These clients synchronize on the 'this' instance so<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * no other has access concurrently. Reads must be able to continue concurrently.<a name="line.112"></a>
-<span class="sourceLineNo">113</span> */<a name="line.113"></a>
-<span class="sourceLineNo">114</span>@InterfaceAudience.Private<a name="line.114"></a>
-<span class="sourceLineNo">115</span>class RSGroupInfoManagerImpl implements RSGroupInfoManager {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private static final Log LOG = LogFactory.getLog(RSGroupInfoManagerImpl.class);<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  /** Table descriptor for &lt;code&gt;hbase:rsgroup&lt;/code&gt; catalog table */<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  private final static HTableDescriptor RSGROUP_TABLE_DESC;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  static {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    RSGROUP_TABLE_DESC = new HTableDescriptor(RSGROUP_TABLE_NAME);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    RSGROUP_TABLE_DESC.addFamily(new HColumnDescriptor(META_FAMILY_BYTES));<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    RSGROUP_TABLE_DESC.setRegionSplitPolicyClassName(DisabledRegionSplitPolicy.class.getName());<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    try {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      RSGROUP_TABLE_DESC.addCoprocessor(<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        MultiRowMutationEndpoint.class.getName(),<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          null, Coprocessor.PRIORITY_SYSTEM, null);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    } catch (IOException ex) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      throw new RuntimeException(ex);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  // There two Maps are immutable and wholesale replaced on each modification<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  // so are safe to access concurrently. See class comment.<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  private volatile Map&lt;String, RSGroupInfo&gt; rsGroupMap = Collections.emptyMap();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>  private volatile Map&lt;TableName, String&gt; tableMap = Collections.emptyMap();<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private final MasterServices masterServices;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  private Table rsGroupTable;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  private final ClusterConnection conn;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  private final ZooKeeperWatcher watcher;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  private final RSGroupStartupWorker rsGroupStartupWorker = new RSGroupStartupWorker();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  // contains list of groups that were last flushed to persistent store<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private Set&lt;String&gt; prevRSGroups = new HashSet&lt;&gt;();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private final ServerEventsListenerThread serverEventsListenerThread =<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      new ServerEventsListenerThread();<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>  private RSGroupInfoManagerImpl(MasterServices masterServices) throws IOException {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    this.masterServices = masterServices;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    this.watcher = masterServices.getZooKeeper();<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    this.conn = masterServices.getClusterConnection();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private synchronized void init() throws IOException{<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    refresh();<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    rsGroupStartupWorker.start();<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    serverEventsListenerThread.start();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    masterServices.getServerManager().registerListener(serverEventsListenerThread);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  }<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  static RSGroupInfoManager getInstance(MasterServices master) throws IOException {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    RSGroupInfoManagerImpl instance = new RSGroupInfoManagerImpl(master);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    instance.init();<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    return instance;<a name="line.164"></a>
+<span class="sourceLineNo">109</span> * &lt;p&gt;Reads must not block else there is a danger we'll deadlock.<a name="line.109"></a>
+<span class="sourceLineNo">110</span> *<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * &lt;p&gt;Clients of this class, the {@link RSGroupAdminEndpoint} for example, want to query and<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * then act on the results of the query modifying cache in zookeeper without another thread<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * making intermediate modifications. These clients synchronize on the 'this' instance so<a name="line.113"></a>
+<span class="sourceLineNo">114</span> * no other has access concurrently. Reads must be able to continue concurrently.<a name="line.114"></a>
+<span class="sourceLineNo">115</span> */<a name="line.115"></a>
+<span class="sourceLineNo">116</span>@InterfaceAudience.Private<a name="line.116"></a>
+<span class="sourceLineNo">117</span>class RSGroupInfoManagerImpl implements RSGroupInfoManager {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private static final Log LOG = LogFactory.getLog(RSGroupInfoManagerImpl.class);<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  /** Table descriptor for &lt;code&gt;hbase:rsgroup&lt;/code&gt; catalog table */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  private final static HTableDescriptor RSGROUP_TABLE_DESC;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  static {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    RSGROUP_TABLE_DESC = new HTableDescriptor(RSGROUP_TABLE_NAME);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    RSGROUP_TABLE_DESC.addFamily(new HColumnDescriptor(META_FAMILY_BYTES));<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    RSGROUP_TABLE_DESC.setRegionSplitPolicyClassName(DisabledRegionSplitPolicy.class.getName());<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    try {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      RSGROUP_TABLE_DESC.addCoprocessor(<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        MultiRowMutationEndpoint.class.getName(),<a name="line.128"></a>
+<span class="sourceLineNo">129</span>          null, Coprocessor.PRIORITY_SYSTEM, null);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    } catch (IOException ex) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      throw new RuntimeException(ex);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>  // There two Maps are immutable and wholesale replaced on each modification<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // so are safe to access concurrently. See class comment.<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  private volatile Map&lt;String, RSGroupInfo&gt; rsGroupMap = Collections.emptyMap();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  private volatile Map&lt;TableName, String&gt; tableMap = Collections.emptyMap();<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>  private final MasterServices masterServices;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  private Table rsGroupTable;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private final ClusterConnection conn;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  private final ZooKeeperWatcher watcher;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  private final RSGroupStartupWorker rsGroupStartupWorker = new RSGroupStartupWorker();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  // contains list of groups that were last flushed to persistent store<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  private Set&lt;String&gt; prevRSGroups = new HashSet&lt;&gt;();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final ServerEventsListenerThread serverEventsListenerThread =<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      new ServerEventsListenerThread();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  private FailedOpenUpdaterThread failedOpenUpdaterThread;<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private RSGroupInfoManagerImpl(MasterServices masterServices) throws IOException {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    this.masterServices = masterServices;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    this.watcher = masterServices.getZooKeeper();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    this.conn = masterServices.getClusterConnection();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private synchronized void init() throws IOException{<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    refresh();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    rsGroupStartupWorker.start();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    serverEventsListenerThread.start();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    masterServices.getServerManager().registerListener(serverEventsListenerThread);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    failedOpenUpdaterThread = new FailedOpenUpdaterThread(masterServices.getConfiguration());<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    failedOpenUpdaterThread.start();<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    masterServices.getServerManager().registerListener(failedOpenUpdaterThread);<a name="line.164"></a>
 <span class="sourceLineNo">165</span>  }<a name="line.165"></a>
 <span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  @Override<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  public synchronized void addRSGroup(RSGroupInfo rsGroupInfo) throws IOException {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    checkGroupName(rsGroupInfo.getName());<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    if (rsGroupMap.get(rsGroupInfo.getName()) != null ||<a name="line.170"></a>
-<span class="sourceLineNo">171</span>        rsGroupInfo.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      throw new DoNotRetryIOException("Group already exists: "+ rsGroupInfo.getName());<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    newGroupMap.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    flushConfig(newGroupMap);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private RSGroupInfo getRSGroupInfo(final String groupName) throws DoNotRetryIOException {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    RSGroupInfo rsGroupInfo = getRSGroup(groupName);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    if (rsGroupInfo == null) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      throw new DoNotRetryIOException("RSGroup " + groupName + " does not exist");<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    return rsGroupInfo;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  }<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>  @Override<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public synchronized Set&lt;Address&gt; moveServers(Set&lt;Address&gt; servers, String srcGroup,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      String dstGroup) throws IOException {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    RSGroupInfo src = getRSGroupInfo(srcGroup);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    RSGroupInfo dst = getRSGroupInfo(dstGroup);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    // If destination is 'default' rsgroup, only add servers that are online. If not online, drop<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    // it. If not 'default' group, add server to 'dst' rsgroup EVEN IF IT IS NOT online (could be a<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    // rsgroup of dead servers that are to come back later).<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    Set&lt;Address&gt; onlineServers = dst.getName().equals(RSGroupInfo.DEFAULT_GROUP)?<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        Utility.getOnlineServers(this.masterServices): null;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    for (Address el: servers) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      src.removeServer(el);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      if (onlineServers != null) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        if (!onlineServers.contains(el)) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          if (LOG.isDebugEnabled()) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>            LOG.debug("Dropping " + el + " during move-to-default rsgroup because not online");<a name="line.202"></a>
-<span class="sourceLineNo">203</span>          }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>          continue;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      dst.addServer(el);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    newGroupMap.put(src.getName(), src);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    newGroupMap.put(dst.getName(), dst);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    flushConfig(newGroupMap);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    return dst.getServers();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>  @Override<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  public RSGroupInfo getRSGroupOfServer(Address serverHostPort) throws IOException {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    for (RSGroupInfo info: rsGroupMap.values()) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      if (info.containsServer(serverHostPort)) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        return info;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    return null;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  @Override<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public RSGroupInfo getRSGroup(String groupName) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    return rsGroupMap.get(groupName);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  @Override<a name="line.231"></a>
-<span class="sourceLineNo">232</span>  public String getRSGroupOfTable(TableName tableName) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    return tableMap.get(tableName);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>  @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  public synchronized void moveTables(Set&lt;TableName&gt; tableNames, String groupName)<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    if (groupName != null &amp;&amp; !rsGroupMap.containsKey(groupName)) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      throw new DoNotRetryIOException("Group "+groupName+" does not exist or is a special group");<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    for(TableName tableName: tableNames) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      if (tableMap.containsKey(tableName)) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        RSGroupInfo src = new RSGroupInfo(newGroupMap.get(tableMap.get(tableName)));<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        src.removeTable(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        newGroupMap.put(src.getName(), src);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      if(groupName != null) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        RSGroupInfo dst = new RSGroupInfo(newGroupMap.get(groupName));<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        dst.addTable(tableName);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        newGroupMap.put(dst.getName(), dst);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      }<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    flushConfig(newGroupMap);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>  }<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span>  @Override<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  public synchronized void removeRSGroup(String groupName) throws IOException {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    if (!rsGroupMap.containsKey(groupName) || groupName.equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      throw new DoNotRetryIOException("Group " + groupName + " does not exist or is a reserved "<a name="line.262"></a>
-<span class="sourceLineNo">263</span>          + "group");<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    newGroupMap.remove(groupName);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    flushConfig(newGroupMap);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>  @Override<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  public List&lt;RSGroupInfo&gt; listRSGroups() {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    return Lists.newLinkedList(rsGroupMap.values());<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  }<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>  public boolean isOnline() {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    return rsGroupStartupWorker.isOnline();<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  @Override<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  public void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>                                   String srcGroup, String dstGroup) throws IOException {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //get server's group<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    RSGroupInfo srcGroupInfo = getRSGroupInfo(srcGroup);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    RSGroupInfo dstGroupInfo = getRSGroupInfo(dstGroup);<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    //move servers<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    for (Address el: servers) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      srcGroupInfo.removeServer(el);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      dstGroupInfo.addServer(el);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    //move tables<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    for(TableName tableName: tables) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      srcGroupInfo.removeTable(tableName);<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      dstGroupInfo.addTable(tableName);<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    }<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>    //flush changed groupinfo<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    newGroupMap.put(srcGroupInfo.getName(), srcGroupInfo);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    newGroupMap.put(dstGroupInfo.getName(), dstGroupInfo);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    flushConfig(newGroupMap);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.308"></a>
-<span class="sourceLineNo">309</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    }<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    return rsGroupInfoList;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    //Overwrite any info stored by table, this takes precedence<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    try {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          byte[] data = ZKUtil.getData(watcher, ZKUtil.joinZNode(groupBasePath, znode));<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          if(data.length &gt; 0) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.327"></a>
-<span class="sourceLineNo">328</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.328"></a>
-<span class="sourceLineNo">329</span>          }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      }<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    return RSGroupInfoList;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  public void refresh() throws IOException {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    refresh(false);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span>  /**<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   * Update zk cache. Called on startup of the manager.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   */<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    // if online read from GROUP table<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    if (forceOnline || isOnline()) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      LOG.debug("Refreshing in Online mode.");<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      if (rsGroupTable == null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    } else {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>    // refresh default group, prune<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.367"></a>
+<span class="sourceLineNo">167</span>  static RSGroupInfoManager getInstance(MasterServices master) throws IOException {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    RSGroupInfoManagerImpl instance = new RSGroupInfoManagerImpl(master);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    instance.init();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    return instance;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  @Override<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public synchronized void addRSGroup(RSGroupInfo rsGroupInfo) throws IOException {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    checkGroupName(rsGroupInfo.getName());<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    if (rsGroupMap.get(rsGroupInfo.getName()) != null ||<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        rsGroupInfo.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      throw new DoNotRetryIOException("Group already exists: "+ rsGroupInfo.getName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    newGroupMap.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    flushConfig(newGroupMap);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  private RSGroupInfo getRSGroupInfo(final String groupName) throws DoNotRetryIOException {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    RSGroupInfo rsGroupInfo = getRSGroup(groupName);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    if (rsGroupInfo == null) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      throw new DoNotRetryIOException("RSGroup " + groupName + " does not exist");<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    return rsGroupInfo;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>  }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>  @Override<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public synchronized Set&lt;Address&gt; moveServers(Set&lt;Address&gt; servers, String srcGroup,<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      String dstGroup) throws IOException {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    RSGroupInfo src = getRSGroupInfo(srcGroup);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    RSGroupInfo dst = getRSGroupInfo(dstGroup);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // If destination is 'default' rsgroup, only add servers that are online. If not online, drop<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // it. If not 'default' group, add server to 'dst' rsgroup EVEN IF IT IS NOT online (could be a<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    // rsgroup of dead servers that are to come back later).<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    Set&lt;Address&gt; onlineServers = dst.getName().equals(RSGroupInfo.DEFAULT_GROUP)?<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        Utility.getOnlineServers(this.masterServices): null;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    for (Address el: servers) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      src.removeServer(el);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      if (onlineServers != null) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (!onlineServers.contains(el)) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          if (LOG.isDebugEnabled()) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>            LOG.debug("Dropping " + el + " during move-to-default rsgroup because not online");<a name="line.208"></a>
+<span class="sourceLineNo">209</span>          }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>          continue;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      dst.addServer(el);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    newGroupMap.put(src.getName(), src);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    newGroupMap.put(dst.getName(), dst);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    flushConfig(newGroupMap);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    return dst.getServers();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  @Override<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  public RSGroupInfo getRSGroupOfServer(Address serverHostPort) throws IOException {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    for (RSGroupInfo info: rsGroupMap.values()) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      if (info.containsServer(serverHostPort)) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        return info;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    return null;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public RSGroupInfo getRSGroup(String groupName) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    return rsGroupMap.get(groupName);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  public String getRSGroupOfTable(TableName tableName) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    return tableMap.get(tableName);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>  @Override<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  public synchronized void moveTables(Set&lt;TableName&gt; tableNames, String groupName)<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      throws IOException {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    if (groupName != null &amp;&amp; !rsGroupMap.containsKey(groupName)) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      throw new DoNotRetryIOException("Group "+groupName+" does not exist or is a special group");<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    for(TableName tableName: tableNames) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      if (tableMap.containsKey(tableName)) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        RSGroupInfo src = new RSGroupInfo(newGroupMap.get(tableMap.get(tableName)));<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        src.removeTable(tableName);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        newGroupMap.put(src.getName(), src);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      if(groupName != null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        RSGroupInfo dst = new RSGroupInfo(newGroupMap.get(groupName));<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        dst.addTable(tableName);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        newGroupMap.put(dst.getName(), dst);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    flushConfig(newGroupMap);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  public synchronized void removeRSGroup(String groupName) throws IOException {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    if (!rsGroupMap.containsKey(groupName) || groupName.equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      throw new DoNotRetryIOException("Group " + groupName + " does not exist or is a reserved "<a name="line.268"></a>
+<span class="sourceLineNo">269</span>          + "group");<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    newGroupMap.remove(groupName);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    flushConfig(newGroupMap);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>  public List&lt;RSGroupInfo&gt; listRSGroups() {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return Lists.newLinkedList(rsGroupMap.values());<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public boolean isOnline() {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    return rsGroupStartupWorker.isOnline();<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  public void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                   String srcGroup, String dstGroup) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    //get server's group<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    RSGroupInfo srcGroupInfo = getRSGroupInfo(srcGroup);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    RSGroupInfo dstGroupInfo = getRSGroupInfo(dstGroup);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    //move servers<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    for (Address el: servers) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      srcGroupInfo.removeServer(el);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      dstGroupInfo.addServer(el);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    //move tables<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    for(TableName tableName: tables) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      srcGroupInfo.removeTable(tableName);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      dstGroupInfo.addTable(tableName);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    //flush changed groupinfo<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    newGroupMap.put(srcGroupInfo.getName(), srcGroupInfo);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    newGroupMap.put(dstGroupInfo.getName(), dstGroupInfo);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    flushConfig(newGroupMap);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.314"></a>
+<span class="sourceLineNo">315</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    return rsGroupInfoList;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    //Overwrite any info stored by table, this takes precedence<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    try {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          byte[] data = ZKUtil.getData(watcher, ZKUtil.joinZNode(groupBasePath, znode));<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          if(data.length &gt; 0) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.334"></a>
+<span class="sourceLineNo">335</span>          }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return RSGroupInfoList;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public void refresh() throws IOException {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    refresh(false);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  /**<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   * Update zk cache. Called on startup of the manager.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   */<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    // if online read from GROUP table<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    if (forceOnline || isOnline()) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      LOG.debug("Refreshing in Online mode.");<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      if (rsGroupTable == null) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    } else {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.367"></a>
 <span class="sourceLineNo">368</span>    }<a name="line.368"></a>
 <span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    final List&lt;TableName&gt; specialTables;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    if(!masterServices.isInitialized()) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.372"></a>
-<span class="sourceLineNo">373</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    } else {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      specialTables =<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>    for (TableName table : specialTables) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      orphanTables.add(table);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    }<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    for (RSGroupInfo group: groupList) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        orphanTables.removeAll(group.getTables());<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    // from region group table or zk<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        orphanTables));<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>    // populate the data<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    for (RSGroupInfo group : groupList) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      newGroupMap.put(group.getName(), group);<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      for(TableName table: group.getTables()) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        newTableMap.put(table, group.getName());<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      throws IOException {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>    // populate deletes<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    for(String groupName : prevRSGroups) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      if(!groupMap.containsKey(groupName)) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        mutations.add(d);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>    // populate puts<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      mutations.add(p);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>    if(mutations.size() &gt; 0) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      multiMutate(mutations);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return newTableMap;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
+<span class="sourceLineNo">370</span>    // refresh default group, prune<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>    final List&lt;TableName&gt; specialTables;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    if(!masterServices.isInitialized()) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.378"></a>
+<span class="sourceLineNo">379</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    } else {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      specialTables =<a name="line.381"></a>
+<span class="sourceLineNo">382</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>    for (TableName table : specialTables) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      orphanTables.add(table);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    for (RSGroupInfo group: groupList) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        orphanTables.removeAll(group.getTables());<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    // from region group table or zk<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        orphanTables));<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>    // populate the data<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    for (RSGroupInfo group : groupList) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      newGroupMap.put(group.getName(), group);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      for(TableName table: group.getTables()) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        newTableMap.put(table, group.getName());<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    }<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      throws IOException {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>    // populate deletes<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    for(String groupName : prevRSGroups) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      if(!groupMap.containsKey(groupName)) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        mutations.add(d);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    // populate puts<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      mutations.add(p);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  private synchronized void flushConfig()<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  throws IOException {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    flushConfig(this.rsGroupMap);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    // For offline mode persistence is still unavailable<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    // We're refreshing in-memory state but only for default servers<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    if (!isOnline()) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      if (!m.equals(newGroupMap) ||<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      rsGroupMap = newGroupMap;<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      return;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>    // Make changes visible after having been persisted to the source of truth<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>    try {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      for(String groupName : prevRSGroups) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          String znode = ZKUtil.joinZNode(groupBasePath, groupName);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        String znode = ZKUtil.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        LOG.debug("Updating znode: "+znode);<a name="line.481"></a>
-<span class="sourceLineNo">482</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.482"></a>
-<span class="sourceLineNo">483</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.483"></a>
-<span class="sourceLineNo">484</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    } catch (KeeperException e) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.495"></a>
-<span class="sourceLineNo">496</span>  }<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>  /**<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * Make changes visible.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * Caller must be synchronized on 'this'.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   */<a name="line.501"></a>
-<span class="sourceLineNo">502</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    // Make maps Immutable.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
-<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>  /**<a name="line.509"></a>
-<span class="sourceLineNo">510</span>   * Update cache of rsgroups.<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * Caller must be synchronized on 'this'.<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * @param currentGroups Current list of Groups.<a nam

<TRUNCATED>

[08/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
index 3141f69..a5f6a1a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
@@ -44,84 +44,88 @@
 <span class="sourceLineNo">036</span> */<a name="line.36"></a>
 <span class="sourceLineNo">037</span>@InterfaceAudience.Private<a name="line.37"></a>
 <span class="sourceLineNo">038</span>public interface RSGroupInfoManager {<a name="line.38"></a>
-<span class="sourceLineNo">039</span>  //Assigned before user tables<a name="line.39"></a>
-<span class="sourceLineNo">040</span>  TableName RSGROUP_TABLE_NAME =<a name="line.40"></a>
-<span class="sourceLineNo">041</span>      TableName.valueOf(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR, "rsgroup");<a name="line.41"></a>
-<span class="sourceLineNo">042</span>  String rsGroupZNode = "rsgroup";<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  byte[] META_FAMILY_BYTES = Bytes.toBytes("m");<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  byte[] META_QUALIFIER_BYTES = Bytes.toBytes("i");<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  byte[] ROW_KEY = {0};<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  /**<a name="line.47"></a>
-<span class="sourceLineNo">048</span>   * Add given RSGroupInfo to existing list of group infos.<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  void addRSGroup(RSGroupInfo rsGroupInfo) throws IOException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * Remove a region server group.<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  void removeRSGroup(String groupName) throws IOException;<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  /**<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   * Move servers to a new group.<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   * @param servers list of servers, must be part of the same group<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   * @param srcGroup groupName being moved from<a name="line.60"></a>
-<span class="sourceLineNo">061</span>   * @param dstGroup groupName being moved to<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   * @return Set of servers moved (May be a subset of {@code servers}).<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   */<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  Set&lt;Address&gt; moveServers(Set&lt;Address&gt; servers, String srcGroup, String dstGroup)<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      throws IOException;<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  /**<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * Gets the group info of server.<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  RSGroupInfo getRSGroupOfServer(Address serverHostPort) throws IOException;<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>  /**<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   * Gets {@code RSGroupInfo} for the given group name.<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   */<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  RSGroupInfo getRSGroup(String groupName) throws IOException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * Get the group membership of a table<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  String getRSGroupOfTable(TableName tableName) throws IOException;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  /**<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   * Set the group membership of a set of tables<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   *<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * @param tableNames set of tables to move<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * @param groupName name of group of tables to move to<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  void moveTables(Set&lt;TableName&gt; tableNames, String groupName) throws IOException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>  /**<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   * List the existing {@code RSGroupInfo}s.<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   */<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  List&lt;RSGroupInfo&gt; listRSGroups() throws IOException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  /**<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * Refresh/reload the group information from the persistent store<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  void refresh() throws IOException;<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>  /**<a name="line.100"></a>
-<span class="sourceLineNo">101</span>   * Whether the manager is able to fully return group metadata<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   *<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * @return whether the manager is in online mode<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   */<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  boolean isOnline();<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  /**<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * Move servers and tables to a new group.<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * @param servers list of servers, must be part of the same group<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * @param tables set of tables to move<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * @param srcGroup groupName being moved from<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * @param dstGroup groupName being moved to<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   */<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      String srcGroup, String dstGroup) throws IOException;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>}<a name="line.116"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  String REASSIGN_WAIT_INTERVAL_KEY = "hbase.rsgroup.reassign.wait";<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  long DEFAULT_REASSIGN_WAIT_INTERVAL = 30 * 1000L;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  //Assigned before user tables<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  TableName RSGROUP_TABLE_NAME =<a name="line.44"></a>
+<span class="sourceLineNo">045</span>      TableName.valueOf(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR, "rsgroup");<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  String rsGroupZNode = "rsgroup";<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  byte[] META_FAMILY_BYTES = Bytes.toBytes("m");<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  byte[] META_QUALIFIER_BYTES = Bytes.toBytes("i");<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  byte[] ROW_KEY = {0};<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  /**<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   * Add given RSGroupInfo to existing list of group infos.<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  void addRSGroup(RSGroupInfo rsGroupInfo) throws IOException;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * Remove a region server group.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  void removeRSGroup(String groupName) throws IOException;<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   * Move servers to a new group.<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * @param servers list of servers, must be part of the same group<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   * @param srcGroup groupName being moved from<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   * @param dstGroup groupName being moved to<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   * @return Set of servers moved (May be a subset of {@code servers}).<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  Set&lt;Address&gt; moveServers(Set&lt;Address&gt; servers, String srcGroup, String dstGroup)<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      throws IOException;<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  /**<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   * Gets the group info of server.<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   */<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  RSGroupInfo getRSGroupOfServer(Address serverHostPort) throws IOException;<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   * Gets {@code RSGroupInfo} for the given group name.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  RSGroupInfo getRSGroup(String groupName) throws IOException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>  /**<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   * Get the group membership of a table<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  String getRSGroupOfTable(TableName tableName) throws IOException;<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * Set the group membership of a set of tables<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   *<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * @param tableNames set of tables to move<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @param groupName name of group of tables to move to<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  void moveTables(Set&lt;TableName&gt; tableNames, String groupName) throws IOException;<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   * List the existing {@code RSGroupInfo}s.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  List&lt;RSGroupInfo&gt; listRSGroups() throws IOException;<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  /**<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * Refresh/reload the group information from the persistent store<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   */<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  void refresh() throws IOException;<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  /**<a name="line.104"></a>
+<span class="sourceLineNo">105</span>   * Whether the manager is able to fully return group metadata<a name="line.105"></a>
+<span class="sourceLineNo">106</span>   *<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * @return whether the manager is in online mode<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   */<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  boolean isOnline();<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>  /**<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * Move servers and tables to a new group.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * @param servers list of servers, must be part of the same group<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * @param tables set of tables to move<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * @param srcGroup groupName being moved from<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * @param dstGroup groupName being moved to<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      String srcGroup, String dstGroup) throws IOException;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>}<a name="line.120"></a>
 
 
 


[06/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
index 55ab0c0..27d1f37 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
@@ -44,787 +44,874 @@
 <span class="sourceLineNo">036</span><a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.commons.logging.Log;<a name="line.37"></a>
 <span class="sourceLineNo">038</span>import org.apache.commons.logging.LogFactory;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.Cell;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HConstants;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.MetaTableAccessor.DefaultVisitorBase;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.ServerName;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.TableName;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.Get;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.Put;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Result;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Table;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.net.Address;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.ProtobufMagic;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.security.access.AccessControlLists;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.zookeeper.KeeperException;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>import com.google.protobuf.ServiceException;<a name="line.88"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.conf.Configuration;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.Cell;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HConstants;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor.DefaultVisitorBase;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ServerName;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.TableName;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.Get;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Put;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Result;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.Table;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.net.Address;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.ProtobufMagic;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.security.access.AccessControlLists;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.zookeeper.KeeperException;<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.88"></a>
 <span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>/**<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * This is an implementation of {@link RSGroupInfoManager} which makes<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * use of an HBase table as the persistence store for the group information.<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * It also makes use of zookeeper to store group information needed<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * for bootstrapping during offline mode.<a name="line.94"></a>
-<span class="sourceLineNo">095</span> *<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;h2&gt;Concurrency&lt;/h2&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * RSGroup state is kept locally in Maps. There is a rsgroup name to cached<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * RSGroupInfo Map at {@link #rsGroupMap} and a Map of tables to the name of the<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * rsgroup they belong too (in {@link #tableMap}). These Maps are persisted to the<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * hbase:rsgroup table (and cached in zk) on each modification.<a name="line.100"></a>
-<span class="sourceLineNo">101</span> *<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * &lt;p&gt;Mutations on state are synchronized but reads can continue without having<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * to wait on an instance monitor, mutations do wholesale replace of the Maps on<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * update -- Copy-On-Write; the local Maps of state are read-only, just-in-case<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * (see flushConfig).<a name="line.105"></a>
-<span class="sourceLineNo">106</span> *<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * &lt;p&gt;Reads must not block else there is a danger we'll deadlock.<a name="line.107"></a>
+<span class="sourceLineNo">090</span>import com.google.protobuf.ServiceException;<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>/**<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * This is an implementation of {@link RSGroupInfoManager} which makes<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * use of an HBase table as the persistence store for the group information.<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * It also makes use of zookeeper to store group information needed<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * for bootstrapping during offline mode.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> *<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;h2&gt;Concurrency&lt;/h2&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * RSGroup state is kept locally in Maps. There is a rsgroup name to cached<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * RSGroupInfo Map at {@link #rsGroupMap} and a Map of tables to the name of the<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * rsgroup they belong too (in {@link #tableMap}). These Maps are persisted to the<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * hbase:rsgroup table (and cached in zk) on each modification.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> *<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * &lt;p&gt;Mutations on state are synchronized but reads can continue without having<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * to wait on an instance monitor, mutations do wholesale replace of the Maps on<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * update -- Copy-On-Write; the local Maps of state are read-only, just-in-case<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * (see flushConfig).<a name="line.107"></a>
 <span class="sourceLineNo">108</span> *<a name="line.108"></a>
-<span class="sourceLineNo">109</span> * &lt;p&gt;Clients of this class, the {@link RSGroupAdminEndpoint} for example, want to query and<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * then act on the results of the query modifying cache in zookeeper without another thread<a name="line.110"></a>
-<span class="sourceLineNo">111</span> * making intermediate modifications. These clients synchronize on the 'this' instance so<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * no other has access concurrently. Reads must be able to continue concurrently.<a name="line.112"></a>
-<span class="sourceLineNo">113</span> */<a name="line.113"></a>
-<span class="sourceLineNo">114</span>@InterfaceAudience.Private<a name="line.114"></a>
-<span class="sourceLineNo">115</span>class RSGroupInfoManagerImpl implements RSGroupInfoManager {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private static final Log LOG = LogFactory.getLog(RSGroupInfoManagerImpl.class);<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  /** Table descriptor for &lt;code&gt;hbase:rsgroup&lt;/code&gt; catalog table */<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  private final static HTableDescriptor RSGROUP_TABLE_DESC;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  static {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    RSGROUP_TABLE_DESC = new HTableDescriptor(RSGROUP_TABLE_NAME);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    RSGROUP_TABLE_DESC.addFamily(new HColumnDescriptor(META_FAMILY_BYTES));<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    RSGROUP_TABLE_DESC.setRegionSplitPolicyClassName(DisabledRegionSplitPolicy.class.getName());<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    try {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      RSGROUP_TABLE_DESC.addCoprocessor(<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        MultiRowMutationEndpoint.class.getName(),<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          null, Coprocessor.PRIORITY_SYSTEM, null);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    } catch (IOException ex) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      throw new RuntimeException(ex);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  // There two Maps are immutable and wholesale replaced on each modification<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  // so are safe to access concurrently. See class comment.<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  private volatile Map&lt;String, RSGroupInfo&gt; rsGroupMap = Collections.emptyMap();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>  private volatile Map&lt;TableName, String&gt; tableMap = Collections.emptyMap();<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private final MasterServices masterServices;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  private Table rsGroupTable;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  private final ClusterConnection conn;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  private final ZooKeeperWatcher watcher;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  private final RSGroupStartupWorker rsGroupStartupWorker = new RSGroupStartupWorker();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  // contains list of groups that were last flushed to persistent store<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private Set&lt;String&gt; prevRSGroups = new HashSet&lt;&gt;();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private final ServerEventsListenerThread serverEventsListenerThread =<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      new ServerEventsListenerThread();<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>  private RSGroupInfoManagerImpl(MasterServices masterServices) throws IOException {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    this.masterServices = masterServices;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    this.watcher = masterServices.getZooKeeper();<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    this.conn = masterServices.getClusterConnection();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private synchronized void init() throws IOException{<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    refresh();<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    rsGroupStartupWorker.start();<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    serverEventsListenerThread.start();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    masterServices.getServerManager().registerListener(serverEventsListenerThread);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  }<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  static RSGroupInfoManager getInstance(MasterServices master) throws IOException {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    RSGroupInfoManagerImpl instance = new RSGroupInfoManagerImpl(master);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    instance.init();<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    return instance;<a name="line.164"></a>
+<span class="sourceLineNo">109</span> * &lt;p&gt;Reads must not block else there is a danger we'll deadlock.<a name="line.109"></a>
+<span class="sourceLineNo">110</span> *<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * &lt;p&gt;Clients of this class, the {@link RSGroupAdminEndpoint} for example, want to query and<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * then act on the results of the query modifying cache in zookeeper without another thread<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * making intermediate modifications. These clients synchronize on the 'this' instance so<a name="line.113"></a>
+<span class="sourceLineNo">114</span> * no other has access concurrently. Reads must be able to continue concurrently.<a name="line.114"></a>
+<span class="sourceLineNo">115</span> */<a name="line.115"></a>
+<span class="sourceLineNo">116</span>@InterfaceAudience.Private<a name="line.116"></a>
+<span class="sourceLineNo">117</span>class RSGroupInfoManagerImpl implements RSGroupInfoManager {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private static final Log LOG = LogFactory.getLog(RSGroupInfoManagerImpl.class);<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  /** Table descriptor for &lt;code&gt;hbase:rsgroup&lt;/code&gt; catalog table */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  private final static HTableDescriptor RSGROUP_TABLE_DESC;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  static {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    RSGROUP_TABLE_DESC = new HTableDescriptor(RSGROUP_TABLE_NAME);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    RSGROUP_TABLE_DESC.addFamily(new HColumnDescriptor(META_FAMILY_BYTES));<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    RSGROUP_TABLE_DESC.setRegionSplitPolicyClassName(DisabledRegionSplitPolicy.class.getName());<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    try {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      RSGROUP_TABLE_DESC.addCoprocessor(<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        MultiRowMutationEndpoint.class.getName(),<a name="line.128"></a>
+<span class="sourceLineNo">129</span>          null, Coprocessor.PRIORITY_SYSTEM, null);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    } catch (IOException ex) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      throw new RuntimeException(ex);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>  // There two Maps are immutable and wholesale replaced on each modification<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // so are safe to access concurrently. See class comment.<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  private volatile Map&lt;String, RSGroupInfo&gt; rsGroupMap = Collections.emptyMap();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  private volatile Map&lt;TableName, String&gt; tableMap = Collections.emptyMap();<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>  private final MasterServices masterServices;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  private Table rsGroupTable;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private final ClusterConnection conn;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  private final ZooKeeperWatcher watcher;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  private final RSGroupStartupWorker rsGroupStartupWorker = new RSGroupStartupWorker();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  // contains list of groups that were last flushed to persistent store<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  private Set&lt;String&gt; prevRSGroups = new HashSet&lt;&gt;();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final ServerEventsListenerThread serverEventsListenerThread =<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      new ServerEventsListenerThread();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  private FailedOpenUpdaterThread failedOpenUpdaterThread;<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private RSGroupInfoManagerImpl(MasterServices masterServices) throws IOException {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    this.masterServices = masterServices;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    this.watcher = masterServices.getZooKeeper();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    this.conn = masterServices.getClusterConnection();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private synchronized void init() throws IOException{<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    refresh();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    rsGroupStartupWorker.start();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    serverEventsListenerThread.start();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    masterServices.getServerManager().registerListener(serverEventsListenerThread);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    failedOpenUpdaterThread = new FailedOpenUpdaterThread(masterServices.getConfiguration());<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    failedOpenUpdaterThread.start();<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    masterServices.getServerManager().registerListener(failedOpenUpdaterThread);<a name="line.164"></a>
 <span class="sourceLineNo">165</span>  }<a name="line.165"></a>
 <span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  @Override<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  public synchronized void addRSGroup(RSGroupInfo rsGroupInfo) throws IOException {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    checkGroupName(rsGroupInfo.getName());<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    if (rsGroupMap.get(rsGroupInfo.getName()) != null ||<a name="line.170"></a>
-<span class="sourceLineNo">171</span>        rsGroupInfo.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      throw new DoNotRetryIOException("Group already exists: "+ rsGroupInfo.getName());<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    newGroupMap.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    flushConfig(newGroupMap);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private RSGroupInfo getRSGroupInfo(final String groupName) throws DoNotRetryIOException {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    RSGroupInfo rsGroupInfo = getRSGroup(groupName);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    if (rsGroupInfo == null) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      throw new DoNotRetryIOException("RSGroup " + groupName + " does not exist");<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    return rsGroupInfo;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  }<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>  @Override<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public synchronized Set&lt;Address&gt; moveServers(Set&lt;Address&gt; servers, String srcGroup,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      String dstGroup) throws IOException {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    RSGroupInfo src = getRSGroupInfo(srcGroup);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    RSGroupInfo dst = getRSGroupInfo(dstGroup);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    // If destination is 'default' rsgroup, only add servers that are online. If not online, drop<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    // it. If not 'default' group, add server to 'dst' rsgroup EVEN IF IT IS NOT online (could be a<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    // rsgroup of dead servers that are to come back later).<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    Set&lt;Address&gt; onlineServers = dst.getName().equals(RSGroupInfo.DEFAULT_GROUP)?<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        Utility.getOnlineServers(this.masterServices): null;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    for (Address el: servers) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      src.removeServer(el);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      if (onlineServers != null) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        if (!onlineServers.contains(el)) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          if (LOG.isDebugEnabled()) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>            LOG.debug("Dropping " + el + " during move-to-default rsgroup because not online");<a name="line.202"></a>
-<span class="sourceLineNo">203</span>          }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>          continue;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      dst.addServer(el);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    newGroupMap.put(src.getName(), src);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    newGroupMap.put(dst.getName(), dst);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    flushConfig(newGroupMap);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    return dst.getServers();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>  @Override<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  public RSGroupInfo getRSGroupOfServer(Address serverHostPort) throws IOException {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    for (RSGroupInfo info: rsGroupMap.values()) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      if (info.containsServer(serverHostPort)) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        return info;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    return null;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  @Override<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public RSGroupInfo getRSGroup(String groupName) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    return rsGroupMap.get(groupName);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  @Override<a name="line.231"></a>
-<span class="sourceLineNo">232</span>  public String getRSGroupOfTable(TableName tableName) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    return tableMap.get(tableName);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>  @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  public synchronized void moveTables(Set&lt;TableName&gt; tableNames, String groupName)<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    if (groupName != null &amp;&amp; !rsGroupMap.containsKey(groupName)) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      throw new DoNotRetryIOException("Group "+groupName+" does not exist or is a special group");<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    for(TableName tableName: tableNames) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      if (tableMap.containsKey(tableName)) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        RSGroupInfo src = new RSGroupInfo(newGroupMap.get(tableMap.get(tableName)));<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        src.removeTable(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        newGroupMap.put(src.getName(), src);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      if(groupName != null) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        RSGroupInfo dst = new RSGroupInfo(newGroupMap.get(groupName));<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        dst.addTable(tableName);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        newGroupMap.put(dst.getName(), dst);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      }<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    flushConfig(newGroupMap);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>  }<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span>  @Override<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  public synchronized void removeRSGroup(String groupName) throws IOException {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    if (!rsGroupMap.containsKey(groupName) || groupName.equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      throw new DoNotRetryIOException("Group " + groupName + " does not exist or is a reserved "<a name="line.262"></a>
-<span class="sourceLineNo">263</span>          + "group");<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    newGroupMap.remove(groupName);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    flushConfig(newGroupMap);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>  @Override<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  public List&lt;RSGroupInfo&gt; listRSGroups() {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    return Lists.newLinkedList(rsGroupMap.values());<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  }<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>  public boolean isOnline() {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    return rsGroupStartupWorker.isOnline();<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  @Override<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  public void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>                                   String srcGroup, String dstGroup) throws IOException {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //get server's group<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    RSGroupInfo srcGroupInfo = getRSGroupInfo(srcGroup);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    RSGroupInfo dstGroupInfo = getRSGroupInfo(dstGroup);<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    //move servers<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    for (Address el: servers) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      srcGroupInfo.removeServer(el);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      dstGroupInfo.addServer(el);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    //move tables<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    for(TableName tableName: tables) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      srcGroupInfo.removeTable(tableName);<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      dstGroupInfo.addTable(tableName);<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    }<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>    //flush changed groupinfo<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    newGroupMap.put(srcGroupInfo.getName(), srcGroupInfo);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    newGroupMap.put(dstGroupInfo.getName(), dstGroupInfo);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    flushConfig(newGroupMap);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.308"></a>
-<span class="sourceLineNo">309</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    }<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    return rsGroupInfoList;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    //Overwrite any info stored by table, this takes precedence<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    try {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          byte[] data = ZKUtil.getData(watcher, ZKUtil.joinZNode(groupBasePath, znode));<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          if(data.length &gt; 0) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.327"></a>
-<span class="sourceLineNo">328</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.328"></a>
-<span class="sourceLineNo">329</span>          }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      }<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    return RSGroupInfoList;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  public void refresh() throws IOException {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    refresh(false);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span>  /**<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   * Update zk cache. Called on startup of the manager.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   */<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    // if online read from GROUP table<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    if (forceOnline || isOnline()) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      LOG.debug("Refreshing in Online mode.");<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      if (rsGroupTable == null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    } else {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>    // refresh default group, prune<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.367"></a>
+<span class="sourceLineNo">167</span>  static RSGroupInfoManager getInstance(MasterServices master) throws IOException {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    RSGroupInfoManagerImpl instance = new RSGroupInfoManagerImpl(master);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    instance.init();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    return instance;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  @Override<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public synchronized void addRSGroup(RSGroupInfo rsGroupInfo) throws IOException {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    checkGroupName(rsGroupInfo.getName());<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    if (rsGroupMap.get(rsGroupInfo.getName()) != null ||<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        rsGroupInfo.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      throw new DoNotRetryIOException("Group already exists: "+ rsGroupInfo.getName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    newGroupMap.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    flushConfig(newGroupMap);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  private RSGroupInfo getRSGroupInfo(final String groupName) throws DoNotRetryIOException {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    RSGroupInfo rsGroupInfo = getRSGroup(groupName);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    if (rsGroupInfo == null) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      throw new DoNotRetryIOException("RSGroup " + groupName + " does not exist");<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    return rsGroupInfo;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>  }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>  @Override<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public synchronized Set&lt;Address&gt; moveServers(Set&lt;Address&gt; servers, String srcGroup,<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      String dstGroup) throws IOException {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    RSGroupInfo src = getRSGroupInfo(srcGroup);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    RSGroupInfo dst = getRSGroupInfo(dstGroup);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // If destination is 'default' rsgroup, only add servers that are online. If not online, drop<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // it. If not 'default' group, add server to 'dst' rsgroup EVEN IF IT IS NOT online (could be a<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    // rsgroup of dead servers that are to come back later).<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    Set&lt;Address&gt; onlineServers = dst.getName().equals(RSGroupInfo.DEFAULT_GROUP)?<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        Utility.getOnlineServers(this.masterServices): null;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    for (Address el: servers) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      src.removeServer(el);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      if (onlineServers != null) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (!onlineServers.contains(el)) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          if (LOG.isDebugEnabled()) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>            LOG.debug("Dropping " + el + " during move-to-default rsgroup because not online");<a name="line.208"></a>
+<span class="sourceLineNo">209</span>          }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>          continue;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      dst.addServer(el);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    newGroupMap.put(src.getName(), src);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    newGroupMap.put(dst.getName(), dst);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    flushConfig(newGroupMap);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    return dst.getServers();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  @Override<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  public RSGroupInfo getRSGroupOfServer(Address serverHostPort) throws IOException {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    for (RSGroupInfo info: rsGroupMap.values()) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      if (info.containsServer(serverHostPort)) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        return info;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    return null;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public RSGroupInfo getRSGroup(String groupName) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    return rsGroupMap.get(groupName);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  public String getRSGroupOfTable(TableName tableName) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    return tableMap.get(tableName);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>  @Override<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  public synchronized void moveTables(Set&lt;TableName&gt; tableNames, String groupName)<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      throws IOException {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    if (groupName != null &amp;&amp; !rsGroupMap.containsKey(groupName)) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      throw new DoNotRetryIOException("Group "+groupName+" does not exist or is a special group");<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    for(TableName tableName: tableNames) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      if (tableMap.containsKey(tableName)) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        RSGroupInfo src = new RSGroupInfo(newGroupMap.get(tableMap.get(tableName)));<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        src.removeTable(tableName);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        newGroupMap.put(src.getName(), src);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      if(groupName != null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        RSGroupInfo dst = new RSGroupInfo(newGroupMap.get(groupName));<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        dst.addTable(tableName);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        newGroupMap.put(dst.getName(), dst);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    flushConfig(newGroupMap);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  public synchronized void removeRSGroup(String groupName) throws IOException {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    if (!rsGroupMap.containsKey(groupName) || groupName.equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      throw new DoNotRetryIOException("Group " + groupName + " does not exist or is a reserved "<a name="line.268"></a>
+<span class="sourceLineNo">269</span>          + "group");<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    newGroupMap.remove(groupName);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    flushConfig(newGroupMap);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>  public List&lt;RSGroupInfo&gt; listRSGroups() {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return Lists.newLinkedList(rsGroupMap.values());<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public boolean isOnline() {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    return rsGroupStartupWorker.isOnline();<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  public void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                   String srcGroup, String dstGroup) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    //get server's group<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    RSGroupInfo srcGroupInfo = getRSGroupInfo(srcGroup);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    RSGroupInfo dstGroupInfo = getRSGroupInfo(dstGroup);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    //move servers<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    for (Address el: servers) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      srcGroupInfo.removeServer(el);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      dstGroupInfo.addServer(el);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    //move tables<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    for(TableName tableName: tables) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      srcGroupInfo.removeTable(tableName);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      dstGroupInfo.addTable(tableName);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    //flush changed groupinfo<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    newGroupMap.put(srcGroupInfo.getName(), srcGroupInfo);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    newGroupMap.put(dstGroupInfo.getName(), dstGroupInfo);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    flushConfig(newGroupMap);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.314"></a>
+<span class="sourceLineNo">315</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    return rsGroupInfoList;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    //Overwrite any info stored by table, this takes precedence<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    try {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          byte[] data = ZKUtil.getData(watcher, ZKUtil.joinZNode(groupBasePath, znode));<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          if(data.length &gt; 0) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.334"></a>
+<span class="sourceLineNo">335</span>          }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return RSGroupInfoList;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public void refresh() throws IOException {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    refresh(false);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  /**<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   * Update zk cache. Called on startup of the manager.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   */<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    // if online read from GROUP table<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    if (forceOnline || isOnline()) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      LOG.debug("Refreshing in Online mode.");<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      if (rsGroupTable == null) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    } else {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.367"></a>
 <span class="sourceLineNo">368</span>    }<a name="line.368"></a>
 <span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    final List&lt;TableName&gt; specialTables;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    if(!masterServices.isInitialized()) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.372"></a>
-<span class="sourceLineNo">373</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    } else {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      specialTables =<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>    for (TableName table : specialTables) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      orphanTables.add(table);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    }<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    for (RSGroupInfo group: groupList) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        orphanTables.removeAll(group.getTables());<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    // from region group table or zk<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        orphanTables));<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>    // populate the data<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    for (RSGroupInfo group : groupList) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      newGroupMap.put(group.getName(), group);<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      for(TableName table: group.getTables()) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        newTableMap.put(table, group.getName());<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      throws IOException {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>    // populate deletes<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    for(String groupName : prevRSGroups) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      if(!groupMap.containsKey(groupName)) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        mutations.add(d);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>    // populate puts<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      mutations.add(p);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>    if(mutations.size() &gt; 0) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      multiMutate(mutations);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return newTableMap;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
+<span class="sourceLineNo">370</span>    // refresh default group, prune<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>    final List&lt;TableName&gt; specialTables;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    if(!masterServices.isInitialized()) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.378"></a>
+<span class="sourceLineNo">379</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    } else {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      specialTables =<a name="line.381"></a>
+<span class="sourceLineNo">382</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>    for (TableName table : specialTables) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      orphanTables.add(table);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    for (RSGroupInfo group: groupList) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        orphanTables.removeAll(group.getTables());<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    // from region group table or zk<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        orphanTables));<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>    // populate the data<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    for (RSGroupInfo group : groupList) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      newGroupMap.put(group.getName(), group);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      for(TableName table: group.getTables()) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        newTableMap.put(table, group.getName());<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    }<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      throws IOException {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>    // populate deletes<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    for(String groupName : prevRSGroups) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      if(!groupMap.containsKey(groupName)) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        mutations.add(d);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    // populate puts<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      mutations.add(p);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  private synchronized void flushConfig()<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  throws IOException {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    flushConfig(this.rsGroupMap);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    // For offline mode persistence is still unavailable<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    // We're refreshing in-memory state but only for default servers<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    if (!isOnline()) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      if (!m.equals(newGroupMap) ||<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      rsGroupMap = newGroupMap;<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      return;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>    // Make changes visible after having been persisted to the source of truth<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>    try {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      for(String groupName : prevRSGroups) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          String znode = ZKUtil.joinZNode(groupBasePath, groupName);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        String znode = ZKUtil.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        LOG.debug("Updating znode: "+znode);<a name="line.481"></a>
-<span class="sourceLineNo">482</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.482"></a>
-<span class="sourceLineNo">483</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.483"></a>
-<span class="sourceLineNo">484</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    } catch (KeeperException e) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.495"></a>
-<span class="sourceLineNo">496</span>  }<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>  /**<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * Make changes visible.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * Caller must be synchronized on 'this'.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   */<a name="line.501"></a>
-<span class="sourceLineNo">502</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    // Make maps Immutable.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
-<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>  /**<a name="line.509"></a>
-<span class="sourceLineNo">510</span>   * Update cache of rsgroups.<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * Caller must be synchronized on 'this'.<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * @param currentGroups Current list of Groups.<a name="line.512"></a>
-<span class

<TRUNCATED>

[03/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html
index a8b3b71..a4fd1b5 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html
@@ -28,95 +28,108 @@
 <span class="sourceLineNo">020</span>package org.apache.hadoop.hbase.zookeeper;<a name="line.20"></a>
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.conf.Configuration;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.zookeeper.KeeperException;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.zookeeper.ZooKeeperMain;<a name="line.29"></a>
-<span class="sourceLineNo">030</span><a name="line.30"></a>
-<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * Tool for running ZookeeperMain from HBase by  reading a ZooKeeper server<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * from HBase XML configuration.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> */<a name="line.34"></a>
-<span class="sourceLineNo">035</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.35"></a>
-<span class="sourceLineNo">036</span>public class ZooKeeperMainServer {<a name="line.36"></a>
-<span class="sourceLineNo">037</span>  private static final String SERVER_ARG = "-server";<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public String parse(final Configuration c) {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    return ZKConfig.getZKQuorumServersString(c);<a name="line.40"></a>
-<span class="sourceLineNo">041</span>  }<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>  /**<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   * ZooKeeper 3.4.6 broke being able to pass commands on command line.<a name="line.44"></a>
-<span class="sourceLineNo">045</span>   * See ZOOKEEPER-1897.  This class is a hack to restore this faclity.<a name="line.45"></a>
-<span class="sourceLineNo">046</span>   */<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static class HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain extends ZooKeeperMain {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    public HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain(String[] args)<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    throws IOException, InterruptedException {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      super(args);<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    }<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>    /**<a name="line.53"></a>
-<span class="sourceLineNo">054</span>     * Run the command-line args passed.  Calls System.exit when done.<a name="line.54"></a>
-<span class="sourceLineNo">055</span>     * @throws KeeperException<a name="line.55"></a>
-<span class="sourceLineNo">056</span>     * @throws IOException<a name="line.56"></a>
-<span class="sourceLineNo">057</span>     * @throws InterruptedException<a name="line.57"></a>
-<span class="sourceLineNo">058</span>     */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    void runCmdLine() throws KeeperException, IOException, InterruptedException {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      processCmd(this.cl);<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      System.exit(0);<a name="line.61"></a>
+<span class="sourceLineNo">023</span>import java.util.concurrent.TimeUnit;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.curator.shaded.com.google.common.base.Stopwatch;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.conf.Configuration;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.zookeeper.KeeperException;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.zookeeper.ZooKeeperMain;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>/**<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * Tool for running ZookeeperMain from HBase by  reading a ZooKeeper server<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * from HBase XML configuration.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.37"></a>
+<span class="sourceLineNo">038</span>public class ZooKeeperMainServer {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  private static final String SERVER_ARG = "-server";<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public String parse(final Configuration c) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    return ZKConfig.getZKQuorumServersString(c);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  }<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  /**<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   * ZooKeeper 3.4.6 broke being able to pass commands on command line.<a name="line.46"></a>
+<span class="sourceLineNo">047</span>   * See ZOOKEEPER-1897.  This class is a hack to restore this faclity.<a name="line.47"></a>
+<span class="sourceLineNo">048</span>   */<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  private static class HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain extends ZooKeeperMain {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    public HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain(String[] args)<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    throws IOException, InterruptedException {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      super(args);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      // Make sure we are connected before we proceed. Can take a while on some systems. If we<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      // run the command without being connected, we get ConnectionLoss KeeperErrorConnection...<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      Stopwatch stopWatch = Stopwatch.createStarted();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      while (!this.zk.getState().isConnected()) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        Thread.sleep(1);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        if (stopWatch.elapsed(TimeUnit.SECONDS) &gt; 10) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>          throw new InterruptedException("Failed connect " + this.zk);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        }<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      }<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    }<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  }<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * @param args<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * @return True if argument strings have a '-server' in them.<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private static boolean hasServer(final String args[]) {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    return args.length &gt; 0 &amp;&amp; args[0].equals(SERVER_ARG);<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  /**<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   * @param args<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   * @return True if command-line arguments were passed.<a name="line.75"></a>
-<span class="sourceLineNo">076</span>   */<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static boolean hasCommandLineArguments(final String args[]) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    if (hasServer(args)) {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      if (args.length &lt; 2) throw new IllegalStateException("-server param but no value");<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      return args.length &gt; 2;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    }<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    return args.length &gt; 0;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * Run the tool.<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * @param args Command line arguments. First arg is path to zookeepers file.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public static void main(String args[]) throws Exception {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    String [] newArgs = args;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    if (!hasServer(args)) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // Add the zk ensemble from configuration if none passed on command-line.<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      Configuration conf = HBaseConfiguration.create();<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      String hostport = new ZooKeeperMainServer().parse(conf);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      if (hostport != null &amp;&amp; hostport.length() &gt; 0) {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>        newArgs = new String[args.length + 2];<a name="line.96"></a>
-<span class="sourceLineNo">097</span>        System.arraycopy(args, 0, newArgs, 2, args.length);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>        newArgs[0] = "-server";<a name="line.98"></a>
-<span class="sourceLineNo">099</span>        newArgs[1] = hostport;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      }<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    // If command-line arguments, run our hack so they are executed.<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    if (hasCommandLineArguments(args)) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain zkm =<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        new HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain(newArgs);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      zkm.runCmdLine();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    } else {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      ZooKeeperMain.main(newArgs);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>}<a name="line.111"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>    /**<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     * Run the command-line args passed.  Calls System.exit when done.<a name="line.65"></a>
+<span class="sourceLineNo">066</span>     * @throws KeeperException<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     * @throws IOException<a name="line.67"></a>
+<span class="sourceLineNo">068</span>     * @throws InterruptedException<a name="line.68"></a>
+<span class="sourceLineNo">069</span>     */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    void runCmdLine() throws KeeperException, IOException, InterruptedException {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      processCmd(this.cl);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      System.exit(0);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   * @param args<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   * @return True if argument strings have a '-server' in them.<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static boolean hasServer(final String args[]) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    return args.length &gt; 0 &amp;&amp; args[0].equals(SERVER_ARG);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * @param args<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * @return True if command-line arguments were passed.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  private static boolean hasCommandLineArguments(final String args[]) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    if (hasServer(args)) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      if (args.length &lt; 2) throw new IllegalStateException("-server param but no value");<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      return args.length &gt; 2;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    return args.length &gt; 0;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * Run the tool.<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * @param args Command line arguments. First arg is path to zookeepers file.<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  public static void main(String args[]) throws Exception {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    String [] newArgs = args;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    if (!hasServer(args)) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      // Add the zk ensemble from configuration if none passed on command-line.<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      Configuration conf = HBaseConfiguration.create();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      String hostport = new ZooKeeperMainServer().parse(conf);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      if (hostport != null &amp;&amp; hostport.length() &gt; 0) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        newArgs = new String[args.length + 2];<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        System.arraycopy(args, 0, newArgs, 2, args.length);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        newArgs[0] = "-server";<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        newArgs[1] = hostport;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    // If command-line arguments, run our hack so they are executed.<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    // ZOOKEEPER-1897 was committed to zookeeper-3.4.6 but elsewhere in this class we say<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    // 3.4.6 breaks command-processing; TODO.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    if (hasCommandLineArguments(args)) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain zkm =<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        new HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain(newArgs);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      zkm.runCmdLine();<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    } else {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      ZooKeeperMain.main(newArgs);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>}<a name="line.124"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html
index a8b3b71..a4fd1b5 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.html
@@ -28,95 +28,108 @@
 <span class="sourceLineNo">020</span>package org.apache.hadoop.hbase.zookeeper;<a name="line.20"></a>
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.conf.Configuration;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.zookeeper.KeeperException;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.zookeeper.ZooKeeperMain;<a name="line.29"></a>
-<span class="sourceLineNo">030</span><a name="line.30"></a>
-<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * Tool for running ZookeeperMain from HBase by  reading a ZooKeeper server<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * from HBase XML configuration.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> */<a name="line.34"></a>
-<span class="sourceLineNo">035</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.35"></a>
-<span class="sourceLineNo">036</span>public class ZooKeeperMainServer {<a name="line.36"></a>
-<span class="sourceLineNo">037</span>  private static final String SERVER_ARG = "-server";<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public String parse(final Configuration c) {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    return ZKConfig.getZKQuorumServersString(c);<a name="line.40"></a>
-<span class="sourceLineNo">041</span>  }<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>  /**<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   * ZooKeeper 3.4.6 broke being able to pass commands on command line.<a name="line.44"></a>
-<span class="sourceLineNo">045</span>   * See ZOOKEEPER-1897.  This class is a hack to restore this faclity.<a name="line.45"></a>
-<span class="sourceLineNo">046</span>   */<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static class HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain extends ZooKeeperMain {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    public HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain(String[] args)<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    throws IOException, InterruptedException {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      super(args);<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    }<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>    /**<a name="line.53"></a>
-<span class="sourceLineNo">054</span>     * Run the command-line args passed.  Calls System.exit when done.<a name="line.54"></a>
-<span class="sourceLineNo">055</span>     * @throws KeeperException<a name="line.55"></a>
-<span class="sourceLineNo">056</span>     * @throws IOException<a name="line.56"></a>
-<span class="sourceLineNo">057</span>     * @throws InterruptedException<a name="line.57"></a>
-<span class="sourceLineNo">058</span>     */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    void runCmdLine() throws KeeperException, IOException, InterruptedException {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      processCmd(this.cl);<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      System.exit(0);<a name="line.61"></a>
+<span class="sourceLineNo">023</span>import java.util.concurrent.TimeUnit;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.curator.shaded.com.google.common.base.Stopwatch;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.conf.Configuration;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.zookeeper.KeeperException;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.zookeeper.ZooKeeperMain;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>/**<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * Tool for running ZookeeperMain from HBase by  reading a ZooKeeper server<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * from HBase XML configuration.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.37"></a>
+<span class="sourceLineNo">038</span>public class ZooKeeperMainServer {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  private static final String SERVER_ARG = "-server";<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public String parse(final Configuration c) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    return ZKConfig.getZKQuorumServersString(c);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  }<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  /**<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   * ZooKeeper 3.4.6 broke being able to pass commands on command line.<a name="line.46"></a>
+<span class="sourceLineNo">047</span>   * See ZOOKEEPER-1897.  This class is a hack to restore this faclity.<a name="line.47"></a>
+<span class="sourceLineNo">048</span>   */<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  private static class HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain extends ZooKeeperMain {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    public HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain(String[] args)<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    throws IOException, InterruptedException {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      super(args);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      // Make sure we are connected before we proceed. Can take a while on some systems. If we<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      // run the command without being connected, we get ConnectionLoss KeeperErrorConnection...<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      Stopwatch stopWatch = Stopwatch.createStarted();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      while (!this.zk.getState().isConnected()) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        Thread.sleep(1);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        if (stopWatch.elapsed(TimeUnit.SECONDS) &gt; 10) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>          throw new InterruptedException("Failed connect " + this.zk);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        }<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      }<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    }<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  }<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * @param args<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * @return True if argument strings have a '-server' in them.<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private static boolean hasServer(final String args[]) {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    return args.length &gt; 0 &amp;&amp; args[0].equals(SERVER_ARG);<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  /**<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   * @param args<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   * @return True if command-line arguments were passed.<a name="line.75"></a>
-<span class="sourceLineNo">076</span>   */<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static boolean hasCommandLineArguments(final String args[]) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    if (hasServer(args)) {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      if (args.length &lt; 2) throw new IllegalStateException("-server param but no value");<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      return args.length &gt; 2;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    }<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    return args.length &gt; 0;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * Run the tool.<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * @param args Command line arguments. First arg is path to zookeepers file.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public static void main(String args[]) throws Exception {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    String [] newArgs = args;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    if (!hasServer(args)) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // Add the zk ensemble from configuration if none passed on command-line.<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      Configuration conf = HBaseConfiguration.create();<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      String hostport = new ZooKeeperMainServer().parse(conf);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      if (hostport != null &amp;&amp; hostport.length() &gt; 0) {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>        newArgs = new String[args.length + 2];<a name="line.96"></a>
-<span class="sourceLineNo">097</span>        System.arraycopy(args, 0, newArgs, 2, args.length);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>        newArgs[0] = "-server";<a name="line.98"></a>
-<span class="sourceLineNo">099</span>        newArgs[1] = hostport;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      }<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    // If command-line arguments, run our hack so they are executed.<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    if (hasCommandLineArguments(args)) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain zkm =<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        new HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain(newArgs);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      zkm.runCmdLine();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    } else {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      ZooKeeperMain.main(newArgs);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>}<a name="line.111"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>    /**<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     * Run the command-line args passed.  Calls System.exit when done.<a name="line.65"></a>
+<span class="sourceLineNo">066</span>     * @throws KeeperException<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     * @throws IOException<a name="line.67"></a>
+<span class="sourceLineNo">068</span>     * @throws InterruptedException<a name="line.68"></a>
+<span class="sourceLineNo">069</span>     */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    void runCmdLine() throws KeeperException, IOException, InterruptedException {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      processCmd(this.cl);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      System.exit(0);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   * @param args<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   * @return True if argument strings have a '-server' in them.<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static boolean hasServer(final String args[]) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    return args.length &gt; 0 &amp;&amp; args[0].equals(SERVER_ARG);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * @param args<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * @return True if command-line arguments were passed.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  private static boolean hasCommandLineArguments(final String args[]) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    if (hasServer(args)) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      if (args.length &lt; 2) throw new IllegalStateException("-server param but no value");<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      return args.length &gt; 2;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    return args.length &gt; 0;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * Run the tool.<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * @param args Command line arguments. First arg is path to zookeepers file.<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  public static void main(String args[]) throws Exception {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    String [] newArgs = args;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    if (!hasServer(args)) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      // Add the zk ensemble from configuration if none passed on command-line.<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      Configuration conf = HBaseConfiguration.create();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      String hostport = new ZooKeeperMainServer().parse(conf);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      if (hostport != null &amp;&amp; hostport.length() &gt; 0) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        newArgs = new String[args.length + 2];<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        System.arraycopy(args, 0, newArgs, 2, args.length);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        newArgs[0] = "-server";<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        newArgs[1] = hostport;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    // If command-line arguments, run our hack so they are executed.<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    // ZOOKEEPER-1897 was committed to zookeeper-3.4.6 but elsewhere in this class we say<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    // 3.4.6 breaks command-processing; TODO.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    if (hasCommandLineArguments(args)) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain zkm =<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        new HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain(newArgs);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      zkm.runCmdLine();<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    } else {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      ZooKeeperMain.main(newArgs);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>}<a name="line.124"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 1086b45..2f74c72 100644
--- a/export_control.html
+++ b/export_control.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -336,7 +336,7 @@ for more details.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/checkstyle.html b/hbase-annotations/checkstyle.html
index d16cd00..d5e188f 100644
--- a/hbase-annotations/checkstyle.html
+++ b/hbase-annotations/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -178,7 +178,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependencies.html b/hbase-annotations/dependencies.html
index 23abd9c..ac9af00 100644
--- a/hbase-annotations/dependencies.html
+++ b/hbase-annotations/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -272,7 +272,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-convergence.html b/hbase-annotations/dependency-convergence.html
index 635d6f0..2448988 100644
--- a/hbase-annotations/dependency-convergence.html
+++ b/hbase-annotations/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -763,7 +763,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-info.html b/hbase-annotations/dependency-info.html
index 7fc5bc6..b5dc20d 100644
--- a/hbase-annotations/dependency-info.html
+++ b/hbase-annotations/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-management.html b/hbase-annotations/dependency-management.html
index 43b2169..bc216f5 100644
--- a/hbase-annotations/dependency-management.html
+++ b/hbase-annotations/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -784,7 +784,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/index.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/index.html b/hbase-annotations/index.html
index ca48687..9b799a0 100644
--- a/hbase-annotations/index.html
+++ b/hbase-annotations/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/integration.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/integration.html b/hbase-annotations/integration.html
index 9df2418..a9adac4 100644
--- a/hbase-annotations/integration.html
+++ b/hbase-annotations/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/issue-tracking.html b/hbase-annotations/issue-tracking.html
index cbe9c3b..da5f96d 100644
--- a/hbase-annotations/issue-tracking.html
+++ b/hbase-annotations/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/license.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/license.html b/hbase-annotations/license.html
index a3a20df..25b6fbc 100644
--- a/hbase-annotations/license.html
+++ b/hbase-annotations/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/mail-lists.html b/hbase-annotations/mail-lists.html
index c3786ac..2c2b22b 100644
--- a/hbase-annotations/mail-lists.html
+++ b/hbase-annotations/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugin-management.html b/hbase-annotations/plugin-management.html
index 3d3a6e7..1797ed9 100644
--- a/hbase-annotations/plugin-management.html
+++ b/hbase-annotations/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugins.html b/hbase-annotations/plugins.html
index 43c5e72..dc4795b 100644
--- a/hbase-annotations/plugins.html
+++ b/hbase-annotations/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -222,7 +222,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-info.html b/hbase-annotations/project-info.html
index f6efc98..0d97ee9 100644
--- a/hbase-annotations/project-info.html
+++ b/hbase-annotations/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-reports.html b/hbase-annotations/project-reports.html
index 8756910..c7fa167 100644
--- a/hbase-annotations/project-reports.html
+++ b/hbase-annotations/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-summary.html b/hbase-annotations/project-summary.html
index b59a0c8..dcc69e9 100644
--- a/hbase-annotations/project-summary.html
+++ b/hbase-annotations/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/source-repository.html b/hbase-annotations/source-repository.html
index 554b865..c33d6f3 100644
--- a/hbase-annotations/source-repository.html
+++ b/hbase-annotations/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-annotations/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/team-list.html b/hbase-annotations/team-list.html
index 33651d5..913f0e3 100644
--- a/hbase-annotations/team-list.html
+++ b/hbase-annotations/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependencies.html b/hbase-build-configuration/dependencies.html
index e39e668..9585672 100644
--- a/hbase-build-configuration/dependencies.html
+++ b/hbase-build-configuration/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-convergence.html b/hbase-build-configuration/dependency-convergence.html
index dce8ade..4a988ca 100644
--- a/hbase-build-configuration/dependency-convergence.html
+++ b/hbase-build-configuration/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -763,7 +763,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-info.html b/hbase-build-configuration/dependency-info.html
index 2c78935..15bacb9 100644
--- a/hbase-build-configuration/dependency-info.html
+++ b/hbase-build-configuration/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-management.html b/hbase-build-configuration/dependency-management.html
index ac993b4..f78428a 100644
--- a/hbase-build-configuration/dependency-management.html
+++ b/hbase-build-configuration/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -784,7 +784,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependencies.html b/hbase-build-configuration/hbase-archetypes/dependencies.html
index c7cdc09..a576c91 100644
--- a/hbase-build-configuration/hbase-archetypes/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
index ab6a2f7..37a9dfc 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -763,7 +763,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-info.html b/hbase-build-configuration/hbase-archetypes/dependency-info.html
index 7a83e4c..32731db 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-management.html b/hbase-build-configuration/hbase-archetypes/dependency-management.html
index c73bf85..93df28d 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -784,7 +784,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
index 526b846..0f27c77 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
index e8f2556..8b54e33 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -763,7 +763,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
index d6f1e12..2ad1d9d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
index 9044218..1e4e3f9 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -784,7 +784,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
index 5bc7701..1cf449d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
index ae5bd32..0260668 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
index 0e7ae35..77c7b76 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
index aeaddcc..3785248 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
index d4c2ce9..82c78c9 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
index 1749c0b..53e77af 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
index 9d890fe..4a59b07 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -218,7 +218,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
index 32f3221..a3023f7 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 


[21/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
Published site at .


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

Branch: refs/heads/asf-site
Commit: edf5597c97c68f17ffefccccae02850ceb358c20
Parents: 46e1b6b
Author: jenkins <bu...@apache.org>
Authored: Sat Nov 4 15:17:16 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Sat Nov 4 15:17:16 2017 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                | 36782 +++++++++--------
 book.html                                       |  2752 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 28184 +++++++------
 checkstyle.rss                                  |     4 +-
 coc.html                                        |     4 +-
 cygwin.html                                     |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     4 +-
 devapidocs/constant-values.html                 |    20 +-
 devapidocs/index-all.html                       |    24 +
 .../hadoop/hbase/backup/package-tree.html       |     4 +-
 .../hadoop/hbase/class-use/ServerName.html      |     8 +
 .../hadoop/hbase/client/package-tree.html       |    28 +-
 .../hadoop/hbase/executor/package-tree.html     |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |    10 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     8 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     2 +-
 .../org/apache/hadoop/hbase/master/HMaster.html |   320 +-
 .../hadoop/hbase/master/ServerListener.html     |     2 +-
 .../hbase/master/balancer/package-tree.html     |     2 +-
 .../hbase/master/class-use/ServerListener.html  |     4 +
 .../hadoop/hbase/master/package-tree.html       |     2 +-
 .../hbase/master/procedure/package-tree.html    |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    16 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     6 +-
 .../hadoop/hbase/quotas/package-tree.html       |     6 +-
 .../hadoop/hbase/regionserver/package-tree.html |    18 +-
 .../regionserver/querymatcher/package-tree.html |     2 +-
 .../replication/regionserver/package-tree.html  |     2 +-
 .../hadoop/hbase/rest/model/package-tree.html   |     2 +-
 .../hbase/rsgroup/RSGroupInfoManager.html       |    68 +-
 ...InfoManagerImpl.FailedOpenUpdaterThread.html |   436 +
 ...oupInfoManagerImpl.RSGroupStartupWorker.html |    20 +-
 ...oManagerImpl.ServerEventsListenerThread.html |    16 +-
 .../hbase/rsgroup/RSGroupInfoManagerImpl.html   |   142 +-
 ...InfoManagerImpl.FailedOpenUpdaterThread.html |   165 +
 .../hadoop/hbase/rsgroup/package-summary.html   |     4 +-
 .../hadoop/hbase/rsgroup/package-tree.html      |     1 +
 .../hadoop/hbase/rsgroup/package-use.html       |     5 +-
 .../hbase/security/access/package-tree.html     |     2 +-
 .../hadoop/hbase/thrift/package-tree.html       |     2 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    10 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 ...HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html |     6 +-
 .../hbase/zookeeper/ZooKeeperMainServer.html    |    14 +-
 devapidocs/overview-tree.html                   |     1 +
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../master/HMaster.InitializationMonitor.html   |  5833 +--
 .../hbase/master/HMaster.RedirectServlet.html   |  5833 +--
 .../org/apache/hadoop/hbase/master/HMaster.html |  5833 +--
 .../hbase/rsgroup/RSGroupInfoManager.html       |   160 +-
 ...InfoManagerImpl.FailedOpenUpdaterThread.html |   978 +
 ...oupInfoManagerImpl.RSGroupStartupWorker.html |  1635 +-
 ...oManagerImpl.ServerEventsListenerThread.html |  1635 +-
 .../hbase/rsgroup/RSGroupInfoManagerImpl.html   |  1635 +-
 ...HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html |   189 +-
 .../hbase/zookeeper/ZooKeeperMainServer.html    |   189 +-
 export_control.html                             |     4 +-
 hbase-annotations/checkstyle.html               |     4 +-
 hbase-annotations/dependencies.html             |     4 +-
 hbase-annotations/dependency-convergence.html   |     4 +-
 hbase-annotations/dependency-info.html          |     4 +-
 hbase-annotations/dependency-management.html    |     4 +-
 hbase-annotations/index.html                    |     4 +-
 hbase-annotations/integration.html              |     4 +-
 hbase-annotations/issue-tracking.html           |     4 +-
 hbase-annotations/license.html                  |     4 +-
 hbase-annotations/mail-lists.html               |     4 +-
 hbase-annotations/plugin-management.html        |     4 +-
 hbase-annotations/plugins.html                  |     4 +-
 hbase-annotations/project-info.html             |     4 +-
 hbase-annotations/project-reports.html          |     4 +-
 hbase-annotations/project-summary.html          |     4 +-
 hbase-annotations/source-repository.html        |     4 +-
 hbase-annotations/team-list.html                |     4 +-
 hbase-build-configuration/dependencies.html     |     4 +-
 .../dependency-convergence.html                 |     4 +-
 hbase-build-configuration/dependency-info.html  |     4 +-
 .../dependency-management.html                  |     4 +-
 .../hbase-archetypes/dependencies.html          |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../hbase-archetypes/dependency-info.html       |     4 +-
 .../hbase-archetypes/dependency-management.html |     4 +-
 .../hbase-archetype-builder/dependencies.html   |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../dependency-info.html                        |     4 +-
 .../dependency-management.html                  |     4 +-
 .../hbase-archetype-builder/index.html          |     4 +-
 .../hbase-archetype-builder/integration.html    |     4 +-
 .../hbase-archetype-builder/issue-tracking.html |     4 +-
 .../hbase-archetype-builder/license.html        |     4 +-
 .../hbase-archetype-builder/mail-lists.html     |     4 +-
 .../plugin-management.html                      |     4 +-
 .../hbase-archetype-builder/plugins.html        |     4 +-
 .../hbase-archetype-builder/project-info.html   |     4 +-
 .../project-summary.html                        |     4 +-
 .../source-repository.html                      |     4 +-
 .../hbase-archetype-builder/team-list.html      |     4 +-
 .../hbase-client-project/checkstyle.html        |     4 +-
 .../hbase-client-project/dependencies.html      |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../hbase-client-project/dependency-info.html   |     4 +-
 .../dependency-management.html                  |     4 +-
 .../hbase-client-project/index.html             |     4 +-
 .../hbase-client-project/integration.html       |     4 +-
 .../hbase-client-project/issue-tracking.html    |     4 +-
 .../hbase-client-project/license.html           |     4 +-
 .../hbase-client-project/mail-lists.html        |     4 +-
 .../hbase-client-project/plugin-management.html |     4 +-
 .../hbase-client-project/plugins.html           |     4 +-
 .../hbase-client-project/project-info.html      |     4 +-
 .../hbase-client-project/project-reports.html   |     4 +-
 .../hbase-client-project/project-summary.html   |     4 +-
 .../hbase-client-project/source-repository.html |     4 +-
 .../hbase-client-project/team-list.html         |     4 +-
 .../hbase-shaded-client-project/checkstyle.html |     4 +-
 .../dependencies.html                           |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../dependency-info.html                        |     4 +-
 .../dependency-management.html                  |     4 +-
 .../hbase-shaded-client-project/index.html      |     4 +-
 .../integration.html                            |     4 +-
 .../issue-tracking.html                         |     4 +-
 .../hbase-shaded-client-project/license.html    |     4 +-
 .../hbase-shaded-client-project/mail-lists.html |     4 +-
 .../plugin-management.html                      |     4 +-
 .../hbase-shaded-client-project/plugins.html    |     4 +-
 .../project-info.html                           |     4 +-
 .../project-reports.html                        |     4 +-
 .../project-summary.html                        |     4 +-
 .../source-repository.html                      |     4 +-
 .../hbase-shaded-client-project/team-list.html  |     4 +-
 .../hbase-archetypes/index.html                 |     4 +-
 .../hbase-archetypes/integration.html           |     4 +-
 .../hbase-archetypes/issue-tracking.html        |     4 +-
 .../hbase-archetypes/license.html               |     4 +-
 .../hbase-archetypes/mail-lists.html            |     4 +-
 .../hbase-archetypes/plugin-management.html     |     4 +-
 .../hbase-archetypes/plugins.html               |     4 +-
 .../hbase-archetypes/project-info.html          |     4 +-
 .../hbase-archetypes/project-summary.html       |     4 +-
 .../hbase-archetypes/source-repository.html     |     4 +-
 .../hbase-archetypes/team-list.html             |     4 +-
 .../hbase-spark/checkstyle.html                 |     4 +-
 .../hbase-spark/dependencies.html               |     4 +-
 .../hbase-spark/dependency-convergence.html     |     4 +-
 .../hbase-spark/dependency-info.html            |     4 +-
 .../hbase-spark/dependency-management.html      |     4 +-
 .../hbase-spark/index.html                      |     4 +-
 .../hbase-spark/integration.html                |     4 +-
 .../hbase-spark/issue-tracking.html             |     4 +-
 .../hbase-spark/license.html                    |     4 +-
 .../hbase-spark/mail-lists.html                 |     4 +-
 .../hbase-spark/plugin-management.html          |     4 +-
 .../hbase-spark/plugins.html                    |     4 +-
 .../hbase-spark/project-info.html               |     4 +-
 .../hbase-spark/project-reports.html            |     4 +-
 .../hbase-spark/project-summary.html            |     4 +-
 .../hbase-spark/source-repository.html          |     4 +-
 .../hbase-spark/team-list.html                  |     4 +-
 hbase-build-configuration/index.html            |     4 +-
 hbase-build-configuration/integration.html      |     4 +-
 hbase-build-configuration/issue-tracking.html   |     4 +-
 hbase-build-configuration/license.html          |     4 +-
 hbase-build-configuration/mail-lists.html       |     4 +-
 .../plugin-management.html                      |     4 +-
 hbase-build-configuration/plugins.html          |     4 +-
 hbase-build-configuration/project-info.html     |     4 +-
 hbase-build-configuration/project-summary.html  |     4 +-
 .../source-repository.html                      |     4 +-
 hbase-build-configuration/team-list.html        |     4 +-
 hbase-shaded-check-invariants/checkstyle.html   |     4 +-
 hbase-shaded-check-invariants/dependencies.html |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../dependency-info.html                        |     4 +-
 .../dependency-management.html                  |     4 +-
 hbase-shaded-check-invariants/index.html        |     4 +-
 hbase-shaded-check-invariants/integration.html  |     4 +-
 .../issue-tracking.html                         |     4 +-
 hbase-shaded-check-invariants/license.html      |     4 +-
 hbase-shaded-check-invariants/mail-lists.html   |     4 +-
 .../plugin-management.html                      |     4 +-
 hbase-shaded-check-invariants/plugins.html      |     4 +-
 hbase-shaded-check-invariants/project-info.html |     4 +-
 .../project-reports.html                        |     4 +-
 .../project-summary.html                        |     4 +-
 .../source-repository.html                      |     4 +-
 hbase-shaded-check-invariants/team-list.html    |     4 +-
 index.html                                      |     4 +-
 integration.html                                |     4 +-
 issue-tracking.html                             |     4 +-
 license.html                                    |     4 +-
 mail-lists.html                                 |     4 +-
 metrics.html                                    |     8 +-
 old_news.html                                   |     4 +-
 plugin-management.html                          |     4 +-
 plugins.html                                    |     4 +-
 poweredbyhbase.html                             |     4 +-
 project-info.html                               |     4 +-
 project-reports.html                            |     4 +-
 project-summary.html                            |     4 +-
 pseudo-distributed.html                         |     4 +-
 replication.html                                |     4 +-
 resources.html                                  |     4 +-
 source-repository.html                          |     4 +-
 sponsors.html                                   |     4 +-
 supportingprojects.html                         |     4 +-
 team-list.html                                  |     4 +-
 .../hbase/rsgroup/IntegrationTestRSGroup.html   |    12 +-
 .../hbase/rsgroup/IntegrationTestRSGroup.html   |   154 +-
 215 files changed, 49525 insertions(+), 44315 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 283dcbc..ba900ec 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -606,7 +606,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 


[11/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
index a2a8d9c..5da0b6a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
@@ -551,2975 +551,2978 @@
 <span class="sourceLineNo">543</span>    try {<a name="line.543"></a>
 <span class="sourceLineNo">544</span>      super.run();<a name="line.544"></a>
 <span class="sourceLineNo">545</span>    } finally {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      // If on way out, then we are no longer active master.<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      this.clusterSchemaService.stopAsync();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      try {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>        this.clusterSchemaService.awaitTerminated(getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      } catch (TimeoutException te) {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      }<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      this.activeMaster = false;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  }<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  // return the actual infoPort, -1 means disable info server.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  private int putUpJettyServer() throws IOException {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      return -1;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    }<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // -1 is for disabling info server, so no redirecting<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>      return -1;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    }<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    if(infoPort == infoServer.getPort()) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      return infoPort;<a name="line.570"></a>
+<span class="sourceLineNo">546</span>      if (this.clusterSchemaService != null) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        // If on way out, then we are no longer active master.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>        this.clusterSchemaService.stopAsync();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        try {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>          this.clusterSchemaService.awaitTerminated(<a name="line.550"></a>
+<span class="sourceLineNo">551</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.551"></a>
+<span class="sourceLineNo">552</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        } catch (TimeoutException te) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>        }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>      }<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      this.activeMaster = false;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>  // return the actual infoPort, -1 means disable info server.<a name="line.561"></a>
+<span class="sourceLineNo">562</span>  private int putUpJettyServer() throws IOException {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      return -1;<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.566"></a>
+<span class="sourceLineNo">567</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    // -1 is for disabling info server, so no redirecting<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      return -1;<a name="line.570"></a>
 <span class="sourceLineNo">571</span>    }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      String msg =<a name="line.574"></a>
-<span class="sourceLineNo">575</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.575"></a>
-<span class="sourceLineNo">576</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.576"></a>
-<span class="sourceLineNo">577</span>              + "hbase.master.info.bindAddress";<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      LOG.error(msg);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      throw new IOException(msg);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    }<a name="line.580"></a>
-<span class="sourceLineNo">581</span><a name="line.581"></a>
-<span class="sourceLineNo">582</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    // a second entire stack here.<a name="line.584"></a>
-<span class="sourceLineNo">585</span>    masterJettyServer = new Server();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    connector.setHost(addr);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    connector.setPort(infoPort);<a name="line.588"></a>
-<span class="sourceLineNo">589</span>    masterJettyServer.addConnector(connector);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.590"></a>
-<span class="sourceLineNo">591</span><a name="line.591"></a>
-<span class="sourceLineNo">592</span>    final String redirectHostname = shouldUseThisHostnameInstead() ? useThisHostnameInstead : null;<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    context.setServer(masterJettyServer);<a name="line.597"></a>
-<span class="sourceLineNo">598</span><a name="line.598"></a>
-<span class="sourceLineNo">599</span>    try {<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      masterJettyServer.start();<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    } catch (Exception e) {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    }<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    return connector.getLocalPort();<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.608"></a>
-<span class="sourceLineNo">609</span>  }<a name="line.609"></a>
-<span class="sourceLineNo">610</span>  /**<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   */<a name="line.612"></a>
-<span class="sourceLineNo">613</span>  @Override<a name="line.613"></a>
-<span class="sourceLineNo">614</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    try {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      super.login(user, host);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    } catch (IOException ie) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      user.login("hbase.master.keytab.file",<a name="line.618"></a>
-<span class="sourceLineNo">619</span>        "hbase.master.kerberos.principal", host);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    }<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>  /**<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   * If configured to put regions on active master,<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   * wait till a backup master becomes active.<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.626"></a>
-<span class="sourceLineNo">627</span>   */<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  @Override<a name="line.628"></a>
-<span class="sourceLineNo">629</span>  protected void waitForMasterActive(){<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      sleeper.sleep();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    }<a name="line.633"></a>
-<span class="sourceLineNo">634</span>  }<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>  @VisibleForTesting<a name="line.636"></a>
-<span class="sourceLineNo">637</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    return (MasterRpcServices)rpcServices;<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
-<span class="sourceLineNo">640</span><a name="line.640"></a>
-<span class="sourceLineNo">641</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>  @Override<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  protected String getProcessName() {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    return MASTER;<a name="line.647"></a>
-<span class="sourceLineNo">648</span>  }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span>  @Override<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  protected boolean canCreateBaseZNode() {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    return true;<a name="line.652"></a>
-<span class="sourceLineNo">653</span>  }<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>  @Override<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  protected boolean canUpdateTableDescriptor() {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    return true;<a name="line.657"></a>
-<span class="sourceLineNo">658</span>  }<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>  @Override<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    return new MasterRpcServices(this);<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  }<a name="line.663"></a>
-<span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>  @Override<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  protected void configureInfoServer() {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    infoServer.setAttribute(MASTER, this);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      super.configureInfoServer();<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    }<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>  @Override<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.675"></a>
-<span class="sourceLineNo">676</span>    return MasterDumpServlet.class;<a name="line.676"></a>
-<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
-<span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>  @Override<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public MetricsMaster getMasterMetrics() {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    return metricsMaster;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>  }<a name="line.682"></a>
-<span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>  /**<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * Initialize all ZK based system trackers.<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   */<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  void initializeZKBasedSystemTrackers() throws IOException,<a name="line.687"></a>
-<span class="sourceLineNo">688</span>      InterruptedException, KeeperException, CoordinatedStateException {<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    this.normalizer.setMasterServices(this);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    this.loadBalancerTracker.start();<a name="line.694"></a>
-<span class="sourceLineNo">695</span><a name="line.695"></a>
-<span class="sourceLineNo">696</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    this.regionNormalizerTracker.start();<a name="line.697"></a>
+<span class="sourceLineNo">572</span>    if(infoPort == infoServer.getPort()) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      return infoPort;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>      String msg =<a name="line.577"></a>
+<span class="sourceLineNo">578</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.578"></a>
+<span class="sourceLineNo">579</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.579"></a>
+<span class="sourceLineNo">580</span>              + "hbase.master.info.bindAddress";<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      LOG.error(msg);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      throw new IOException(msg);<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    }<a name="line.583"></a>
+<span class="sourceLineNo">584</span><a name="line.584"></a>
+<span class="sourceLineNo">585</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    // a second entire stack here.<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    masterJettyServer = new Server();<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    connector.setHost(addr);<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    connector.setPort(infoPort);<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    masterJettyServer.addConnector(connector);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>    final String redirectHostname = shouldUseThisHostnameInstead() ? useThisHostnameInstead : null;<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.599"></a>
+<span class="sourceLineNo">600</span>    context.setServer(masterJettyServer);<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>    try {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      masterJettyServer.start();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    } catch (Exception e) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    }<a name="line.606"></a>
+<span class="sourceLineNo">607</span>    return connector.getLocalPort();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>  }<a name="line.608"></a>
+<span class="sourceLineNo">609</span><a name="line.609"></a>
+<span class="sourceLineNo">610</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.611"></a>
+<span class="sourceLineNo">612</span>  }<a name="line.612"></a>
+<span class="sourceLineNo">613</span>  /**<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   */<a name="line.615"></a>
+<span class="sourceLineNo">616</span>  @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    try {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      super.login(user, host);<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    } catch (IOException ie) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>      user.login("hbase.master.keytab.file",<a name="line.621"></a>
+<span class="sourceLineNo">622</span>        "hbase.master.kerberos.principal", host);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    }<a name="line.623"></a>
+<span class="sourceLineNo">624</span>  }<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>  /**<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   * If configured to put regions on active master,<a name="line.627"></a>
+<span class="sourceLineNo">628</span>   * wait till a backup master becomes active.<a name="line.628"></a>
+<span class="sourceLineNo">629</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.629"></a>
+<span class="sourceLineNo">630</span>   */<a name="line.630"></a>
+<span class="sourceLineNo">631</span>  @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>  protected void waitForMasterActive(){<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      sleeper.sleep();<a name="line.635"></a>
+<span class="sourceLineNo">636</span>    }<a name="line.636"></a>
+<span class="sourceLineNo">637</span>  }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>  @VisibleForTesting<a name="line.639"></a>
+<span class="sourceLineNo">640</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>    return (MasterRpcServices)rpcServices;<a name="line.641"></a>
+<span class="sourceLineNo">642</span>  }<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>  }<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>  @Override<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  protected String getProcessName() {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    return MASTER;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>  protected boolean canCreateBaseZNode() {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>    return true;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>  @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>  protected boolean canUpdateTableDescriptor() {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    return true;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>  @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    return new MasterRpcServices(this);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>  @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>  protected void configureInfoServer() {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.670"></a>
+<span class="sourceLineNo">671</span>    infoServer.setAttribute(MASTER, this);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      super.configureInfoServer();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>  }<a name="line.675"></a>
+<span class="sourceLineNo">676</span><a name="line.676"></a>
+<span class="sourceLineNo">677</span>  @Override<a name="line.677"></a>
+<span class="sourceLineNo">678</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>    return MasterDumpServlet.class;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>  }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>  @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>  public MetricsMaster getMasterMetrics() {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    return metricsMaster;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>  }<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span>  /**<a name="line.687"></a>
+<span class="sourceLineNo">688</span>   * Initialize all ZK based system trackers.<a name="line.688"></a>
+<span class="sourceLineNo">689</span>   */<a name="line.689"></a>
+<span class="sourceLineNo">690</span>  void initializeZKBasedSystemTrackers() throws IOException,<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      InterruptedException, KeeperException, CoordinatedStateException {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>    this.normalizer.setMasterServices(this);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    this.loadBalancerTracker.start();<a name="line.697"></a>
 <span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    this.splitOrMergeTracker.start();<a name="line.700"></a>
+<span class="sourceLineNo">699</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    this.regionNormalizerTracker.start();<a name="line.700"></a>
 <span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>    // Create Assignment Manager<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    this.assignmentManager = new AssignmentManager(this);<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    this.assignmentManager.start();<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>    this.replicationManager = new ReplicationManager(conf, zooKeeper, this);<a name="line.706"></a>
-<span class="sourceLineNo">707</span><a name="line.707"></a>
-<span class="sourceLineNo">708</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    this.regionServerTracker.start();<a name="line.709"></a>
+<span class="sourceLineNo">702</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    this.splitOrMergeTracker.start();<a name="line.703"></a>
+<span class="sourceLineNo">704</span><a name="line.704"></a>
+<span class="sourceLineNo">705</span>    // Create Assignment Manager<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    this.assignmentManager = new AssignmentManager(this);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>    this.assignmentManager.start();<a name="line.707"></a>
+<span class="sourceLineNo">708</span><a name="line.708"></a>
+<span class="sourceLineNo">709</span>    this.replicationManager = new ReplicationManager(conf, zooKeeper, this);<a name="line.709"></a>
 <span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    this.drainingServerTracker.start();<a name="line.712"></a>
+<span class="sourceLineNo">711</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    this.regionServerTracker.start();<a name="line.712"></a>
 <span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    this.maintenanceModeTracker.start();<a name="line.715"></a>
+<span class="sourceLineNo">714</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    this.drainingServerTracker.start();<a name="line.715"></a>
 <span class="sourceLineNo">716</span><a name="line.716"></a>
-<span class="sourceLineNo">717</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    // going ahead with their startup.<a name="line.718"></a>
-<span class="sourceLineNo">719</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    LOG.info("Server active/primary master=" + this.serverName +<a name="line.722"></a>
-<span class="sourceLineNo">723</span>        ", sessionid=0x" +<a name="line.723"></a>
-<span class="sourceLineNo">724</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.724"></a>
-<span class="sourceLineNo">725</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.725"></a>
-<span class="sourceLineNo">726</span><a name="line.726"></a>
-<span class="sourceLineNo">727</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    this.snapshotManager = new SnapshotManager();<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    this.mpmHost.register(this.snapshotManager);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    this.mpmHost.loadProcedures(conf);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>  }<a name="line.734"></a>
-<span class="sourceLineNo">735</span><a name="line.735"></a>
-<span class="sourceLineNo">736</span>  /**<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   *<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   * &lt;ol&gt;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>   * &lt;li&gt;Initialize master components - file system manager, server manager,<a name="line.740"></a>
-<span class="sourceLineNo">741</span>   *     assignment manager, region server tracker, etc&lt;/li&gt;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior,<a name="line.742"></a>
-<span class="sourceLineNo">743</span>   *     executor services, etc&lt;/li&gt;<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   * &lt;li&gt;Set cluster as UP in ZooKeeper&lt;/li&gt;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * &lt;li&gt;Wait for RegionServers to check-in&lt;/li&gt;<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * &lt;li&gt;Split logs and perform data recovery, if necessary&lt;/li&gt;<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * &lt;li&gt;Ensure assignment of meta/namespace regions&lt;li&gt;<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * &lt;li&gt;Handle either fresh cluster start or master failover&lt;/li&gt;<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   * &lt;/ol&gt;<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  private void finishActiveMasterInitialization(MonitoredTask status)<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      throws IOException, InterruptedException, KeeperException, CoordinatedStateException {<a name="line.752"></a>
-<span class="sourceLineNo">753</span><a name="line.753"></a>
-<span class="sourceLineNo">754</span>    activeMaster = true;<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.755"></a>
-<span class="sourceLineNo">756</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    zombieDetector.start();<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    /*<a name="line.759"></a>
-<span class="sourceLineNo">760</span>     * We are active master now... go initialize components we need to run.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>     * Note, there may be dross in zk from previous runs; it'll get addressed<a name="line.761"></a>
-<span class="sourceLineNo">762</span>     * below after we determine if cluster startup or failover.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>     */<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    status.setStatus("Initializing Master file system");<a name="line.765"></a>
-<span class="sourceLineNo">766</span><a name="line.766"></a>
-<span class="sourceLineNo">767</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.768"></a>
-<span class="sourceLineNo">769</span>    // Initialize the chunkCreator<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    initializeMemStoreChunkCreator();<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    this.walManager = new MasterWalManager(this);<a name="line.772"></a>
-<span class="sourceLineNo">773</span><a name="line.773"></a>
-<span class="sourceLineNo">774</span>    // enable table descriptors cache<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    this.tableDescriptors.setCacheOn();<a name="line.775"></a>
+<span class="sourceLineNo">717</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    this.maintenanceModeTracker.start();<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.720"></a>
+<span class="sourceLineNo">721</span>    // going ahead with their startup.<a name="line.721"></a>
+<span class="sourceLineNo">722</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.722"></a>
+<span class="sourceLineNo">723</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.723"></a>
+<span class="sourceLineNo">724</span><a name="line.724"></a>
+<span class="sourceLineNo">725</span>    LOG.info("Server active/primary master=" + this.serverName +<a name="line.725"></a>
+<span class="sourceLineNo">726</span>        ", sessionid=0x" +<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.730"></a>
+<span class="sourceLineNo">731</span>    this.snapshotManager = new SnapshotManager();<a name="line.731"></a>
+<span class="sourceLineNo">732</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.732"></a>
+<span class="sourceLineNo">733</span>    this.mpmHost.register(this.snapshotManager);<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    this.mpmHost.loadProcedures(conf);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>  }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>  /**<a name="line.739"></a>
+<span class="sourceLineNo">740</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   *<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * &lt;ol&gt;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   * &lt;li&gt;Initialize master components - file system manager, server manager,<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   *     assignment manager, region server tracker, etc&lt;/li&gt;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior,<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   *     executor services, etc&lt;/li&gt;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>   * &lt;li&gt;Set cluster as UP in ZooKeeper&lt;/li&gt;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>   * &lt;li&gt;Wait for RegionServers to check-in&lt;/li&gt;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>   * &lt;li&gt;Split logs and perform data recovery, if necessary&lt;/li&gt;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>   * &lt;li&gt;Ensure assignment of meta/namespace regions&lt;li&gt;<a name="line.750"></a>
+<span class="sourceLineNo">751</span>   * &lt;li&gt;Handle either fresh cluster start or master failover&lt;/li&gt;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>   * &lt;/ol&gt;<a name="line.752"></a>
+<span class="sourceLineNo">753</span>   */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>  private void finishActiveMasterInitialization(MonitoredTask status)<a name="line.754"></a>
+<span class="sourceLineNo">755</span>      throws IOException, InterruptedException, KeeperException, CoordinatedStateException {<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>    activeMaster = true;<a name="line.757"></a>
+<span class="sourceLineNo">758</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.758"></a>
+<span class="sourceLineNo">759</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.759"></a>
+<span class="sourceLineNo">760</span>    zombieDetector.start();<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>    /*<a name="line.762"></a>
+<span class="sourceLineNo">763</span>     * We are active master now... go initialize components we need to run.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>     * Note, there may be dross in zk from previous runs; it'll get addressed<a name="line.764"></a>
+<span class="sourceLineNo">765</span>     * below after we determine if cluster startup or failover.<a name="line.765"></a>
+<span class="sourceLineNo">766</span>     */<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>    status.setStatus("Initializing Master file system");<a name="line.768"></a>
+<span class="sourceLineNo">769</span><a name="line.769"></a>
+<span class="sourceLineNo">770</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.770"></a>
+<span class="sourceLineNo">771</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    // Initialize the chunkCreator<a name="line.772"></a>
+<span class="sourceLineNo">773</span>    initializeMemStoreChunkCreator();<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    this.walManager = new MasterWalManager(this);<a name="line.775"></a>
 <span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>    // warm-up HTDs cache on master initialization<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    if (preLoadTableDescriptors) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      status.setStatus("Pre-loading table descriptors");<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      this.tableDescriptors.getAll();<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    }<a name="line.781"></a>
-<span class="sourceLineNo">782</span><a name="line.782"></a>
-<span class="sourceLineNo">783</span>    // publish cluster ID<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    status.setStatus("Publishing Cluster ID in ZooKeeper");<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    this.initLatch.countDown();<a name="line.786"></a>
-<span class="sourceLineNo">787</span><a name="line.787"></a>
-<span class="sourceLineNo">788</span>    this.serverManager = createServerManager(this);<a name="line.788"></a>
-<span class="sourceLineNo">789</span><a name="line.789"></a>
-<span class="sourceLineNo">790</span>    this.tableStateManager = new TableStateManager(this);<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    status.setStatus("Initializing ZK system trackers");<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    initializeZKBasedSystemTrackers();<a name="line.793"></a>
+<span class="sourceLineNo">777</span>    // enable table descriptors cache<a name="line.777"></a>
+<span class="sourceLineNo">778</span>    this.tableDescriptors.setCacheOn();<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>    // warm-up HTDs cache on master initialization<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    if (preLoadTableDescriptors) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>      status.setStatus("Pre-loading table descriptors");<a name="line.782"></a>
+<span class="sourceLineNo">783</span>      this.tableDescriptors.getAll();<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    }<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span>    // publish cluster ID<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    status.setStatus("Publishing Cluster ID in ZooKeeper");<a name="line.787"></a>
+<span class="sourceLineNo">788</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    this.initLatch.countDown();<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>    this.serverManager = createServerManager(this);<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>    this.tableStateManager = new TableStateManager(this);<a name="line.793"></a>
 <span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    // This is for backwards compatibility<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    // See HBASE-11393<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    status.setStatus("Update TableCFs node in ZNode");<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    TableCFsUpdater tableCFsUpdater = new TableCFsUpdater(zooKeeper,<a name="line.798"></a>
-<span class="sourceLineNo">799</span>            conf, this.clusterConnection);<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    tableCFsUpdater.update();<a name="line.800"></a>
-<span class="sourceLineNo">801</span><a name="line.801"></a>
-<span class="sourceLineNo">802</span>    // Add the Observer to delete space quotas on table deletion before starting all CPs by<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    // default with quota support, avoiding if user specifically asks to not load this Observer.<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      updateConfigurationForSpaceQuotaObserver(conf);<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    }<a name="line.806"></a>
-<span class="sourceLineNo">807</span>    // initialize master side coprocessors before we start handling requests<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    status.setStatus("Initializing master coprocessors");<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    this.cpHost = new MasterCoprocessorHost(this, this.conf);<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>    // start up all service threads.<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    status.setStatus("Initializing master service threads");<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    startServiceThreads();<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>    // Wake up this server to check in<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    sleeper.skipSleepCycle();<a name="line.816"></a>
+<span class="sourceLineNo">795</span>    status.setStatus("Initializing ZK system trackers");<a name="line.795"></a>
+<span class="sourceLineNo">796</span>    initializeZKBasedSystemTrackers();<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>    // This is for backwards compatibility<a name="line.798"></a>
+<span class="sourceLineNo">799</span>    // See HBASE-11393<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    status.setStatus("Update TableCFs node in ZNode");<a name="line.800"></a>
+<span class="sourceLineNo">801</span>    TableCFsUpdater tableCFsUpdater = new TableCFsUpdater(zooKeeper,<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            conf, this.clusterConnection);<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    tableCFsUpdater.update();<a name="line.803"></a>
+<span class="sourceLineNo">804</span><a name="line.804"></a>
+<span class="sourceLineNo">805</span>    // Add the Observer to delete space quotas on table deletion before starting all CPs by<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    // default with quota support, avoiding if user specifically asks to not load this Observer.<a name="line.806"></a>
+<span class="sourceLineNo">807</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>      updateConfigurationForSpaceQuotaObserver(conf);<a name="line.808"></a>
+<span class="sourceLineNo">809</span>    }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>    // initialize master side coprocessors before we start handling requests<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    status.setStatus("Initializing master coprocessors");<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    this.cpHost = new MasterCoprocessorHost(this, this.conf);<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>    // start up all service threads.<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    status.setStatus("Initializing master service threads");<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    startServiceThreads();<a name="line.816"></a>
 <span class="sourceLineNo">817</span><a name="line.817"></a>
-<span class="sourceLineNo">818</span>    // Wait for region servers to report in<a name="line.818"></a>
-<span class="sourceLineNo">819</span>    String statusStr = "Wait for region servers to report in";<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    status.setStatus(statusStr);<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    LOG.info(status);<a name="line.821"></a>
-<span class="sourceLineNo">822</span>    waitForRegionServers(status);<a name="line.822"></a>
-<span class="sourceLineNo">823</span><a name="line.823"></a>
-<span class="sourceLineNo">824</span>    if (this.balancer instanceof FavoredNodesPromoter) {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>      favoredNodesManager = new FavoredNodesManager(this);<a name="line.825"></a>
-<span class="sourceLineNo">826</span>    }<a name="line.826"></a>
-<span class="sourceLineNo">827</span>    // Wait for regionserver to finish initialization.<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      waitForServerOnline();<a name="line.829"></a>
-<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
-<span class="sourceLineNo">831</span><a name="line.831"></a>
-<span class="sourceLineNo">832</span>    //initialize load balancer<a name="line.832"></a>
-<span class="sourceLineNo">833</span>    this.balancer.setMasterServices(this);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    this.balancer.initialize();<a name="line.835"></a>
-<span class="sourceLineNo">836</span><a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Check if master is shutting down because of some issue<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // in initializing the regionserver or the balancer.<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    if (isStopped()) return;<a name="line.839"></a>
-<span class="sourceLineNo">840</span><a name="line.840"></a>
-<span class="sourceLineNo">841</span>    // Make sure meta assigned before proceeding.<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    status.setStatus("Recovering  Meta Region");<a name="line.842"></a>
+<span class="sourceLineNo">818</span>    // Wake up this server to check in<a name="line.818"></a>
+<span class="sourceLineNo">819</span>    sleeper.skipSleepCycle();<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>    // Wait for region servers to report in<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    String statusStr = "Wait for region servers to report in";<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    status.setStatus(statusStr);<a name="line.823"></a>
+<span class="sourceLineNo">824</span>    LOG.info(status);<a name="line.824"></a>
+<span class="sourceLineNo">825</span>    waitForRegionServers(status);<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>    if (this.balancer instanceof FavoredNodesPromoter) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>      favoredNodesManager = new FavoredNodesManager(this);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>    }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    // Wait for regionserver to finish initialization.<a name="line.830"></a>
+<span class="sourceLineNo">831</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      waitForServerOnline();<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    }<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>    //initialize load balancer<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    this.balancer.setMasterServices(this);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    this.balancer.initialize();<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>    // Check if master is shutting down because of some issue<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // in initializing the regionserver or the balancer.<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    if (isStopped()) return;<a name="line.842"></a>
 <span class="sourceLineNo">843</span><a name="line.843"></a>
-<span class="sourceLineNo">844</span>    // we recover hbase:meta region servers inside master initialization and<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    // handle other failed servers in SSH in order to start up master node ASAP<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    MasterMetaBootstrap metaBootstrap = createMetaBootstrap(this, status);<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    metaBootstrap.recoverMeta();<a name="line.847"></a>
-<span class="sourceLineNo">848</span><a name="line.848"></a>
-<span class="sourceLineNo">849</span>    // check if master is shutting down because above assignMeta could return even hbase:meta isn't<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    // assigned when master is shutting down<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    if (isStopped()) return;<a name="line.851"></a>
-<span class="sourceLineNo">852</span><a name="line.852"></a>
-<span class="sourceLineNo">853</span>    //Initialize after meta as it scans meta<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    if (favoredNodesManager != null) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      SnapshotOfRegionAssignmentFromMeta snapshotOfRegionAssignment =<a name="line.855"></a>
-<span class="sourceLineNo">856</span>          new SnapshotOfRegionAssignmentFromMeta(getConnection());<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      snapshotOfRegionAssignment.initialize();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      favoredNodesManager.initialize(snapshotOfRegionAssignment);<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    }<a name="line.859"></a>
-<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // migrating existent table state from zk, so splitters<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    // and recovery process treat states properly.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    for (Map.Entry&lt;TableName, TableState.State&gt; entry : ZKDataMigrator<a name="line.863"></a>
-<span class="sourceLineNo">864</span>        .queryForTableStates(getZooKeeper()).entrySet()) {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>      LOG.info("Converting state from zk to new states:" + entry);<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      tableStateManager.setTableState(entry.getKey(), entry.getValue());<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    }<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    ZKUtil.deleteChildrenRecursively(getZooKeeper(), getZooKeeper().znodePaths.tableZNode);<a name="line.868"></a>
-<span class="sourceLineNo">869</span><a name="line.869"></a>
-<span class="sourceLineNo">870</span>    status.setStatus("Submitting log splitting work for previously failed region servers");<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    metaBootstrap.processDeadServers();<a name="line.871"></a>
+<span class="sourceLineNo">844</span>    // Make sure meta assigned before proceeding.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    status.setStatus("Recovering  Meta Region");<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>    // we recover hbase:meta region servers inside master initialization and<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    // handle other failed servers in SSH in order to start up master node ASAP<a name="line.848"></a>
+<span class="sourceLineNo">849</span>    MasterMetaBootstrap metaBootstrap = createMetaBootstrap(this, status);<a name="line.849"></a>
+<span class="sourceLineNo">850</span>    metaBootstrap.recoverMeta();<a name="line.850"></a>
+<span class="sourceLineNo">851</span><a name="line.851"></a>
+<span class="sourceLineNo">852</span>    // check if master is shutting down because above assignMeta could return even hbase:meta isn't<a name="line.852"></a>
+<span class="sourceLineNo">853</span>    // assigned when master is shutting down<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    if (isStopped()) return;<a name="line.854"></a>
+<span class="sourceLineNo">855</span><a name="line.855"></a>
+<span class="sourceLineNo">856</span>    //Initialize after meta as it scans meta<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    if (favoredNodesManager != null) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>      SnapshotOfRegionAssignmentFromMeta snapshotOfRegionAssignment =<a name="line.858"></a>
+<span class="sourceLineNo">859</span>          new SnapshotOfRegionAssignmentFromMeta(getConnection());<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      snapshotOfRegionAssignment.initialize();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>      favoredNodesManager.initialize(snapshotOfRegionAssignment);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>    }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>    // migrating existent table state from zk, so splitters<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    // and recovery process treat states properly.<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    for (Map.Entry&lt;TableName, TableState.State&gt; entry : ZKDataMigrator<a name="line.866"></a>
+<span class="sourceLineNo">867</span>        .queryForTableStates(getZooKeeper()).entrySet()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>      LOG.info("Converting state from zk to new states:" + entry);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      tableStateManager.setTableState(entry.getKey(), entry.getValue());<a name="line.869"></a>
+<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    ZKUtil.deleteChildrenRecursively(getZooKeeper(), getZooKeeper().znodePaths.tableZNode);<a name="line.871"></a>
 <span class="sourceLineNo">872</span><a name="line.872"></a>
-<span class="sourceLineNo">873</span>    // Fix up assignment manager status<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    status.setStatus("Starting assignment manager");<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    this.assignmentManager.joinCluster();<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>    // set cluster status again after user regions are assigned<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.878"></a>
+<span class="sourceLineNo">873</span>    status.setStatus("Submitting log splitting work for previously failed region servers");<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    metaBootstrap.processDeadServers();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>    // Fix up assignment manager status<a name="line.876"></a>
+<span class="sourceLineNo">877</span>    status.setStatus("Starting assignment manager");<a name="line.877"></a>
+<span class="sourceLineNo">878</span>    this.assignmentManager.joinCluster();<a name="line.878"></a>
 <span class="sourceLineNo">879</span><a name="line.879"></a>
-<span class="sourceLineNo">880</span>    // Start balancer and meta catalog janitor after meta and regions have been assigned.<a name="line.880"></a>
-<span class="sourceLineNo">881</span>    status.setStatus("Starting balancer and catalog janitor");<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    this.clusterStatusChore = new ClusterStatusChore(this, balancer);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    getChoreService().scheduleChore(clusterStatusChore);<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    this.balancerChore = new BalancerChore(this);<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    getChoreService().scheduleChore(balancerChore);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    this.normalizerChore = new RegionNormalizerChore(this);<a name="line.886"></a>
-<span class="sourceLineNo">887</span>    getChoreService().scheduleChore(normalizerChore);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>    this.catalogJanitorChore = new CatalogJanitor(this);<a name="line.888"></a>
-<span class="sourceLineNo">889</span>    getChoreService().scheduleChore(catalogJanitorChore);<a name="line.889"></a>
-<span class="sourceLineNo">890</span><a name="line.890"></a>
-<span class="sourceLineNo">891</span>    status.setStatus("Starting cluster schema service");<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    initClusterSchemaService();<a name="line.892"></a>
+<span class="sourceLineNo">880</span>    // set cluster status again after user regions are assigned<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    this.balancer.setClusterStatus(getClusterStatus());<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>    // Start balancer and meta catalog janitor after meta and regions have been assigned.<a name="line.883"></a>
+<span class="sourceLineNo">884</span>    status.setStatus("Starting balancer and catalog janitor");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    this.clusterStatusChore = new ClusterStatusChore(this, balancer);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    getChoreService().scheduleChore(clusterStatusChore);<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    this.balancerChore = new BalancerChore(this);<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    getChoreService().scheduleChore(balancerChore);<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    this.normalizerChore = new RegionNormalizerChore(this);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    getChoreService().scheduleChore(normalizerChore);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    this.catalogJanitorChore = new CatalogJanitor(this);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>    getChoreService().scheduleChore(catalogJanitorChore);<a name="line.892"></a>
 <span class="sourceLineNo">893</span><a name="line.893"></a>
-<span class="sourceLineNo">894</span>    if (this.cpHost != null) {<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      try {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>        this.cpHost.preMasterInitialization();<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      } catch (IOException e) {<a name="line.897"></a>
-<span class="sourceLineNo">898</span>        LOG.error("Coprocessor preMasterInitialization() hook failed", e);<a name="line.898"></a>
-<span class="sourceLineNo">899</span>      }<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    }<a name="line.900"></a>
-<span class="sourceLineNo">901</span><a name="line.901"></a>
-<span class="sourceLineNo">902</span>    status.markComplete("Initialization successful");<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    LOG.info(String.format("Master has completed initialization %.3fsec",<a name="line.903"></a>
-<span class="sourceLineNo">904</span>       (System.currentTimeMillis() - masterActiveTime) / 1000.0f));<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    this.masterFinishedInitializationTime = System.currentTimeMillis();<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    configurationManager.registerObserver(this.balancer);<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    configurationManager.registerObserver(this.hfileCleaner);<a name="line.907"></a>
-<span class="sourceLineNo">908</span><a name="line.908"></a>
-<span class="sourceLineNo">909</span>    // Set master as 'initialized'.<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    setInitialized(true);<a name="line.910"></a>
+<span class="sourceLineNo">894</span>    status.setStatus("Starting cluster schema service");<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    initClusterSchemaService();<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>    if (this.cpHost != null) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>      try {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        this.cpHost.preMasterInitialization();<a name="line.899"></a>
+<span class="sourceLineNo">900</span>      } catch (IOException e) {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>        LOG.error("Coprocessor preMasterInitialization() hook failed", e);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>      }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    }<a name="line.903"></a>
+<span class="sourceLineNo">904</span><a name="line.904"></a>
+<span class="sourceLineNo">905</span>    status.markComplete("Initialization successful");<a name="line.905"></a>
+<span class="sourceLineNo">906</span>    LOG.info(String.format("Master has completed initialization %.3fsec",<a name="line.906"></a>
+<span class="sourceLineNo">907</span>       (System.currentTimeMillis() - masterActiveTime) / 1000.0f));<a name="line.907"></a>
+<span class="sourceLineNo">908</span>    this.masterFinishedInitializationTime = System.currentTimeMillis();<a name="line.908"></a>
+<span class="sourceLineNo">909</span>    configurationManager.registerObserver(this.balancer);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>    configurationManager.registerObserver(this.hfileCleaner);<a name="line.910"></a>
 <span class="sourceLineNo">911</span><a name="line.911"></a>
-<span class="sourceLineNo">912</span>    assignmentManager.checkIfShouldMoveSystemRegionAsync();<a name="line.912"></a>
-<span class="sourceLineNo">913</span><a name="line.913"></a>
-<span class="sourceLineNo">914</span>    status.setStatus("Assign meta replicas");<a name="line.914"></a>
-<span class="sourceLineNo">915</span>    metaBootstrap.assignMetaReplicas();<a name="line.915"></a>
+<span class="sourceLineNo">912</span>    // Set master as 'initialized'.<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    setInitialized(true);<a name="line.913"></a>
+<span class="sourceLineNo">914</span><a name="line.914"></a>
+<span class="sourceLineNo">915</span>    assignmentManager.checkIfShouldMoveSystemRegionAsync();<a name="line.915"></a>
 <span class="sourceLineNo">916</span><a name="line.916"></a>
-<span class="sourceLineNo">917</span>    status.setStatus("Starting quota manager");<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    initQuotaManager();<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      // Create the quota snapshot notifier<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      spaceQuotaSnapshotNotifier = createQuotaSnapshotNotifier();<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      spaceQuotaSnapshotNotifier.initialize(getClusterConnection());<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      this.quotaObserverChore = new QuotaObserverChore(this, getMasterMetrics());<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      // Start the chore to read the region FS space reports and act on them<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      getChoreService().scheduleChore(quotaObserverChore);<a name="line.925"></a>
-<span class="sourceLineNo">926</span><a name="line.926"></a>
-<span class="sourceLineNo">927</span>      this.snapshotQuotaChore = new SnapshotQuotaObserverChore(this, getMasterMetrics());<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      // Start the chore to read snapshots and add their usage to table/NS quotas<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      getChoreService().scheduleChore(snapshotQuotaChore);<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    // master initialization. See HBASE-5916.<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.935"></a>
-<span class="sourceLineNo">936</span><a name="line.936"></a>
-<span class="sourceLineNo">937</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    status.setStatus("Checking ZNode ACLs");<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    initMobCleaner();<a name="line.942"></a>
+<span class="sourceLineNo">917</span>    status.setStatus("Assign meta replicas");<a name="line.917"></a>
+<span class="sourceLineNo">918</span>    metaBootstrap.assignMetaReplicas();<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span>    status.setStatus("Starting quota manager");<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    initQuotaManager();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>      // Create the quota snapshot notifier<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      spaceQuotaSnapshotNotifier = createQuotaSnapshotNotifier();<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      spaceQuotaSnapshotNotifier.initialize(getClusterConnection());<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      this.quotaObserverChore = new QuotaObserverChore(this, getMasterMetrics());<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      // Start the chore to read the region FS space reports and act on them<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      getChoreService().scheduleChore(quotaObserverChore);<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>      this.snapshotQuotaChore = new SnapshotQuotaObserverChore(this, getMasterMetrics());<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      // Start the chore to read snapshots and add their usage to table/NS quotas<a name="line.931"></a>
+<span class="sourceLineNo">932</span>      getChoreService().scheduleChore(snapshotQuotaChore);<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
+<span class="sourceLineNo">934</span><a name="line.934"></a>
+<span class="sourceLineNo">935</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    // master initialization. See HBASE-5916.<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    status.setStatus("Checking ZNode ACLs");<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.942"></a>
 <span class="sourceLineNo">943</span><a name="line.943"></a>
-<span class="sourceLineNo">944</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    if (this.cpHost != null) {<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      // don't let cp initialization errors kill the master<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      try {<a name="line.947"></a>
-<span class="sourceLineNo">948</span>        this.cpHost.postStartMaster();<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      } catch (IOException ioe) {<a name="line.949"></a>
-<span class="sourceLineNo">950</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      }<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    }<a name="line.952"></a>
-<span class="sourceLineNo">953</span><a name="line.953"></a>
-<span class="sourceLineNo">954</span>    zombieDetector.interrupt();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>  }<a name="line.955"></a>
+<span class="sourceLineNo">944</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    initMobCleaner();<a name="line.945"></a>
+<span class="sourceLineNo">946</span><a name="line.946"></a>
+<span class="sourceLineNo">947</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.947"></a>
+<span class="sourceLineNo">948</span>    if (this.cpHost != null) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      // don't let cp initialization errors kill the master<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      try {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        this.cpHost.postStartMaster();<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      } catch (IOException ioe) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>    }<a name="line.955"></a>
 <span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>  /**<a name="line.957"></a>
-<span class="sourceLineNo">958</span>   * Adds the {@code MasterSpaceQuotaObserver} to the list of configured Master observers to<a name="line.958"></a>
-<span class="sourceLineNo">959</span>   * automatically remove space quotas for a table when that table is deleted.<a name="line.959"></a>
-<span class="sourceLineNo">960</span>   */<a name="line.960"></a>
-<span class="sourceLineNo">961</span>  @VisibleForTesting<a name="line.961"></a>
-<span class="sourceLineNo">962</span>  public void updateConfigurationForSpaceQuotaObserver(Configuration conf) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    // We're configured to not delete quotas on table deletion, so we don't need to add the obs.<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    if (!conf.getBoolean(<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          MasterSpaceQuotaObserver.REMOVE_QUOTA_ON_TABLE_DELETE,<a name="line.965"></a>
-<span class="sourceLineNo">966</span>          MasterSpaceQuotaObserver.REMOVE_QUOTA_ON_TABLE_DELETE_DEFAULT)) {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      return;<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span>    String[] masterCoprocs = conf.getStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    final int length = null == masterCoprocs ? 0 : masterCoprocs.length;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    String[] updatedCoprocs = new String[length + 1];<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    if (length &gt; 0) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>      System.arraycopy(masterCoprocs, 0, updatedCoprocs, 0, masterCoprocs.length);<a name="line.973"></a>
-<span class="sourceLineNo">974</span>    }<a name="line.974"></a>
-<span class="sourceLineNo">975</span>    updatedCoprocs[length] = MasterSpaceQuotaObserver.class.getName();<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    conf.setStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, updatedCoprocs);<a name="line.976"></a>
-<span class="sourceLineNo">977</span>  }<a name="line.977"></a>
-<span class="sourceLineNo">978</span><a name="line.978"></a>
-<span class="sourceLineNo">979</span>  private void initMobCleaner() {<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    this.expiredMobFileCleanerChore = new ExpiredMobFileCleanerChore(this);<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    getChoreService().scheduleChore(expiredMobFileCleanerChore);<a name="line.981"></a>
-<span class="sourceLineNo">982</span><a name="line.982"></a>
-<span class="sourceLineNo">983</span>    int mobCompactionPeriod = conf.getInt(MobConstants.MOB_COMPACTION_CHORE_PERIOD,<a name="line.983"></a>
-<span class="sourceLineNo">984</span>        MobConstants.DEFAULT_MOB_COMPACTION_CHORE_PERIOD);<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    if (mobCompactionPeriod &gt; 0) {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      this.mobCompactChore = new MobCompactionChore(this, mobCompactionPeriod);<a name="line.986"></a>
-<span class="sourceLineNo">987</span>      getChoreService().scheduleChore(mobCompactChore);<a name="line.987"></a>
-<span class="sourceLineNo">988</span>    } else {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>      LOG<a name="line.989"></a>
-<span class="sourceLineNo">990</span>        .info("The period is " + mobCompactionPeriod + " seconds, MobCompactionChore is disabled");<a name="line.990"></a>
-<span class="sourceLineNo">991</span>    }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>    this.mobCompactThread = new MasterMobCompactionThread(this);<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  }<a name="line.993"></a>
-<span class="sourceLineNo">994</span><a name="line.994"></a>
-<span class="sourceLineNo">995</span>  /**<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   * Create a {@link MasterMetaBootstrap} instance.<a name="line.996"></a>
-<span class="sourceLineNo">997</span>   */<a name="line.997"></a>
-<span class="sourceLineNo">998</span>  MasterMetaBootstrap createMetaBootstrap(final HMaster master, final MonitoredTask status) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    // w/ a mocked up MasterMetaBootstrap.<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    return new MasterMetaBootstrap(master, status);<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  }<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  /**<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>   * Create a {@link ServerManager} instance.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   */<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>  ServerManager createServerManager(final MasterServices master) throws IOException {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>    // w/ a mocked up ServerManager.<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    setupClusterConnection();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>    return new ServerManager(master);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>  }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span><a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  private void waitForRegionServers(final MonitoredTask status)<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      throws IOException, InterruptedException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    this.serverManager.waitForRegionServers(status);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    // Check zk for region servers that are up but didn't register<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>    for (ServerName sn: this.regionServerTracker.getOnlineServers()) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>      // The isServerOnline check is opportunistic, correctness is handled inside<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      if (!this.serverManager.isServerOnline(sn) &amp;&amp;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>          serverManager.checkAndRecordNewServer(sn, ServerLoad.EMPTY_SERVERLOAD)) {<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>        LOG.info("Registered server found up in zk but who has not yet reported in: " + sn);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>  }<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span><a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  void initClusterSchemaService() throws IOException, InterruptedException {<a name="line.1027"></a>
-<span class

<TRUNCATED>

[19/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 3f6cff2..41332bd 100644
--- a/book.html
+++ b/book.html
@@ -44,241 +44,242 @@
 <li><a href="#upgrading">Upgrading</a>
 <ul class="sectlevel1">
 <li><a href="#hbase.versioning">11. HBase version number and compatibility</a></li>
-<li><a href="#_upgrade_paths">12. Upgrade Paths</a></li>
+<li><a href="#_rollback">12. Rollback</a></li>
+<li><a href="#_upgrade_paths">13. Upgrade Paths</a></li>
 </ul>
 </li>
 <li><a href="#shell">The Apache HBase Shell</a>
 <ul class="sectlevel1">
-<li><a href="#scripting">13. Scripting with Ruby</a></li>
-<li><a href="#_running_the_shell_in_non_interactive_mode">14. Running the Shell in Non-Interactive Mode</a></li>
-<li><a href="#hbase.shell.noninteractive">15. HBase Shell in OS Scripts</a></li>
-<li><a href="#_read_hbase_shell_commands_from_a_command_file">16. Read HBase Shell Commands from a Command File</a></li>
-<li><a href="#_passing_vm_options_to_the_shell">17. Passing VM Options to the Shell</a></li>
-<li><a href="#_shell_tricks">18. Shell Tricks</a></li>
+<li><a href="#scripting">14. Scripting with Ruby</a></li>
+<li><a href="#_running_the_shell_in_non_interactive_mode">15. Running the Shell in Non-Interactive Mode</a></li>
+<li><a href="#hbase.shell.noninteractive">16. HBase Shell in OS Scripts</a></li>
+<li><a href="#_read_hbase_shell_commands_from_a_command_file">17. Read HBase Shell Commands from a Command File</a></li>
+<li><a href="#_passing_vm_options_to_the_shell">18. Passing VM Options to the Shell</a></li>
+<li><a href="#_shell_tricks">19. Shell Tricks</a></li>
 </ul>
 </li>
 <li><a href="#datamodel">Data Model</a>
 <ul class="sectlevel1">
-<li><a href="#conceptual.view">19. Conceptual View</a></li>
-<li><a href="#physical.view">20. Physical View</a></li>
-<li><a href="#_namespace">21. Namespace</a></li>
-<li><a href="#_table">22. Table</a></li>
-<li><a href="#_row">23. Row</a></li>
-<li><a href="#columnfamily">24. Column Family</a></li>
-<li><a href="#_cells">25. Cells</a></li>
-<li><a href="#_data_model_operations">26. Data Model Operations</a></li>
-<li><a href="#versions">27. Versions</a></li>
-<li><a href="#dm.sort">28. Sort Order</a></li>
-<li><a href="#dm.column.metadata">29. Column Metadata</a></li>
-<li><a href="#joins">30. Joins</a></li>
-<li><a href="#_acid">31. ACID</a></li>
+<li><a href="#conceptual.view">20. Conceptual View</a></li>
+<li><a href="#physical.view">21. Physical View</a></li>
+<li><a href="#_namespace">22. Namespace</a></li>
+<li><a href="#_table">23. Table</a></li>
+<li><a href="#_row">24. Row</a></li>
+<li><a href="#columnfamily">25. Column Family</a></li>
+<li><a href="#_cells">26. Cells</a></li>
+<li><a href="#_data_model_operations">27. Data Model Operations</a></li>
+<li><a href="#versions">28. Versions</a></li>
+<li><a href="#dm.sort">29. Sort Order</a></li>
+<li><a href="#dm.column.metadata">30. Column Metadata</a></li>
+<li><a href="#joins">31. Joins</a></li>
+<li><a href="#_acid">32. ACID</a></li>
 </ul>
 </li>
 <li><a href="#schema">HBase and Schema Design</a>
 <ul class="sectlevel1">
-<li><a href="#schema.creation">32. Schema Creation</a></li>
-<li><a href="#table_schema_rules_of_thumb">33. Table Schema Rules Of Thumb</a></li>
+<li><a href="#schema.creation">33. Schema Creation</a></li>
+<li><a href="#table_schema_rules_of_thumb">34. Table Schema Rules Of Thumb</a></li>
 </ul>
 </li>
 <li><a href="#regionserver_sizing_rules_of_thumb">RegionServer Sizing Rules of Thumb</a>
 <ul class="sectlevel1">
-<li><a href="#number.of.cfs">34. On the number of column families</a></li>
-<li><a href="#rowkey.design">35. Rowkey Design</a></li>
-<li><a href="#schema.versions">36. Number of Versions</a></li>
-<li><a href="#supported.datatypes">37. Supported Datatypes</a></li>
-<li><a href="#schema.joins">38. Joins</a></li>
-<li><a href="#ttl">39. Time To Live (TTL)</a></li>
-<li><a href="#cf.keep.deleted">40. Keeping Deleted Cells</a></li>
-<li><a href="#secondary.indexes">41. Secondary Indexes and Alternate Query Paths</a></li>
-<li><a href="#_constraints">42. Constraints</a></li>
-<li><a href="#schema.casestudies">43. Schema Design Case Studies</a></li>
-<li><a href="#schema.ops">44. Operational and Performance Configuration Options</a></li>
-<li><a href="#_special_cases">45. Special Cases</a></li>
+<li><a href="#number.of.cfs">35. On the number of column families</a></li>
+<li><a href="#rowkey.design">36. Rowkey Design</a></li>
+<li><a href="#schema.versions">37. Number of Versions</a></li>
+<li><a href="#supported.datatypes">38. Supported Datatypes</a></li>
+<li><a href="#schema.joins">39. Joins</a></li>
+<li><a href="#ttl">40. Time To Live (TTL)</a></li>
+<li><a href="#cf.keep.deleted">41. Keeping Deleted Cells</a></li>
+<li><a href="#secondary.indexes">42. Secondary Indexes and Alternate Query Paths</a></li>
+<li><a href="#_constraints">43. Constraints</a></li>
+<li><a href="#schema.casestudies">44. Schema Design Case Studies</a></li>
+<li><a href="#schema.ops">45. Operational and Performance Configuration Options</a></li>
+<li><a href="#_special_cases">46. Special Cases</a></li>
 </ul>
 </li>
 <li><a href="#mapreduce">HBase and MapReduce</a>
 <ul class="sectlevel1">
-<li><a href="#hbase.mapreduce.classpath">46. HBase, MapReduce, and the CLASSPATH</a></li>
-<li><a href="#_mapreduce_scan_caching">47. MapReduce Scan Caching</a></li>
-<li><a href="#_bundled_hbase_mapreduce_jobs">48. Bundled HBase MapReduce Jobs</a></li>
-<li><a href="#_hbase_as_a_mapreduce_job_data_source_and_data_sink">49. HBase as a MapReduce Job Data Source and Data Sink</a></li>
-<li><a href="#_writing_hfiles_directly_during_bulk_import">50. Writing HFiles Directly During Bulk Import</a></li>
-<li><a href="#_rowcounter_example">51. RowCounter Example</a></li>
-<li><a href="#splitter">52. Map-Task Splitting</a></li>
-<li><a href="#mapreduce.example">53. HBase MapReduce Examples</a></li>
-<li><a href="#mapreduce.htable.access">54. Accessing Other HBase Tables in a MapReduce Job</a></li>
-<li><a href="#mapreduce.specex">55. Speculative Execution</a></li>
-<li><a href="#cascading">56. Cascading</a></li>
+<li><a href="#hbase.mapreduce.classpath">47. HBase, MapReduce, and the CLASSPATH</a></li>
+<li><a href="#_mapreduce_scan_caching">48. MapReduce Scan Caching</a></li>
+<li><a href="#_bundled_hbase_mapreduce_jobs">49. Bundled HBase MapReduce Jobs</a></li>
+<li><a href="#_hbase_as_a_mapreduce_job_data_source_and_data_sink">50. HBase as a MapReduce Job Data Source and Data Sink</a></li>
+<li><a href="#_writing_hfiles_directly_during_bulk_import">51. Writing HFiles Directly During Bulk Import</a></li>
+<li><a href="#_rowcounter_example">52. RowCounter Example</a></li>
+<li><a href="#splitter">53. Map-Task Splitting</a></li>
+<li><a href="#mapreduce.example">54. HBase MapReduce Examples</a></li>
+<li><a href="#mapreduce.htable.access">55. Accessing Other HBase Tables in a MapReduce Job</a></li>
+<li><a href="#mapreduce.specex">56. Speculative Execution</a></li>
+<li><a href="#cascading">57. Cascading</a></li>
 </ul>
 </li>
 <li><a href="#security">Securing Apache HBase</a>
 <ul class="sectlevel1">
-<li><a href="#_using_secure_http_https_for_the_web_ui">57. Using Secure HTTP (HTTPS) for the Web UI</a></li>
-<li><a href="#hbase.secure.spnego.ui">58. Using SPNEGO for Kerberos authentication with Web UIs</a></li>
-<li><a href="#hbase.secure.configuration">59. Secure Client Access to Apache HBase</a></li>
-<li><a href="#hbase.secure.simpleconfiguration">60. Simple User Access to Apache HBase</a></li>
-<li><a href="#_securing_access_to_hdfs_and_zookeeper">61. Securing Access to HDFS and ZooKeeper</a></li>
-<li><a href="#_securing_access_to_your_data">62. Securing Access To Your Data</a></li>
-<li><a href="#security.example.config">63. Security Configuration Example</a></li>
+<li><a href="#_using_secure_http_https_for_the_web_ui">58. Using Secure HTTP (HTTPS) for the Web UI</a></li>
+<li><a href="#hbase.secure.spnego.ui">59. Using SPNEGO for Kerberos authentication with Web UIs</a></li>
+<li><a href="#hbase.secure.configuration">60. Secure Client Access to Apache HBase</a></li>
+<li><a href="#hbase.secure.simpleconfiguration">61. Simple User Access to Apache HBase</a></li>
+<li><a href="#_securing_access_to_hdfs_and_zookeeper">62. Securing Access to HDFS and ZooKeeper</a></li>
+<li><a href="#_securing_access_to_your_data">63. Securing Access To Your Data</a></li>
+<li><a href="#security.example.config">64. Security Configuration Example</a></li>
 </ul>
 </li>
 <li><a href="#_architecture">Architecture</a>
 <ul class="sectlevel1">
-<li><a href="#arch.overview">64. Overview</a></li>
-<li><a href="#arch.catalog">65. Catalog Tables</a></li>
-<li><a href="#architecture.client">66. Client</a></li>
-<li><a href="#client.filter">67. Client Request Filters</a></li>
-<li><a href="#architecture.master">68. Master</a></li>
-<li><a href="#regionserver.arch">69. RegionServer</a></li>
-<li><a href="#regions.arch">70. Regions</a></li>
-<li><a href="#arch.bulk.load">71. Bulk Loading</a></li>
-<li><a href="#arch.hdfs">72. HDFS</a></li>
-<li><a href="#arch.timelineconsistent.reads">73. Timeline-consistent High Available Reads</a></li>
-<li><a href="#hbase_mob">74. Storing Medium-sized Objects (MOB)</a></li>
+<li><a href="#arch.overview">65. Overview</a></li>
+<li><a href="#arch.catalog">66. Catalog Tables</a></li>
+<li><a href="#architecture.client">67. Client</a></li>
+<li><a href="#client.filter">68. Client Request Filters</a></li>
+<li><a href="#architecture.master">69. Master</a></li>
+<li><a href="#regionserver.arch">70. RegionServer</a></li>
+<li><a href="#regions.arch">71. Regions</a></li>
+<li><a href="#arch.bulk.load">72. Bulk Loading</a></li>
+<li><a href="#arch.hdfs">73. HDFS</a></li>
+<li><a href="#arch.timelineconsistent.reads">74. Timeline-consistent High Available Reads</a></li>
+<li><a href="#hbase_mob">75. Storing Medium-sized Objects (MOB)</a></li>
 </ul>
 </li>
 <li><a href="#hbase_apis">Apache HBase APIs</a>
 <ul class="sectlevel1">
-<li><a href="#_examples">75. Examples</a></li>
+<li><a href="#_examples">76. Examples</a></li>
 </ul>
 </li>
 <li><a href="#external_apis">Apache HBase External APIs</a>
 <ul class="sectlevel1">
-<li><a href="#_rest">76. REST</a></li>
-<li><a href="#_thrift">77. Thrift</a></li>
-<li><a href="#c">78. C/C++ Apache HBase Client</a></li>
-<li><a href="#jdo">79. Using Java Data Objects (JDO) with HBase</a></li>
-<li><a href="#scala">80. Scala</a></li>
-<li><a href="#jython">81. Jython</a></li>
+<li><a href="#_rest">77. REST</a></li>
+<li><a href="#_thrift">78. Thrift</a></li>
+<li><a href="#c">79. C/C++ Apache HBase Client</a></li>
+<li><a href="#jdo">80. Using Java Data Objects (JDO) with HBase</a></li>
+<li><a href="#scala">81. Scala</a></li>
+<li><a href="#jython">82. Jython</a></li>
 </ul>
 </li>
 <li><a href="#thrift">Thrift API and Filter Language</a>
 <ul class="sectlevel1">
-<li><a href="#thrift.filter_language">82. Filter Language</a></li>
+<li><a href="#thrift.filter_language">83. Filter Language</a></li>
 </ul>
 </li>
 <li><a href="#spark">HBase and Spark</a>
 <ul class="sectlevel1">
-<li><a href="#_basic_spark">83. Basic Spark</a></li>
-<li><a href="#_spark_streaming">84. Spark Streaming</a></li>
-<li><a href="#_bulk_load">85. Bulk Load</a></li>
-<li><a href="#_sparksql_dataframes">86. SparkSQL/DataFrames</a></li>
+<li><a href="#_basic_spark">84. Basic Spark</a></li>
+<li><a href="#_spark_streaming">85. Spark Streaming</a></li>
+<li><a href="#_bulk_load">86. Bulk Load</a></li>
+<li><a href="#_sparksql_dataframes">87. SparkSQL/DataFrames</a></li>
 </ul>
 </li>
 <li><a href="#cp">Apache HBase Coprocessors</a>
 <ul class="sectlevel1">
-<li><a href="#_coprocessor_overview">87. Coprocessor Overview</a></li>
-<li><a href="#_types_of_coprocessors">88. Types of Coprocessors</a></li>
-<li><a href="#cp_loading">89. Loading Coprocessors</a></li>
-<li><a href="#cp_example">90. Examples</a></li>
-<li><a href="#_guidelines_for_deploying_a_coprocessor">91. Guidelines For Deploying A Coprocessor</a></li>
-<li><a href="#_restricting_coprocessor_usage">92. Restricting Coprocessor Usage</a></li>
+<li><a href="#_coprocessor_overview">88. Coprocessor Overview</a></li>
+<li><a href="#_types_of_coprocessors">89. Types of Coprocessors</a></li>
+<li><a href="#cp_loading">90. Loading Coprocessors</a></li>
+<li><a href="#cp_example">91. Examples</a></li>
+<li><a href="#_guidelines_for_deploying_a_coprocessor">92. Guidelines For Deploying A Coprocessor</a></li>
+<li><a href="#_restricting_coprocessor_usage">93. Restricting Coprocessor Usage</a></li>
 </ul>
 </li>
 <li><a href="#performance">Apache HBase Performance Tuning</a>
 <ul class="sectlevel1">
-<li><a href="#perf.os">93. Operating System</a></li>
-<li><a href="#perf.network">94. Network</a></li>
-<li><a href="#jvm">95. Java</a></li>
-<li><a href="#perf.configurations">96. HBase Configurations</a></li>
-<li><a href="#perf.zookeeper">97. ZooKeeper</a></li>
-<li><a href="#perf.schema">98. Schema Design</a></li>
-<li><a href="#perf.general">99. HBase General Patterns</a></li>
-<li><a href="#perf.writing">100. Writing to HBase</a></li>
-<li><a href="#perf.reading">101. Reading from HBase</a></li>
-<li><a href="#perf.deleting">102. Deleting from HBase</a></li>
-<li><a href="#perf.hdfs">103. HDFS</a></li>
-<li><a href="#perf.ec2">104. Amazon EC2</a></li>
-<li><a href="#perf.hbase.mr.cluster">105. Collocating HBase and MapReduce</a></li>
-<li><a href="#perf.casestudy">106. Case Studies</a></li>
+<li><a href="#perf.os">94. Operating System</a></li>
+<li><a href="#perf.network">95. Network</a></li>
+<li><a href="#jvm">96. Java</a></li>
+<li><a href="#perf.configurations">97. HBase Configurations</a></li>
+<li><a href="#perf.zookeeper">98. ZooKeeper</a></li>
+<li><a href="#perf.schema">99. Schema Design</a></li>
+<li><a href="#perf.general">100. HBase General Patterns</a></li>
+<li><a href="#perf.writing">101. Writing to HBase</a></li>
+<li><a href="#perf.reading">102. Reading from HBase</a></li>
+<li><a href="#perf.deleting">103. Deleting from HBase</a></li>
+<li><a href="#perf.hdfs">104. HDFS</a></li>
+<li><a href="#perf.ec2">105. Amazon EC2</a></li>
+<li><a href="#perf.hbase.mr.cluster">106. Collocating HBase and MapReduce</a></li>
+<li><a href="#perf.casestudy">107. Case Studies</a></li>
 </ul>
 </li>
 <li><a href="#trouble">Troubleshooting and Debugging Apache HBase</a>
 <ul class="sectlevel1">
-<li><a href="#trouble.general">107. General Guidelines</a></li>
-<li><a href="#trouble.log">108. Logs</a></li>
-<li><a href="#trouble.resources">109. Resources</a></li>
-<li><a href="#trouble.tools">110. Tools</a></li>
-<li><a href="#trouble.client">111. Client</a></li>
-<li><a href="#trouble.mapreduce">112. MapReduce</a></li>
-<li><a href="#trouble.namenode">113. NameNode</a></li>
-<li><a href="#trouble.network">114. Network</a></li>
-<li><a href="#trouble.rs">115. RegionServer</a></li>
-<li><a href="#trouble.master">116. Master</a></li>
-<li><a href="#trouble.zookeeper">117. ZooKeeper</a></li>
-<li><a href="#trouble.ec2">118. Amazon EC2</a></li>
-<li><a href="#trouble.versions">119. HBase and Hadoop version issues</a></li>
-<li><a href="#_ipc_configuration_conflicts_with_hadoop">120. IPC Configuration Conflicts with Hadoop</a></li>
-<li><a href="#_hbase_and_hdfs">121. HBase and HDFS</a></li>
-<li><a href="#trouble.tests">122. Running unit or integration tests</a></li>
-<li><a href="#trouble.casestudy">123. Case Studies</a></li>
-<li><a href="#trouble.crypto">124. Cryptographic Features</a></li>
-<li><a href="#_operating_system_specific_issues">125. Operating System Specific Issues</a></li>
-<li><a href="#_jdk_issues">126. JDK Issues</a></li>
+<li><a href="#trouble.general">108. General Guidelines</a></li>
+<li><a href="#trouble.log">109. Logs</a></li>
+<li><a href="#trouble.resources">110. Resources</a></li>
+<li><a href="#trouble.tools">111. Tools</a></li>
+<li><a href="#trouble.client">112. Client</a></li>
+<li><a href="#trouble.mapreduce">113. MapReduce</a></li>
+<li><a href="#trouble.namenode">114. NameNode</a></li>
+<li><a href="#trouble.network">115. Network</a></li>
+<li><a href="#trouble.rs">116. RegionServer</a></li>
+<li><a href="#trouble.master">117. Master</a></li>
+<li><a href="#trouble.zookeeper">118. ZooKeeper</a></li>
+<li><a href="#trouble.ec2">119. Amazon EC2</a></li>
+<li><a href="#trouble.versions">120. HBase and Hadoop version issues</a></li>
+<li><a href="#_ipc_configuration_conflicts_with_hadoop">121. IPC Configuration Conflicts with Hadoop</a></li>
+<li><a href="#_hbase_and_hdfs">122. HBase and HDFS</a></li>
+<li><a href="#trouble.tests">123. Running unit or integration tests</a></li>
+<li><a href="#trouble.casestudy">124. Case Studies</a></li>
+<li><a href="#trouble.crypto">125. Cryptographic Features</a></li>
+<li><a href="#_operating_system_specific_issues">126. Operating System Specific Issues</a></li>
+<li><a href="#_jdk_issues">127. JDK Issues</a></li>
 </ul>
 </li>
 <li><a href="#casestudies">Apache HBase Case Studies</a>
 <ul class="sectlevel1">
-<li><a href="#casestudies.overview">127. Overview</a></li>
-<li><a href="#casestudies.schema">128. Schema Design</a></li>
-<li><a href="#casestudies.perftroub">129. Performance/Troubleshooting</a></li>
+<li><a href="#casestudies.overview">128. Overview</a></li>
+<li><a href="#casestudies.schema">129. Schema Design</a></li>
+<li><a href="#casestudies.perftroub">130. Performance/Troubleshooting</a></li>
 </ul>
 </li>
 <li><a href="#ops_mgt">Apache HBase Operational Management</a>
 <ul class="sectlevel1">
-<li><a href="#tools">130. HBase Tools and Utilities</a></li>
-<li><a href="#ops.regionmgt">131. Region Management</a></li>
-<li><a href="#node.management">132. Node Management</a></li>
-<li><a href="#hbase_metrics">133. HBase Metrics</a></li>
-<li><a href="#ops.monitoring">134. HBase Monitoring</a></li>
-<li><a href="#_cluster_replication">135. Cluster Replication</a></li>
-<li><a href="#_running_multiple_workloads_on_a_single_cluster">136. Running Multiple Workloads On a Single Cluster</a></li>
-<li><a href="#ops.backup">137. HBase Backup</a></li>
-<li><a href="#ops.snapshots">138. HBase Snapshots</a></li>
-<li><a href="#snapshots_azure">139. Storing Snapshots in Microsoft Azure Blob Storage</a></li>
-<li><a href="#ops.capacity">140. Capacity Planning and Region Sizing</a></li>
-<li><a href="#table.rename">141. Table Rename</a></li>
-<li><a href="#rsgroup">142. RegionServer Grouping</a></li>
+<li><a href="#tools">131. HBase Tools and Utilities</a></li>
+<li><a href="#ops.regionmgt">132. Region Management</a></li>
+<li><a href="#node.management">133. Node Management</a></li>
+<li><a href="#hbase_metrics">134. HBase Metrics</a></li>
+<li><a href="#ops.monitoring">135. HBase Monitoring</a></li>
+<li><a href="#_cluster_replication">136. Cluster Replication</a></li>
+<li><a href="#_running_multiple_workloads_on_a_single_cluster">137. Running Multiple Workloads On a Single Cluster</a></li>
+<li><a href="#ops.backup">138. HBase Backup</a></li>
+<li><a href="#ops.snapshots">139. HBase Snapshots</a></li>
+<li><a href="#snapshots_azure">140. Storing Snapshots in Microsoft Azure Blob Storage</a></li>
+<li><a href="#ops.capacity">141. Capacity Planning and Region Sizing</a></li>
+<li><a href="#table.rename">142. Table Rename</a></li>
+<li><a href="#rsgroup">143. RegionServer Grouping</a></li>
 </ul>
 </li>
 <li><a href="#developer">Building and Developing Apache HBase</a>
 <ul class="sectlevel1">
-<li><a href="#getting.involved">143. Getting Involved</a></li>
-<li><a href="#repos">144. Apache HBase Repositories</a></li>
-<li><a href="#_ides">145. IDEs</a></li>
-<li><a href="#build">146. Building Apache HBase</a></li>
-<li><a href="#releasing">147. Releasing Apache HBase</a></li>
-<li><a href="#hbase.rc.voting">148. Voting on Release Candidates</a></li>
-<li><a href="#documentation">149. Generating the HBase Reference Guide</a></li>
-<li><a href="#hbase.org">150. Updating <a href="http://hbase.apache.org">hbase.apache.org</a></a></li>
-<li><a href="#hbase.tests">151. Tests</a></li>
-<li><a href="#developing">152. Developer Guidelines</a></li>
+<li><a href="#getting.involved">144. Getting Involved</a></li>
+<li><a href="#repos">145. Apache HBase Repositories</a></li>
+<li><a href="#_ides">146. IDEs</a></li>
+<li><a href="#build">147. Building Apache HBase</a></li>
+<li><a href="#releasing">148. Releasing Apache HBase</a></li>
+<li><a href="#hbase.rc.voting">149. Voting on Release Candidates</a></li>
+<li><a href="#documentation">150. Generating the HBase Reference Guide</a></li>
+<li><a href="#hbase.org">151. Updating <a href="https://hbase.apache.org">hbase.apache.org</a></a></li>
+<li><a href="#hbase.tests">152. Tests</a></li>
+<li><a href="#developing">153. Developer Guidelines</a></li>
 </ul>
 </li>
 <li><a href="#unit.tests">Unit Testing HBase Applications</a>
 <ul class="sectlevel1">
-<li><a href="#_junit">153. JUnit</a></li>
-<li><a href="#mockito">154. Mockito</a></li>
-<li><a href="#_mrunit">155. MRUnit</a></li>
-<li><a href="#_integration_testing_with_an_hbase_mini_cluster">156. Integration Testing with an HBase Mini-Cluster</a></li>
+<li><a href="#_junit">154. JUnit</a></li>
+<li><a href="#mockito">155. Mockito</a></li>
+<li><a href="#_mrunit">156. MRUnit</a></li>
+<li><a href="#_integration_testing_with_an_hbase_mini_cluster">157. Integration Testing with an HBase Mini-Cluster</a></li>
 </ul>
 </li>
 <li><a href="#protobuf">Protobuf in HBase</a>
 <ul class="sectlevel1">
-<li><a href="#_protobuf">157. Protobuf</a></li>
+<li><a href="#_protobuf">158. Protobuf</a></li>
 </ul>
 </li>
 <li><a href="#zookeeper">ZooKeeper</a>
 <ul class="sectlevel1">
-<li><a href="#_using_existing_zookeeper_ensemble">158. Using existing ZooKeeper ensemble</a></li>
-<li><a href="#zk.sasl.auth">159. SASL Authentication with ZooKeeper</a></li>
+<li><a href="#_using_existing_zookeeper_ensemble">159. Using existing ZooKeeper ensemble</a></li>
+<li><a href="#zk.sasl.auth">160. SASL Authentication with ZooKeeper</a></li>
 </ul>
 </li>
 <li><a href="#community">Community</a>
 <ul class="sectlevel1">
-<li><a href="#_decisions">160. Decisions</a></li>
-<li><a href="#community.roles">161. Community Roles</a></li>
-<li><a href="#hbase.commit.msg.format">162. Commit Message format</a></li>
+<li><a href="#_decisions">161. Decisions</a></li>
+<li><a href="#community.roles">162. Community Roles</a></li>
+<li><a href="#hbase.commit.msg.format">163. Commit Message format</a></li>
 </ul>
 </li>
 <li><a href="#_appendix">Appendix</a>
@@ -288,7 +289,7 @@
 <li><a href="#hbck.in.depth">Appendix C: hbck In Depth</a></li>
 <li><a href="#appendix_acl_matrix">Appendix D: Access Control Matrix</a></li>
 <li><a href="#compression">Appendix E: Compression and Data Block Encoding In HBase</a></li>
-<li><a href="#data.block.encoding.enable">163. Enable Data Block Encoding</a></li>
+<li><a href="#data.block.encoding.enable">164. Enable Data Block Encoding</a></li>
 <li><a href="#sql">Appendix F: SQL over HBase</a></li>
 <li><a href="#ycsb">Appendix G: YCSB</a></li>
 <li><a href="#_hfile_format_2">Appendix H: HFile format</a></li>
@@ -297,8 +298,8 @@
 <li><a href="#asf">Appendix K: HBase and the Apache Software Foundation</a></li>
 <li><a href="#orca">Appendix L: Apache HBase Orca</a></li>
 <li><a href="#tracing">Appendix M: Enabling Dapper-like Tracing in HBase</a></li>
-<li><a href="#tracing.client.modifications">164. Client Modifications</a></li>
-<li><a href="#tracing.client.shell">165. Tracing from HBase Shell</a></li>
+<li><a href="#tracing.client.modifications">165. Client Modifications</a></li>
+<li><a href="#tracing.client.shell">166. Tracing from HBase Shell</a></li>
 <li><a href="#hbase.rpc">Appendix N: 0.95 RPC Specification</a></li>
 </ul>
 </li>
@@ -309,7 +310,7 @@
 <div id="preamble">
 <div class="sectionbody">
 <div>
-  <a href="http://hbase.apache.org"><img src="images/hbase_logo_with_orca.png" alt="Apache HBase Logo" /></a>
+  <a href="https://hbase.apache.org"><img src="images/hbase_logo_with_orca.png" alt="Apache HBase Logo" /></a>
 </div>
 </div>
 </div>
@@ -317,12 +318,12 @@
 <h2 id="_preface"><a class="anchor" href="#_preface"></a>Preface</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>This is the official reference guide for the <a href="http://hbase.apache.org/">HBase</a> version it ships with.</p>
+<p>This is the official reference guide for the <a href="https://hbase.apache.org/">HBase</a> version it ships with.</p>
 </div>
 <div class="paragraph">
 <p>Herein you will find either the definitive documentation on an HBase topic as of its
 standing when the referenced HBase version shipped, or it will point to the location
-in <a href="http://hbase.apache.org/apidocs/index.html">Javadoc</a> or
+in <a href="https://hbase.apache.org/apidocs/index.html">Javadoc</a> or
 <a href="https://issues.apache.org/jira/browse/HBASE">JIRA</a> where the pertinent information can be found.</p>
 </div>
 <div class="paragraph">
@@ -489,7 +490,7 @@ See <a href="#java">Java</a> for information about supported JDK versions.</p>
 <div class="title">Procedure: Download, Configure, and Start HBase in Standalone Mode</div>
 <ol class="arabic">
 <li>
-<p>Choose a download site from this list of <a href="http://www.apache.org/dyn/closer.cgi/hbase/">Apache Download Mirrors</a>.
+<p>Choose a download site from this list of <a href="https://www.apache.org/dyn/closer.cgi/hbase/">Apache Download Mirrors</a>.
 Click on the suggested top link.
 This will take you to a mirror of <em>HBase Releases</em>.
 Click on the folder named <em>stable</em> and then download the binary file that ends in <em>.tar.gz</em> to your local filesystem.
@@ -798,7 +799,7 @@ You can skip the HDFS configuration to continue storing your data in the local f
 <p>This procedure assumes that you have configured Hadoop and HDFS on your local system and/or a remote
 system, and that they are running and available. It also assumes you are using Hadoop 2.
 The guide on
-<a href="http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html">Setting up a Single Node Cluster</a>
+<a href="https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html">Setting up a Single Node Cluster</a>
 in the Hadoop documentation is a good starting point.</p>
 </div>
 </td>
@@ -1322,7 +1323,7 @@ A plain-text file which lists hosts on which the Master should start a backup Ma
 <dt class="hdlist1"><em>hadoop-metrics2-hbase.properties</em></dt>
 <dd>
 <p>Used to connect HBase Hadoop&#8217;s Metrics2 framework.
-See the <a href="http://wiki.apache.org/hadoop/HADOOP-6728-MetricsV2">Hadoop Wiki entry</a> for more information on Metrics2.
+See the <a href="https://wiki.apache.org/hadoop/HADOOP-6728-MetricsV2">Hadoop Wiki entry</a> for more information on Metrics2.
 Contains only commented-out examples by default.</p>
 </dd>
 <dt class="hdlist1"><em>hbase-env.cmd</em> and <em>hbase-env.sh</em></dt>
@@ -1464,7 +1465,7 @@ You must set <code>JAVA_HOME</code> on each node of your cluster. <em>hbase-env.
 <dl>
 <dt class="hdlist1">ssh</dt>
 <dd>
-<p>HBase uses the Secure Shell (ssh) command and utilities extensively to communicate between cluster nodes. Each server in the cluster must be running <code>ssh</code> so that the Hadoop and HBase daemons can be managed. You must be able to connect to all nodes via SSH, including the local node, from the Master as well as any backup Master, using a shared key rather than a password. You can see the basic methodology for such a set-up in Linux or Unix systems at "<a href="#passwordless.ssh.quickstart">Procedure: Configure Passwordless SSH Access</a>". If your cluster nodes use OS X, see the section, <a href="http://wiki.apache.org/hadoop/Running_Hadoop_On_OS_X_10.5_64-bit_%28Single-Node_Cluster%29">SSH: Setting up Remote Desktop and Enabling Self-Login</a> on the Hadoop wiki.</p>
+<p>HBase uses the Secure Shell (ssh) command and utilities extensively to communicate between cluster nodes. Each server in the cluster must be running <code>ssh</code> so that the Hadoop and HBase daemons can be managed. You must be able to connect to all nodes via SSH, including the local node, from the Master as well as any backup Master, using a shared key rather than a password. You can see the basic methodology for such a set-up in Linux or Unix systems at "<a href="#passwordless.ssh.quickstart">Procedure: Configure Passwordless SSH Access</a>". If your cluster nodes use OS X, see the section, <a href="https://wiki.apache.org/hadoop/Running_Hadoop_On_OS_X_10.5_64-bit_%28Single-Node_Cluster%29">SSH: Setting up Remote Desktop and Enabling Self-Login</a> on the Hadoop wiki.</p>
 </dd>
 <dt class="hdlist1">DNS</dt>
 <dd>
@@ -1545,13 +1546,13 @@ Running production systems on Windows machines is not recommended.</p>
 </dl>
 </div>
 <div class="sect2">
-<h3 id="hadoop"><a class="anchor" href="#hadoop"></a>4.1. <a href="http://hadoop.apache.org">Hadoop</a></h3>
+<h3 id="hadoop"><a class="anchor" href="#hadoop"></a>4.1. <a href="https://hadoop.apache.org">Hadoop</a></h3>
 <div class="paragraph">
 <p>The following table summarizes the versions of Hadoop supported with each version of HBase.
 Based on the version of HBase, you should select the most appropriate version of Hadoop.
 You can use Apache Hadoop, or a vendor&#8217;s distribution of Hadoop.
 No distinction is made here.
-See <a href="http://wiki.apache.org/hadoop/Distributions%20and%20Commercial%20Support">the Hadoop wiki</a> for information about vendors of Hadoop.</p>
+See <a href="https://wiki.apache.org/hadoop/Distributions%20and%20Commercial%20Support">the Hadoop wiki</a> for information about vendors of Hadoop.</p>
 </div>
 <div class="admonitionblock tip">
 <table>
@@ -1894,7 +1895,7 @@ The <em>pseudo-distributed</em> vs. <em>fully-distributed</em> nomenclature come
 </div>
 <div class="paragraph">
 <p>Pseudo-distributed mode can run against the local filesystem or it can run against an instance of the <em>Hadoop Distributed File System</em> (HDFS). Fully-distributed mode can ONLY run on HDFS.
-See the Hadoop <a href="http://hadoop.apache.org/docs/current/">documentation</a> for how to set up HDFS.
+See the Hadoop <a href="https://hadoop.apache.org/docs/current/">documentation</a> for how to set up HDFS.
 A good walk-through for setting up HDFS on Hadoop 2 can be found at <a href="http://www.alexjf.net/blog/distributed-systems/hadoop-yarn-installation-definitive-guide" class="bare">http://www.alexjf.net/blog/distributed-systems/hadoop-yarn-installation-definitive-guide</a>.</p>
 </div>
 <div class="sect3">
@@ -5186,7 +5187,7 @@ Usually this ensemble location is kept out in the <em>hbase-site.xml</em> and is
 <div class="sect3">
 <h4 id="java.client.config"><a class="anchor" href="#java.client.config"></a>7.5.1. Java client configuration</h4>
 <div class="paragraph">
-<p>The configuration used by a Java client is kept in an <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HBaseConfiguration">HBaseConfiguration</a> instance.</p>
+<p>The configuration used by a Java client is kept in an <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HBaseConfiguration">HBaseConfiguration</a> instance.</p>
 </div>
 <div class="paragraph">
 <p>The factory method on HBaseConfiguration, <code>HBaseConfiguration.create();</code>, on invocation, will read in the content of the first <em>hbase-site.xml</em> found on the client&#8217;s <code>CLASSPATH</code>, if one is present (Invocation will also factor in any <em>hbase-default.xml</em> found; an <em>hbase-default.xml</em> ships inside the <em>hbase.X.X.X.jar</em>). It is also possible to specify configuration directly without having to read from a <em>hbase-site.xml</em>.
@@ -5199,7 +5200,7 @@ config.set(<span class="string"><span class="delimiter">&quot;</span><span class
 </div>
 </div>
 <div class="paragraph">
-<p>If multiple ZooKeeper instances make up your ZooKeeper ensemble, they may be specified in a comma-separated list (just as in the <em>hbase-site.xml</em> file). This populated <code>Configuration</code> instance can then be passed to an <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html">Table</a>, and so on.</p>
+<p>If multiple ZooKeeper instances make up your ZooKeeper ensemble, they may be specified in a comma-separated list (just as in the <em>hbase-site.xml</em> file). This populated <code>Configuration</code> instance can then be passed to an <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html">Table</a>, and so on.</p>
 </div>
 </div>
 </div>
@@ -5483,7 +5484,7 @@ See the entry for <code>hbase.hregion.majorcompaction</code> in the <a href="#co
 <div class="paragraph">
 <p>Major compactions are absolutely necessary for StoreFile clean-up.
 Do not disable them altogether.
-You can run major compactions manually via the HBase shell or via the <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Admin.html#majorCompact-org.apache.hadoop.hbase.TableName-">Admin API</a>.</p>
+You can run major compactions manually via the HBase shell or via the <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Admin.html#majorCompact-org.apache.hadoop.hbase.TableName-">Admin API</a>.</p>
 </div>
 </td>
 </tr>
@@ -5766,7 +5767,7 @@ It may be possible to skip across versions&#8201;&#8212;&#8201;for example go fr
 </table>
 </div>
 <div class="paragraph">
-<p>Review <a href="#configuration">Apache HBase Configuration</a>, in particular <a href="#hadoop"><a href="http://hadoop.apache.org">Hadoop</a></a>. Familiarize yourself with <a href="#hbase_supported_tested_definitions">Support and Testing Expectations</a>.</p>
+<p>Review <a href="#configuration">Apache HBase Configuration</a>, in particular <a href="#hadoop"><a href="https://hadoop.apache.org">Hadoop</a></a>. Familiarize yourself with <a href="#hbase_supported_tested_definitions">Support and Testing Expectations</a>.</p>
 </div>
 </div>
 </div>
@@ -5843,7 +5844,7 @@ It may be possible to skip across versions&#8201;&#8212;&#8201;for example go fr
 <p>Support file formats backward and forward compatible</p>
 </li>
 <li>
-<p>Example: File, ZK encoding, directory layout is upgraded automatically as part of an HBase upgrade. User can rollback to the older version and everything will continue to work.</p>
+<p>Example: File, ZK encoding, directory layout is upgraded automatically as part of an HBase upgrade. User can downgrade to the older version and everything will continue to work.</p>
 </li>
 </ul>
 </div>
@@ -6030,12 +6031,12 @@ for warning about incompatible changes). All effort will be made to provide a de
 <div class="sect3">
 <h4 id="hbase.client.api.surface"><a class="anchor" href="#hbase.client.api.surface"></a>11.1.1. HBase API Surface</h4>
 <div class="paragraph">
-<p>HBase has a lot of API points, but for the compatibility matrix above, we differentiate between Client API, Limited Private API, and Private API. HBase uses <a href="http://yetus.apache.org/documentation/0.5.0/interface-classification/">Apache Yetus Audience Annotations</a> to guide downstream expectations for stability.</p>
+<p>HBase has a lot of API points, but for the compatibility matrix above, we differentiate between Client API, Limited Private API, and Private API. HBase uses <a href="https://yetus.apache.org/documentation/0.5.0/interface-classification/">Apache Yetus Audience Annotations</a> to guide downstream expectations for stability.</p>
 </div>
 <div class="ulist">
 <ul>
 <li>
-<p>InterfaceAudience (<a href="http://yetus.apache.org/documentation/0.5.0/audience-annotations-apidocs/org/apache/yetus/audience/InterfaceAudience.html">javadocs</a>): captures the intended audience, possible values include:</p>
+<p>InterfaceAudience (<a href="https://yetus.apache.org/documentation/0.5.0/audience-annotations-apidocs/org/apache/yetus/audience/InterfaceAudience.html">javadocs</a>): captures the intended audience, possible values include:</p>
 <div class="ulist">
 <ul>
 <li>
@@ -6052,7 +6053,7 @@ Classes which are defined as <code>IA.Private</code> may be used as parameters o
 </div>
 </li>
 <li>
-<p>InterfaceStability (<a href="http://yetus.apache.org/documentation/0.5.0/audience-annotations-apidocs/org/apache/yetus/audience/InterfaceStability.html">javadocs</a>): describes what types of interface changes are permitted. Possible values include:</p>
+<p>InterfaceStability (<a href="https://yetus.apache.org/documentation/0.5.0/audience-annotations-apidocs/org/apache/yetus/audience/InterfaceStability.html">javadocs</a>): describes what types of interface changes are permitted. Possible values include:</p>
 <div class="ulist">
 <ul>
 <li>
@@ -6121,7 +6122,7 @@ Classes which are defined as <code>IA.Private</code> may be used as parameters o
 </td>
 <td class="content">
 <div class="title">HBase Pre-1.0 versions are all EOM</div>
-For new installations, do not deploy 0.94.y, 0.96.y, or 0.98.y.  Deploy our stable version. See <a href="https://issues.apache.org/jira/browse/HBASE-11642">EOL 0.96</a>, <a href="https://issues.apache.org/jira/browse/HBASE-16215">clean up of EOM releases</a>, and <a href="http://www.apache.org/dist/hbase/">the header of our downloads</a>.
+For new installations, do not deploy 0.94.y, 0.96.y, or 0.98.y.  Deploy our stable version. See <a href="https://issues.apache.org/jira/browse/HBASE-11642">EOL 0.96</a>, <a href="https://issues.apache.org/jira/browse/HBASE-16215">clean up of EOM releases</a>, and <a href="https://www.apache.org/dist/hbase/">the header of our downloads</a>.
 </td>
 </tr>
 </table>
@@ -6168,15 +6169,232 @@ For new installations, do not deploy 0.94.y, 0.96.y, or 0.98.y.  Deploy our stab
 </div>
 </div>
 <div class="sect1">
-<h2 id="_upgrade_paths"><a class="anchor" href="#_upgrade_paths"></a>12. Upgrade Paths</h2>
+<h2 id="_rollback"><a class="anchor" href="#_rollback"></a>12. Rollback</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Sometimes things don&#8217;t go as planned when attempting an upgrade. This section explains how to perform a <em>rollback</em> to an earlier HBase release. Note that this should only be needed between Major and some Minor releases. You should always be able to <em>downgrade</em> between HBase Patch releases within the same Minor version. These instructions may require you to take steps before you start the upgrade process, so be sure to read through this section beforehand.</p>
+</div>
+<div class="sect2">
+<h3 id="_caveats"><a class="anchor" href="#_caveats"></a>12.1. Caveats</h3>
+<div class="paragraph">
+<div class="title">Rollback vs Downgrade</div>
+<p>This section describes how to perform a <em>rollback</em> on an upgrade between HBase minor and major versions. In this document, rollback refers to the process of taking an upgraded cluster and restoring it to the old version <em>while losing all changes that have occurred since upgrade</em>. By contrast, a cluster <em>downgrade</em> would restore an upgraded cluster to the old version while maintaining any data written since the upgrade. We currently only offer instructions to rollback HBase clusters. Further, rollback only works when these instructions are followed prior to performing the upgrade.</p>
+</div>
+<div class="paragraph">
+<p>When these instructions talk about rollback vs downgrade of prerequisite cluster services (i.e. HDFS), you should treat leaving the service version the same as a degenerate case of downgrade.</p>
+</div>
+<div class="paragraph">
+<div class="title">Replication</div>
+<p>Unless you are doing an all-service rollback, the HBase cluster will lose any configured peers for HBase replication. If your cluster is configured for HBase replication, then prior to following these instructions you should document all replication peers. After performing the rollback you should then add each documented peer back to the cluster. For more information on enabling HBase replication, listing peers, and adding a peer see <a href="#hbase.replication.management">Managing and Configuring Cluster Replication</a>. Note also that data written to the cluster since the upgrade may or may not have already been replicated to any peers. Determining which, if any, peers have seen replication data as well as rolling back the data in those peers is out of the scope of this guide.</p>
+</div>
+<div class="paragraph">
+<div class="title">Data Locality</div>
+<p>Unless you are doing an all-service rollback, going through a rollback procedure will likely destroy all locality for Region Servers. You should expect degraded performance until after the cluster has had time to go through compactions to restore data locality. Optionally, you can force a compaction to speed this process up at the cost of generating cluster load.</p>
+</div>
+<div class="paragraph">
+<div class="title">Configurable Locations</div>
+<p>The instructions below assume default locations for the HBase data directory and the HBase znode. Both of these locations are configurable and you should verify the value used in your cluster before proceeding. In the event that you have a different value, just replace the default with the one found in your configuration
+* HBase data directory is configured via the key 'hbase.rootdir' and has a default value of '/hbase'.
+* HBase znode is configured via the key 'zookeeper.znode.parent' and has a default value of '/hbase'.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_all_service_rollback"><a class="anchor" href="#_all_service_rollback"></a>12.2. All service rollback</h3>
+<div class="paragraph">
+<p>If you will be performing a rollback of both the HDFS and ZooKeeper services, then HBase&#8217;s data will be rolled back in the process.</p>
+</div>
+<div class="ulist">
+<div class="title">Requirements</div>
+<ul>
+<li>
+<p>Ability to rollback HDFS and ZooKeeper</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<div class="title">Before upgrade</div>
+<p>No additional steps are needed pre-upgrade. As an extra precautionary measure, you may wish to use distcp to back up the HBase data off of the cluster to be upgraded. To do so, follow the steps in the 'Before upgrade' section of 'Rollback after HDFS downgrade' but copy to another HDFS instance instead of within the same instance.</p>
+</div>
+<div class="olist arabic">
+<div class="title">Performing a rollback</div>
+<ol class="arabic">
+<li>
+<p>Stop HBase</p>
+</li>
+<li>
+<p>Perform a rollback for HDFS and ZooKeeper (HBase should remain stopped)</p>
+</li>
+<li>
+<p>Change the installed version of HBase to the previous version</p>
+</li>
+<li>
+<p>Start HBase</p>
+</li>
+<li>
+<p>Verify HBase contents—use the HBase shell to list tables and scan some known values.</p>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_rollback_after_hdfs_rollback_and_zookeeper_downgrade"><a class="anchor" href="#_rollback_after_hdfs_rollback_and_zookeeper_downgrade"></a>12.3. Rollback after HDFS rollback and ZooKeeper downgrade</h3>
+<div class="paragraph">
+<p>If you will be rolling back HDFS but going through a ZooKeeper downgrade, then HBase will be in an inconsistent state. You must ensure the cluster is not started until you complete this process.</p>
+</div>
+<div class="ulist">
+<div class="title">Requirements</div>
+<ul>
+<li>
+<p>Ability to rollback HDFS</p>
+</li>
+<li>
+<p>Ability to downgrade ZooKeeper</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<div class="title">Before upgrade</div>
+<p>No additional steps are needed pre-upgrade. As an extra precautionary measure, you may wish to use distcp to back up the HBase data off of the cluster to be upgraded. To do so, follow the steps in the 'Before upgrade' section of 'Rollback after HDFS downgrade' but copy to another HDFS instance instead of within the same instance.</p>
+</div>
+<div class="olist arabic">
+<div class="title">Performing a rollback</div>
+<ol class="arabic">
+<li>
+<p>Stop HBase</p>
+</li>
+<li>
+<p>Perform a rollback for HDFS and a downgrade for ZooKeeper (HBase should remain stopped)</p>
+</li>
+<li>
+<p>Change the installed version of HBase to the previous version</p>
+</li>
+<li>
+<p>Clean out ZooKeeper information related to HBase. WARNING: This step will permanently destroy all replication peers. Please see the section on HBase Replication under Caveats for more information.</p>
+<div class="listingblock">
+<div class="title">Clean HBase information out of ZooKeeper</div>
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">[hpnewton@gateway_node.example.com ~]$ zookeeper-client -server zookeeper1.example.com:2181,zookeeper2.example.com:2181,zookeeper3.example.com:2181
+Welcome to ZooKeeper!
+JLine support is disabled
+rmr /hbase
+quit
+Quitting...</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>Start HBase</p>
+</li>
+<li>
+<p>Verify HBase contents—use the HBase shell to list tables and scan some known values.</p>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_rollback_after_hdfs_downgrade"><a class="anchor" href="#_rollback_after_hdfs_downgrade"></a>12.4. Rollback after HDFS downgrade</h3>
+<div class="paragraph">
+<p>If you will be performing an HDFS downgrade, then you&#8217;ll need to follow these instructions regardless of whether ZooKeeper goes through rollback, downgrade, or reinstallation.</p>
+</div>
+<div class="ulist">
+<div class="title">Requirements</div>
+<ul>
+<li>
+<p>Ability to downgrade HDFS</p>
+</li>
+<li>
+<p>Pre-upgrade cluster must be able to run MapReduce jobs</p>
+</li>
+<li>
+<p>HDFS super user access</p>
+</li>
+<li>
+<p>Sufficient space in HDFS for at least two copies of the HBase data directory</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<div class="title">Before upgrade</div>
+<p>Before beginning the upgrade process, you must take a complete backup of HBase&#8217;s backing data. The following instructions cover backing up the data within the current HDFS instance. Alternatively, you can use the distcp command to copy the data to another HDFS cluster.</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Stop the HBase cluster</p>
+</li>
+<li>
+<p>Copy the HBase data directory to a backup location using the <a href="https://hadoop.apache.org/docs/current/hadoop-distcp/DistCp.html">distcp command</a> as the HDFS super user (shown below on a security enabled cluster)</p>
+<div class="listingblock">
+<div class="title">Using distcp to backup the HBase data directory</div>
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">[hpnewton@gateway_node.example.com ~]$ kinit -k -t hdfs.keytab hdfs@EXAMPLE.COM
+[hpnewton@gateway_node.example.com ~]$ hadoop distcp /hbase /hbase-pre-upgrade-backup</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>Distcp will launch a mapreduce job to handle copying the files in a distributed fashion. Check the output of the distcp command to ensure this job completed successfully.</p>
+</li>
+</ol>
+</div>
+<div class="olist arabic">
+<div class="title">Performing a rollback</div>
+<ol class="arabic">
+<li>
+<p>Stop HBase</p>
+</li>
+<li>
+<p>Perform a downgrade for HDFS and a downgrade/rollback for ZooKeeper (HBase should remain stopped)</p>
+</li>
+<li>
+<p>Change the installed version of HBase to the previous version</p>
+</li>
+<li>
+<p>Restore the HBase data directory from prior to the upgrade as the HDFS super user (shown below on a security enabled cluster). If you backed up your data on another HDFS cluster instead of locally, you will need to use the distcp command to copy it back to the current HDFS cluster.</p>
+<div class="listingblock">
+<div class="title">Restore the HBase data directory</div>
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">[hpnewton@gateway_node.example.com ~]$ kinit -k -t hdfs.keytab hdfs@EXAMPLE.COM
+[hpnewton@gateway_node.example.com ~]$ hdfs dfs -mv /hbase /hbase-upgrade-rollback
+[hpnewton@gateway_node.example.com ~]$ hdfs dfs -mv /hbase-pre-upgrade-backup /hbase</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>Clean out ZooKeeper information related to HBase. WARNING: This step will permanently destroy all replication peers. Please see the section on HBase Replication under Caveats for more information.</p>
+<div class="listingblock">
+<div class="title">Clean HBase information out of ZooKeeper</div>
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">[hpnewton@gateway_node.example.com ~]$ zookeeper-client -server zookeeper1.example.com:2181,zookeeper2.example.com:2181,zookeeper3.example.com:2181
+Welcome to ZooKeeper!
+JLine support is disabled
+rmr /hbase
+quit
+Quitting...</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>Start HBase</p>
+</li>
+<li>
+<p>Verify HBase contents–use the HBase shell to list tables and scan some known values.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_upgrade_paths"><a class="anchor" href="#_upgrade_paths"></a>13. Upgrade Paths</h2>
 <div class="sectionbody">
 <div class="sect2">
-<h3 id="upgrade1.0"><a class="anchor" href="#upgrade1.0"></a>12.1. Upgrading from 0.98.x to 1.0.x</h3>
+<h3 id="upgrade1.0"><a class="anchor" href="#upgrade1.0"></a>13.1. Upgrading from 0.98.x to 1.0.x</h3>
 <div class="paragraph">
 <p>In this section we first note the significant changes that come in with 1.0.0 HBase and then we go over the upgrade process. Be sure to read the significant changes section with care so you avoid surprises.</p>
 </div>
 <div class="sect3">
-<h4 id="_changes_of_note"><a class="anchor" href="#_changes_of_note"></a>12.1.1. Changes of Note!</h4>
+<h4 id="_changes_of_note"><a class="anchor" href="#_changes_of_note"></a>13.1.1. Changes of Note!</h4>
 <div class="paragraph">
 <p>In here we list important changes that are in 1.0.0 since 0.98.x., changes you should be aware that will go into effect once you upgrade.</p>
 </div>
@@ -6218,7 +6436,7 @@ using 0.98.11 servers with any other client version.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="upgrade1.0.rolling.upgrade"><a class="anchor" href="#upgrade1.0.rolling.upgrade"></a>12.1.2. Rolling upgrade from 0.98.x to HBase 1.0.0</h4>
+<h4 id="upgrade1.0.rolling.upgrade"><a class="anchor" href="#upgrade1.0.rolling.upgrade"></a>13.1.2. Rolling upgrade from 0.98.x to HBase 1.0.0</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6237,7 +6455,7 @@ You cannot do a <a href="#hbase.rolling.upgrade">rolling upgrade</a> from 0.96.x
 </div>
 </div>
 <div class="sect3">
-<h4 id="upgrade1.0.scanner.caching"><a class="anchor" href="#upgrade1.0.scanner.caching"></a>12.1.3. Scanner Caching has Changed</h4>
+<h4 id="upgrade1.0.scanner.caching"><a class="anchor" href="#upgrade1.0.scanner.caching"></a>13.1.3. Scanner Caching has Changed</h4>
 <div class="paragraph">
 <div class="title">From 0.98.x to 1.x</div>
 <p>In hbase-1.x, the default Scan caching 'number of rows' changed.
@@ -6250,14 +6468,14 @@ for further discussion.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="upgrade1.0.from.0.94"><a class="anchor" href="#upgrade1.0.from.0.94"></a>12.1.4. Upgrading to 1.0 from 0.94</h4>
+<h4 id="upgrade1.0.from.0.94"><a class="anchor" href="#upgrade1.0.from.0.94"></a>13.1.4. Upgrading to 1.0 from 0.94</h4>
 <div class="paragraph">
 <p>You cannot rolling upgrade from 0.94.x to 1.x.x.  You must stop your cluster, install the 1.x.x software, run the migration described at <a href="#executing.the.0.96.upgrade">Executing the 0.96 Upgrade</a> (substituting 1.x.x. wherever we make mention of 0.96.x in the section below), and then restart. Be sure to upgrade your ZooKeeper if it is a version less than the required 3.4.x.</p>
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="upgrade0.98"><a class="anchor" href="#upgrade0.98"></a>12.2. Upgrading from 0.96.x to 0.98.x</h3>
+<h3 id="upgrade0.98"><a class="anchor" href="#upgrade0.98"></a>13.2. Upgrading from 0.96.x to 0.98.x</h3>
 <div class="paragraph">
 <p>A rolling upgrade from 0.96.x to 0.98.x works. The two versions are not binary compatible.</p>
 </div>
@@ -6269,15 +6487,15 @@ for further discussion.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_from_0_94_x_to_0_98_x"><a class="anchor" href="#_upgrading_from_0_94_x_to_0_98_x"></a>12.3. Upgrading from 0.94.x to 0.98.x</h3>
+<h3 id="_upgrading_from_0_94_x_to_0_98_x"><a class="anchor" href="#_upgrading_from_0_94_x_to_0_98_x"></a>13.3. Upgrading from 0.94.x to 0.98.x</h3>
 <div class="paragraph">
 <p>A rolling upgrade from 0.94.x directly to 0.98.x does not work. The upgrade path follows the same procedures as <a href="#upgrade0.96">Upgrading from 0.94.x to 0.96.x</a>. Additional steps are required to use some of the new features of 0.98.x. See <a href="#upgrade0.98">Upgrading from 0.96.x to 0.98.x</a> for an abbreviated list of these features.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="upgrade0.96"><a class="anchor" href="#upgrade0.96"></a>12.4. Upgrading from 0.94.x to 0.96.x</h3>
+<h3 id="upgrade0.96"><a class="anchor" href="#upgrade0.96"></a>13.4. Upgrading from 0.94.x to 0.96.x</h3>
 <div class="sect3">
-<h4 id="_the_singularity"><a class="anchor" href="#_the_singularity"></a>12.4.1. The "Singularity"</h4>
+<h4 id="_the_singularity"><a class="anchor" href="#_the_singularity"></a>13.4.1. The "Singularity"</h4>
 <div class="paragraph">
 <p>You will have to stop your old 0.94.x cluster completely to upgrade. If you are replicating between clusters, both clusters will have to go down to upgrade. Make sure it is a clean shutdown. The less WAL files around, the faster the upgrade will run (the upgrade will split any log files it finds in the filesystem as part of the upgrade process). All clients must be upgraded to 0.96 too.</p>
 </div>
@@ -6286,7 +6504,7 @@ for further discussion.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="executing.the.0.96.upgrade"><a class="anchor" href="#executing.the.0.96.upgrade"></a>12.4.2. Executing the 0.96 Upgrade</h4>
+<h4 id="executing.the.0.96.upgrade"><a class="anchor" href="#executing.the.0.96.upgrade"></a>13.4.2. Executing the 0.96 Upgrade</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6451,7 +6669,7 @@ Successfully completed Log splitting</pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="s096.migration.troubleshooting"><a class="anchor" href="#s096.migration.troubleshooting"></a>12.5. Troubleshooting</h3>
+<h3 id="s096.migration.troubleshooting"><a class="anchor" href="#s096.migration.troubleshooting"></a>13.5. Troubleshooting</h3>
 <div id="s096.migration.troubleshooting.old.client" class="paragraph">
 <div class="title">Old Client connecting to 0.96 cluster</div>
 <p>It will fail with an exception like the below. Upgrade.</p>
@@ -6473,7 +6691,7 @@ Successfully completed Log splitting</pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_upgrading_code_meta_code_to_use_protocol_buffers_protobuf"><a class="anchor" href="#_upgrading_code_meta_code_to_use_protocol_buffers_protobuf"></a>12.5.1. Upgrading <code>META</code> to use Protocol Buffers (Protobuf)</h4>
+<h4 id="_upgrading_code_meta_code_to_use_protocol_buffers_protobuf"><a class="anchor" href="#_upgrading_code_meta_code_to_use_protocol_buffers_protobuf"></a>13.5.1. Upgrading <code>META</code> to use Protocol Buffers (Protobuf)</h4>
 <div class="paragraph">
 <p>When you upgrade from versions prior to 0.96, <code>META</code> needs to be converted to use protocol buffers. This is controlled by the configuration option <code>hbase.MetaMigrationConvertingToPB</code>, which is set to <code>true</code> by default. Therefore, by default, no action is required on your part.</p>
 </div>
@@ -6483,15 +6701,15 @@ Successfully completed Log splitting</pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="upgrade0.94"><a class="anchor" href="#upgrade0.94"></a>12.6. Upgrading from 0.92.x to 0.94.x</h3>
+<h3 id="upgrade0.94"><a class="anchor" href="#upgrade0.94"></a>13.6. Upgrading from 0.92.x to 0.94.x</h3>
 <div class="paragraph">
 <p>We used to think that 0.92 and 0.94 were interface compatible and that you can do a rolling upgrade between these versions but then we figured that <a href="https://issues.apache.org/jira/browse/HBASE-5357">HBASE-5357 Use builder pattern in HColumnDescriptor</a> changed method signatures so rather than return <code>void</code> they instead return <code>HColumnDescriptor</code>. This will throw <code>java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(I)V</code> so 0.92 and 0.94 are NOT compatible. You cannot do a rolling upgrade between them.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="upgrade0.92"><a class="anchor" href="#upgrade0.92"></a>12.7. Upgrading from 0.90.x to 0.92.x</h3>
+<h3 id="upgrade0.92"><a class="anchor" href="#upgrade0.92"></a>13.7. Upgrading from 0.90.x to 0.92.x</h3>
 <div class="sect3">
-<h4 id="_upgrade_guide"><a class="anchor" href="#_upgrade_guide"></a>12.7.1. Upgrade Guide</h4>
+<h4 id="_upgrade_guide"><a class="anchor" href="#_upgrade_guide"></a>13.7.1. Upgrade Guide</h4>
 <div class="paragraph">
 <p>You will find that 0.92.0 runs a little differently to 0.90.x releases. Here are a few things to watch out for upgrading from 0.90.x to 0.92.0.</p>
 </div>
@@ -6545,7 +6763,7 @@ Successfully completed Log splitting</pre>
 </div>
 <div class="paragraph">
 <div class="title">On the Hadoop version to use</div>
-<p>Run 0.92.0 on Hadoop 1.0.x (or CDH3u3). The performance benefits are worth making the move. Otherwise, our Hadoop prescription is as it has been; you need an Hadoop that supports a working sync. See <a href="#hadoop"><a href="http://hadoop.apache.org">Hadoop</a></a>.</p>
+<p>Run 0.92.0 on Hadoop 1.0.x (or CDH3u3). The performance benefits are worth making the move. Otherwise, our Hadoop prescription is as it has been; you need an Hadoop that supports a working sync. See <a href="#hadoop"><a href="https://hadoop.apache.org">Hadoop</a></a>.</p>
 </div>
 <div class="paragraph">
 <p>If running on Hadoop 1.0.x (or CDH3u3), enable local read. See <a href="http://files.meetup.com/1350427/hug_ebay_jdcryans.pdf">Practical Caching</a> presentation for ruminations on the performance benefits ‘going local’ (and for how to enable local reads).</p>
@@ -6581,7 +6799,7 @@ Successfully completed Log splitting</pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="upgrade0.90"><a class="anchor" href="#upgrade0.90"></a>12.8. Upgrading to HBase 0.90.x from 0.20.x or 0.89.x</h3>
+<h3 id="upgrade0.90"><a class="anchor" href="#upgrade0.90"></a>13.8. Upgrading to HBase 0.90.x from 0.20.x or 0.89.x</h3>
 <div class="paragraph">
 <p>This version of 0.90.x HBase can be started on data written by HBase 0.20.x or HBase 0.89.x. There is no need of a migration step. HBase 0.89.x and 0.90.x does write out the name of region directories differently&#8201;&#8212;&#8201;it names them with a md5 hash of the region name rather than a jenkins hash&#8201;&#8212;&#8201;so this means that once started, there is no going back to HBase 0.20.x.</p>
 </div>
@@ -6631,7 +6849,7 @@ Browse at least the paragraphs at the end of the help output for the gist of how
 </div>
 </div>
 <div class="sect1">
-<h2 id="scripting"><a class="anchor" href="#scripting"></a>13. Scripting with Ruby</h2>
+<h2 id="scripting"><a class="anchor" href="#scripting"></a>14. Scripting with Ruby</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>For examples scripting Apache HBase, look in the HBase <em>bin</em>            directory.
@@ -6646,7 +6864,7 @@ To run one of these files, do as follows:</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_running_the_shell_in_non_interactive_mode"><a class="anchor" href="#_running_the_shell_in_non_interactive_mode"></a>14. Running the Shell in Non-Interactive Mode</h2>
+<h2 id="_running_the_shell_in_non_interactive_mode"><a class="anchor" href="#_running_the_shell_in_non_interactive_mode"></a>15. Running the Shell in Non-Interactive Mode</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>A new non-interactive mode has been added to the HBase Shell (<a href="https://issues.apache.org/jira/browse/HBASE-11658">HBASE-11658)</a>.
@@ -6659,7 +6877,7 @@ If you use the normal interactive mode, the HBase Shell will only ever return it
 </div>
 </div>
 <div class="sect1">
-<h2 id="hbase.shell.noninteractive"><a class="anchor" href="#hbase.shell.noninteractive"></a>15. HBase Shell in OS Scripts</h2>
+<h2 id="hbase.shell.noninteractive"><a class="anchor" href="#hbase.shell.noninteractive"></a>16. HBase Shell in OS Scripts</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>You can use the HBase shell from within operating system script interpreters like the Bash shell which is the default command interpreter for most Linux and UNIX distributions.
@@ -6743,7 +6961,7 @@ return $status</code></pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_checking_for_success_or_failure_in_scripts"><a class="anchor" href="#_checking_for_success_or_failure_in_scripts"></a>15.1. Checking for Success or Failure In Scripts</h3>
+<h3 id="_checking_for_success_or_failure_in_scripts"><a class="anchor" href="#_checking_for_success_or_failure_in_scripts"></a>16.1. Checking for Success or Failure In Scripts</h3>
 <div class="paragraph">
 <p>Getting an exit code of <code>0</code> means that the command you scripted definitely succeeded.
 However, getting a non-zero exit code does not necessarily mean the command failed.
@@ -6756,7 +6974,7 @@ For instance, if your script creates a table, but returns a non-zero exit value,
 </div>
 </div>
 <div class="sect1">
-<h2 id="_read_hbase_shell_commands_from_a_command_file"><a class="anchor" href="#_read_hbase_shell_commands_from_a_command_file"></a>16. Read HBase Shell Commands from a Command File</h2>
+<h2 id="_read_hbase_shell_commands_from_a_command_file"><a class="anchor" href="#_read_hbase_shell_commands_from_a_command_file"></a>17. Read HBase Shell Commands from a Command File</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>You can enter HBase Shell commands into a text file, one command per line, and pass that file to the HBase Shell.</p>
@@ -6828,7 +7046,7 @@ COLUMN                CELL
 </div>
 </div>
 <div class="sect1">
-<h2 id="_passing_vm_options_to_the_shell"><a class="anchor" href="#_passing_vm_options_to_the_shell"></a>17. Passing VM Options to the Shell</h2>
+<h2 id="_passing_vm_options_to_the_shell"><a class="anchor" href="#_passing_vm_options_to_the_shell"></a>18. Passing VM Options to the Shell</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>You can pass VM options to the HBase Shell using the <code>HBASE_SHELL_OPTS</code> environment variable.
@@ -6845,10 +7063,10 @@ The command should be run all on a single line, but is broken by the <code>\</co
 </div>
 </div>
 <div class="sect1">
-<h2 id="_shell_tricks"><a class="anchor" href="#_shell_tricks"></a>18. Shell Tricks</h2>
+<h2 id="_shell_tricks"><a class="anchor" href="#_shell_tricks"></a>19. Shell Tricks</h2>
 <div class="sectionbody">
 <div class="sect2">
-<h3 id="_table_variables"><a class="anchor" href="#_table_variables"></a>18.1. Table variables</h3>
+<h3 id="_table_variables"><a class="anchor" href="#_table_variables"></a>19.1. Table variables</h3>
 <div class="paragraph">
 <p>HBase 0.95 adds shell commands that provides jruby-style object-oriented references for tables.
 Previously all of the shell commands that act upon a table have a procedural style that always took the name of the table as an argument.
@@ -6959,7 +7177,7 @@ hbase(main):018:0&gt;</pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="__em_irbrc_em"><a class="anchor" href="#__em_irbrc_em"></a>18.2. <em>irbrc</em></h3>
+<h3 id="__em_irbrc_em"><a class="anchor" href="#__em_irbrc_em"></a>19.2. <em>irbrc</em></h3>
 <div class="paragraph">
 <p>Create an <em>.irbrc</em> file for yourself in your home directory.
 Add customizations.
@@ -6978,7 +7196,7 @@ IRB.conf[:HISTORY_FILE] = &quot;#{ENV['HOME']}/.irb-save-history&quot;</code></p
 </div>
 </div>
 <div class="sect2">
-<h3 id="_log_data_to_timestamp"><a class="anchor" href="#_log_data_to_timestamp"></a>18.3. LOG data to timestamp</h3>
+<h3 id="_log_data_to_timestamp"><a class="anchor" href="#_log_data_to_timestamp"></a>19.3. LOG data to timestamp</h3>
 <div class="paragraph">
 <p>To convert the date '08/08/16 20:56:29' from an hbase log into a timestamp, do:</p>
 </div>
@@ -7003,7 +7221,7 @@ hbase(main):022:0&gt; Date.new(1218920189000).toString() =&gt; "Sat Aug 16 20:56
 </div>
 </div>
 <div class="sect2">
-<h3 id="_query_shell_configuration"><a class="anchor" href="#_query_shell_configuration"></a>18.4. Query Shell Configuration</h3>
+<h3 id="_query_shell_configuration"><a class="anchor" href="#_query_shell_configuration"></a>19.4. Query Shell Configuration</h3>
 <div class="listingblock">
 <div class="content">
 <pre>hbase(main):001:0&gt; @shell.hbase.configuration.get("hbase.rpc.timeout")
@@ -7022,7 +7240,7 @@ hbase(main):006:0&gt; @shell.hbase.configuration.get("hbase.rpc.timeout")
 </div>
 </div>
 <div class="sect2">
-<h3 id="tricks.pre-split"><a class="anchor" href="#tricks.pre-split"></a>18.5. Pre-splitting tables with the HBase Shell</h3>
+<h3 id="tricks.pre-split"><a class="anchor" href="#tricks.pre-split"></a>19.5. Pre-splitting tables with the HBase Shell</h3>
 <div class="paragraph">
 <p>You can use a variety of options to pre-split tables when creating them via the HBase Shell <code>create</code> command.</p>
 </div>
@@ -7093,9 +7311,9 @@ If you need to truncate a pre-split table, you must drop and recreate the table
 </div>
 </div>
 <div class="sect2">
-<h3 id="_debug"><a class="anchor" href="#_debug"></a>18.6. Debug</h3>
+<h3 id="_debug"><a class="anchor" href="#_debug"></a>19.6. Debug</h3>
 <div class="sect3">
-<h4 id="_shell_debug_switch"><a class="anchor" href="#_shell_debug_switch"></a>18.6.1. Shell debug switch</h4>
+<h4 id="_shell_debug_switch"><a class="anchor" href="#_shell_debug_switch"></a>19.6.1. Shell debug switch</h4>
 <div class="paragraph">
 <p>You can set a debug switch in the shell to see more output&#8201;&#8212;&#8201;e.g.
 more of the stack trace on exception&#8201;&#8212;&#8201;when you run a command:</p>
@@ -7107,7 +7325,7 @@ more of the stack trace on exception&#8201;&#8212;&#8201;when you run a command:
 </div>
 </div>
 <div class="sect3">
-<h4 id="_debug_log_level"><a class="anchor" href="#_debug_log_level"></a>18.6.2. DEBUG log level</h4>
+<h4 id="_debug_log_level"><a class="anchor" href="#_debug_log_level"></a>19.6.2. DEBUG log level</h4>
 <div class="paragraph">
 <p>To enable DEBUG level logging in the shell, launch it with the <code>-d</code> option.</p>
 </div>
@@ -7119,9 +7337,9 @@ more of the stack trace on exception&#8201;&#8212;&#8201;when you run a command:
 </div>
 </div>
 <div class="sect2">
-<h3 id="_commands"><a class="anchor" href="#_commands"></a>18.7. Commands</h3>
+<h3 id="_commands"><a class="anchor" href="#_commands"></a>19.7. Commands</h3>
 <div class="sect3">
-<h4 id="_count"><a class="anchor" href="#_count"></a>18.7.1. count</h4>
+<h4 id="_count"><a class="anchor" href="#_count"></a>19.7.1. count</h4>
 <div class="paragraph">
 <p>Count command returns the number of rows in a table.
 It&#8217;s quite fast when configured with the right CACHE</p>
@@ -7194,7 +7412,7 @@ By default, the timestamp represents the time on the RegionServer when the data
 </div>
 </div>
 <div class="sect1">
-<h2 id="conceptual.view"><a class="anchor" href="#conceptual.view"></a>19. Conceptual View</h2>
+<h2 id="conceptual.view"><a class="anchor" href="#conceptual.view"></a>20. Conceptual View</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>You can read a very understandable explanation of the HBase data model in the blog post <a href="http://jimbojw.com/#understanding%20hbase">Understanding HBase and BigTable</a> by Jim R. Wilson.
@@ -7328,7 +7546,7 @@ This is only a mock-up for illustrative purposes and may not be strictly accurat
 </div>
 </div>
 <div class="sect1">
-<h2 id="physical.view"><a class="anchor" href="#physical.view"></a>20. Physical View</h2>
+<h2 id="physical.view"><a class="anchor" href="#physical.view"></a>21. Physical View</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Although at a conceptual level tables may be viewed as a sparse set of rows, they are physically stored by column family.
@@ -7407,7 +7625,7 @@ Thus a request for the values of all columns in the row <code>com.cnn.www</code>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_namespace"><a class="anchor" href="#_namespace"></a>21. Namespace</h2>
+<h2 id="_namespace"><a class="anchor" href="#_namespace"></a>22. Namespace</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>A namespace is a logical grouping of tables analogous to a database in relation database systems.
@@ -7427,7 +7645,7 @@ This abstraction lays the groundwork for upcoming multi-tenancy related features
 </ul>
 </div>
 <div class="sect2">
-<h3 id="namespace_creation"><a class="anchor" href="#namespace_creation"></a>21.1. Namespace management</h3>
+<h3 id="namespace_creation"><a class="anchor" href="#namespace_creation"></a>22.1. Namespace management</h3>
 <div class="paragraph">
 <p>A namespace can be created, removed or altered.
 Namespace membership is determined during table creation by specifying a fully-qualified table name of the form:</p>
@@ -7468,7 +7686,7 @@ alter_namespace 'my_ns', {METHOD =&gt; 'set', 'PROPERTY_NAME' =&gt; 'PROPERTY_VA
 </div>
 </div>
 <div class="sect2">
-<h3 id="namespace_special"><a class="anchor" href="#namespace_special"></a>21.2. Predefined namespaces</h3>
+<h3 id="namespace_special"><a class="anchor" href="#namespace_special"></a>22.2. Predefined namespaces</h3>
 <div class="paragraph">
 <p>There are two predefined special namespaces:</p>
 </div>
@@ -7500,7 +7718,7 @@ create 'bar', 'fam'</code></pre>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_table"><a class="anchor" href="#_table"></a>22. Table</h2>
+<h2 id="_table"><a class="anchor" href="#_table"></a>23. Table</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Tables are declared up front at schema definition time.</p>
@@ -7508,7 +7726,7 @@ create 'bar', 'fam'</code></pre>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_row"><a class="anchor" href="#_row"></a>23. Row</h2>
+<h2 id="_row"><a class="anchor" href="#_row"></a>24. Row</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Row keys are uninterpreted bytes.
@@ -7518,7 +7736,7 @@ The empty byte array is used to denote both the start and end of a tables' names
 </div>
 </div>
 <div class="sect1">
-<h2 id="columnfamily"><a class="anchor" href="#columnfamily"></a>24. Column Family</h2>
+<h2 id="columnfamily"><a class="anchor" href="#columnfamily"></a>25. Column Family</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Columns in Apache HBase are grouped into <em>column families</em>.
@@ -7536,7 +7754,7 @@ Because tunings and storage specifications are done at the column family level,
 </div>
 </div>
 <div class="sect1">
-<h2 id="_cells"><a class="anchor" href="#_cells"></a>25. Cells</h2>
+<h2 id="_cells"><a class="anchor" href="#_cells"></a>26. Cells</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>A <em>{row, column, version}</em> tuple exactly specifies a <code>cell</code> in HBase.
@@ -7545,29 +7763,29 @@ Cell content is uninterpreted bytes</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_data_model_operations"><a class="anchor" href="#_data_model_operations"></a>26. Data Model Operations</h2>
+<h2 id="_data_model_operations"><a class="anchor" href="#_data_model_operations"></a>27. Data Model Operations</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>The four primary data model operations are Get, Put, Scan, and Delete.
-Operations are applied via <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html">Table</a> instances.</p>
+Operations are applied via <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html">Table</a> instances.</p>
 </div>
 <div class="sect2">
-<h3 id="_get"><a class="anchor" href="#_get"></a>26.1. Get</h3>
+<h3 id="_get"><a class="anchor" href="#_get"></a>27.1. Get</h3>
 <div class="paragraph">
-<p><a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Get.html">Get</a> returns attributes for a specified row.
-Gets are executed via <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#get-org.apache.hadoop.hbase.client.Get-">Table.get</a></p>
+<p><a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Get.html">Get</a> returns attributes for a specified row.
+Gets are executed via <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#get-org.apache.hadoop.hbase.client.Get-">Table.get</a></p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_put"><a class="anchor" href="#_put"></a>26.2. Put</h3>
+<h3 id="_put"><a class="anchor" href="#_put"></a>27.2. Put</h3>
 <div class="paragraph">
-<p><a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Put.html">Put</a> either adds new rows to a table (if the key is new) or can update existing rows (if the key already exists). Puts are executed via <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#put-org.apache.hadoop.hbase.client.Put-">Table.put</a> (non-writeBuffer) or <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#batch-java.util.List-java.lang.Object:A-">Table.batch</a> (non-writeBuffer)</p>
+<p><a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Put.html">Put</a> either adds new rows to a table (if the key is new) or can update existing rows (if the key already exists). Puts are executed via <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#put-org.apache.hadoop.hbase.client.Put-">Table.put</a> (non-writeBuffer) or <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#batch-java.util.List-java.lang.Object:A-">Table.batch</a> (non-writeBuffer)</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="scan"><a class="anchor" href="#scan"></a>26.3. Scans</h3>
+<h3 id="scan"><a class="anchor" href="#scan"></a>27.3. Scans</h3>
 <div class="paragraph">
-<p><a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan.html">Scan</a> allow iteration over multiple rows for specified attributes.</p>
+<p><a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan.html">Scan</a> allow iteration over multiple rows for specified attributes.</p>
 </div>
 <div class="paragraph">
 <p>The following is an example of a Scan on a Table instance.
@@ -7595,14 +7813,14 @@ ResultScanner rs = table.getScanner(scan);
 </div>
 </div>
 <div class="paragraph">
-<p>Note that generally the easiest way to specify a specific stop point for a scan is by using the <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/InclusiveStopFilter.html">InclusiveStopFilter</a> class.</p>
+<p>Note that generally the easiest way to specify a specific stop point for a scan is by using the <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/InclusiveStopFilter.html">InclusiveStopFilter</a> class.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_delete"><a class="anchor" href="#_delete"></a>26.4. Delete</h3>
+<h3 id="_delete"><a class="anchor" href="#_delete"></a>27.4. Delete</h3>
 <div class="paragraph">
-<p><a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Delete.html">Delete</a> removes a row from a table.
-Deletes are executed via <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#delete-org.apache.hadoop.hbase.client.Delete-">Table.delete</a>.</p>
+<p><a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Delete.html">Delete</a> removes a row from a table.
+Deletes are executed via <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#delete-org.apache.hadoop.hbase.client.Delete-">Table.delete</a>.</p>
 </div>
 <div class="paragraph">
 <p>HBase does not modify data in place, and so deletes are handled by creating new markers called <em>tombstones</em>.
@@ -7615,7 +7833,7 @@ These tombstones, along with the dead values, are cleaned up on major compaction
 </div>
 </div>
 <div class="sect1">
-<h2 id="versions"><a class="anchor" href="#versions"></a>27. Versions</h2>
+<h2 id="versions"><a class="anchor" href="#versions"></a>28. Versions</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>A <em>{row, column, version}</em> tuple exactly specifies a <code>cell</code> in HBase.
@@ -7650,7 +7868,7 @@ As of this writing, the limitation <em>Overwriting values at existing timestamps
 This section is basically a synopsis of this article by Bruno Dumon.</p>
 </div>
 <div class="sect2">
-<h3 id="specify.number.of.versions"><a class="anchor" href="#specify.number.of.versions"></a>27.1. Specifying the Number of Versions to Store</h3>
+<h3 id="specify.number.of.versions"><a class="anchor" href="#specify.number.of.versions"></a>28.1. Specifying the Number of Versions to Store</h3>
 <div class="paragraph">
 <p>The maximum number of versions to store for a given column is part of the column schema and is specified at table creation, or via an <code>alter</code> command, via <code>HColumnDescriptor.DEFAULT_VERSIONS</code>.
 Prior to HBase 0.96, the default number of versions kept was <code>3</code>, but in 0.96 and newer has been changed to <code>1</code>.</p>
@@ -7660,7 +7878,7 @@ Prior to HBase 0.96, the default number of versions kept was <code>3</code>, but
 <div class="content">
 <div class="paragraph">
 <p>This example uses HBase Shell to keep a maximum of 5 versions of all columns in column family <code>f1</code>.
-You could also use <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HColumnDescriptor.html">HColumnDescriptor</a>.</p>
+You could also use <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HColumnDescriptor.html">HColumnDescriptor</a>.</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -7676,7 +7894,7 @@ You could also use <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hb
 <p>You can also specify the minimum number of versions to store per column family.
 By default, this is set to 0, which means the feature is disabled.
 The following example sets the minimum number of versions on all columns in column family <code>f1</code> to <code>2</code>, via HBase Shell.
-You could also use <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HColumnDescriptor.html">HColumnDescriptor</a>.</p>
+You could also use <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HColumnDescriptor.html">HColumnDescriptor</a>.</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -7691,15 +7909,15 @@ See <a href="#hbase.column.max.version">hbase.column.max.version</a>.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="versions.ops"><a class="anchor" href="#versions.ops"></a>27.2. Versions and HBase Operations</h3>
+<h3 id="versions.ops"><a class="anchor" href="#versions.ops"></a>28.2. Versions and HBase Operations</h3>
 <div class="paragraph">
 <p>In this section we look at the behavior of the version dimension for each of the core HBase operations.</p>
 </div>
 <div class="sect3">
-<h4 id="_get_scan"><a class="anchor" href="#_get_scan"></a>27.2.1. Get/Scan</h4>
+<h4 id="_get_scan"><a class="anchor" href="#_get_scan"></a>28.2.1. Get/Scan</h4>
 <div class="paragraph">
 <p>Gets are implemented on top of Scans.
-The below discussion of <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Get.html">Get</a> applies equally to <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan.html">Scans</a>.</p>
+The below discussion of <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Get.html">Get</a> applies equally to <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan.html">Scans</a>.</p>
 </div>
 <div class="paragraph">
 <p>By default, i.e. if you specify no explicit version, when doing a <code>get</code>, the cell whose version has the largest value is returned (which may or may not be the latest one written, see later). The default behavior can be modified in the following ways:</p>
@@ -7707,10 +7925,10 @@ The below discussion of <a href="http://hbase.apache.org/apidocs/org/apache/hado
 <div class="ulist">
 <ul>
 <li>
-<p>to return more than one version, see <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Get.html#setMaxVersions--">Get.setMaxVersions()</a></p>
+<p>to return more than one version, see <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Get.html#setMaxVersions--">Get.setMaxVersions()</a></p>
 </li>
 <li>
-<p>to return versions other than the latest, see <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Get.html#setTimeRange-long-long-">Get.setTimeRange()</a></p>
+<p>to return versions other than the latest, see <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Get.html#setTimeRange-long-long-">Get.setTimeRange()</a></p>
 <div class="paragraph">
 <p>To retrieve the latest version that is less than or equal to a given value, thus giving the 'latest' state of the record at a certain point in time, just use a range from 0 to the desired version and set the max versions to 1.</p>
 </div>
@@ -7719,7 +7937,7 @@ The below discussion of <a href="http://hbase.apache.org/apidocs/org/apache/hado
 </div>
 </div>
 <div class="sect3">
-<h4 id="_default_get_example"><a class="anchor" href="#_default_get_example"></a>27.2.2. Default Get Example</h4>
+<h4 id="_default_get_example"><a class="anchor" href="#_default_get_example"></a>28.2.2. Default Get Example</h4>
 <div class="paragraph">
 <p>The following Get will only retrieve the current version of the row</p>
 </div>
@@ -7735,7 +7953,7 @@ Get get = <span class="keyword">new</span> Get(Bytes.toBytes(<span class="string
 </div>
 </div>
 <div class="sect3">
-<h4 id="_versioned_get_example"><a class="anchor" href="#_versioned_get_example"></a>27.2.3. Versioned Get Example</h4>
+<h4 id="_versioned_get_example"><a class="anchor" href="#_versioned_get_example"></a>28.2.3. Versioned Get Example</h4>
 <div class="paragraph">
 <p>The following Get will return the last 3 versions of the row.</p>
 </div>
@@ -7753,7 +7971,7 @@ get.setMaxVersions(<span class="integer">3</span>);  <span class="comment">// wi
 </div>
 </div>
 <div class="sect3">
-<h4 id="_put_2"><a class="anchor" href="#_put_2"></a>27.2.4. Put</h4>
+<h4 id="_put_2"><a class="anchor" href="#_put_2"></a>28.2.4. Put</h4>
 <div class="paragraph">
 <p>Doing a put always creates a new version of a <code>cell</code>, at a certain timestamp.
 By default the system uses the server&#8217;s <code>currentTimeMillis</code>, but you can specify the version (= the long integer) yourself, on a per-column level.
@@ -7802,7 +8020,7 @@ Prefer using a separate timestamp attribute of the row, or have the timestamp as
 </div>
 </div>
 <div class="sect3">
-<h4 id="version.delete"><a class="anchor" href="#version.delete"></a>27.2.5. Delete</h4>
+<h4 id="version.delete"><a class="anchor" href="#version.delete"></a>28.2.5. Delete</h4>
 <div class="paragraph">
 <p>There are three different types of internal delete markers.
 See Lars Hofhansl&#8217;s blog for discussion of his attempt adding another, <a href="http://hadoop-hbase.blogspot.com/2012/01/scanning-in-hbase.html">Scanning in HBase: Prefix Delete Marker</a>.</p>
@@ -7861,9 +8079,9 @@ The change has been backported to HBase 0.94 and newer branches.
 </div>
 </div>
 <div class="sect2">
-<h3 id="_current_limitations"><a class="anchor" href="#_current_limitations"></a>27.3. Current Limitations</h3>
+<h3 id="_current_limitations"><a class="anchor" href="#_current_limitations"></a>28.3. Current Limitations</h3>
 <div class="sect3">
-<h4 id="_deletes_mask_puts"><a class="anchor" href="#_deletes_mask_puts"></a>27.3.1. Deletes mask Puts</h4>
+<h4 id="_deletes_mask_puts"><a class="anchor" href="#_deletes_mask_puts"></a>28.3.1. Deletes mask Puts</h4>
 <div class="paragraph">
 <p>Deletes mask puts, even puts that happened after the delete was entered.
 See <a href="https://issues.apache.org/jira/browse/HBASE-2256">HBASE-2256</a>.
@@ -7878,7 +8096,7 @@ But they can occur even if you do not care about time: just do delete and put im
 </div>
 </div>
 <div class="sect3">
-<h4 id="major.compactions.change.query.results"><a class="anchor" href="#major.compactions.change.query.results"></a>27.3.2. Major compactions change query results</h4>
+<h4 id="major.compactions.change.query.results"><a class="anchor" href="#major.compactions.change.query.results"></a>28.3.2. Major compactions change query results</h4>
 <div class="paragraph">
 <p><em>&#8230;&#8203;create three cell versions at t1, t2 and t3, with a maximum-versions
     setting of 2. So when getting all versions, only the values at t2 and t3 will be
@@ -7891,7 +8109,7 @@ But they can occur even if you do not care about time: just do delete and put im
 </div>
 </div>
 <div class="sect1">
-<h2 id="dm.sort"><a class="anchor" href="#dm.sort"></a>28. Sort Order</h2>
+<h2 id="dm.sort"><a class="anchor" href="#dm.sort"></a>29. Sort Order</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>All data model operations HBase return data in sorted order.
@@ -7900,7 +8118,7 @@ First by row, then by ColumnFamily, followed by column qualifier, and finally ti
 </div>
 </div>
 <div class="sect1">
-<h2 id="dm.column.metadata"><a class="anchor" href="#dm.column.metadata"></a>29. Column Metadata</h2>
+<h2 id="dm.column.metadata"><a class="anchor" href="#dm.column.metadata"></a>30. Column Metadata</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>There is no store of column metadata outside of the internal KeyValue instances for a ColumnFamily.
@@ -7913,7 +8131,7 @@ For more information about how HBase stores data internally, see <a href="#keyva
 </div>
 </div>
 <div class="sect1">
-<h2 id="joins"><a class="anchor" href="#joins"></a>30. Joins</h2>
+<h2 id="joins"><a class="anchor" href="#joins"></a>31. Joins</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Whether HBase supports joins is a common question on the dist-list, and there is a simple answer:  it doesn&#8217;t, at not least in the way that RDBMS' support them (e.g., with equi-joins or outer-joins in SQL).  As has been illustrated in this chapter, the read data model operations in HBase are Get and Scan.</p>
@@ -7926,7 +8144,7 @@ hash-joins). So which is the best approach? It depends on what you are trying to
 </div>
 </div>
 <div class="sect1">
-<h2 id="_acid"><a class="anchor" href="#_acid"></a>31. ACID</h2>
+<h2 id="_acid"><a class="anchor" href="#_acid"></a>32. ACID</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>See <a href="/acid-semantics.html">ACID Semantics</a>.
@@ -7959,10 +8177,10 @@ modeling on HBase.</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="schema.creation"><a class="anchor" href="#schema.creation"></a>32. Schema Creation</h2>
+<h2 id="schema.creation"><a class="anchor" href="#schema.creation"></a>33. Schema Creation</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>HBase schemas can be created or updated using the <a href="#shell">The Apache HBase Shell</a> or by using <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Admin.html">Admin</a> in the Java API.</p>
+<p>HBase schemas can be created or updated using the <a href="#shell">The Apache HBase Shell</a> or by using <a href="https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Admin.html">Admin</a> in the Java API.</p>
 </div>
 <div class="paragraph">
 <p>Tables must be disabled when making ColumnFamily modifications, for example:</p>
@@ -7999,7 +8217,7 @@ online schema changes are supported in the 0.92.x codebase, but the 0.90.x codeb
 </table>
 </div>
 <div class="sect2">
-<h3 id="schema.updates"><a class="anchor" href="#schema.updates"></a>32.1. Schema Updates</h3>
+<h3 id="schema.updates"><a class="anchor" href="#schema.updates"></a>33.1. Schema Updates</h3>
 <div class="paragraph">
 <p>When changes are made to either Tables or ColumnFamilies (e.g. region size, block size), these changes take effect the next time there is a major compaction and the StoreFiles get re-written.</p>
 </div>
@@ -8010,7 +8228,7 @@ online schema changes are supported in the 0.92.x codebase, but the 0.90.x codeb
 </div>
 </div>
 <div class="sect1">
-<h2 id="table_schema_rules_of_thumb"><a class="anchor" href="#table_schema_rules_of_thumb"></a>33. Table Schema Rules Of Thumb</h2>
+<h2 id="table_schema_rules_of_thumb"><a class="anchor" href="#table_schema_rules_of_thumb"></a>34. Table Schema Rules Of Thumb</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>There are many different data sets, with different access patterns and service-level
@@ -8083,7 +8301,7 @@ defaults).</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="number.of.cfs"><a class="anchor" href="#number.of.cfs"></a>34.

<TRUNCATED>

[15/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
index e49706a..b3cc56f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
@@ -2055,7 +2055,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>putUpJettyServer</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.559">putUpJettyServer</a>()
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.562">putUpJettyServer</a>()
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2069,7 +2069,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaTableObserver</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>,<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.607">getMetaTableObserver</a>()</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>,<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.610">getMetaTableObserver</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetaTableObserver--">getMetaTableObserver</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2082,7 +2082,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>login</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.614">login</a>(<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a>&nbsp;user,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.617">login</a>(<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a>&nbsp;user,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;host)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">For compatibility, if failed with regionserver credentials, try the master one</div>
@@ -2100,7 +2100,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForMasterActive</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.629">waitForMasterActive</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.632">waitForMasterActive</a>()</pre>
 <div class="block">If configured to put regions on active master,
  wait till a backup master becomes active.
  Otherwise, loop till the server is stopped or aborted.</div>
@@ -2116,7 +2116,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterRpcServices</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.html" title="class in org.apache.hadoop.hbase.master">MasterRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.637">getMasterRpcServices</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.html" title="class in org.apache.hadoop.hbase.master">MasterRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.640">getMasterRpcServices</a>()</pre>
 </li>
 </ul>
 <a name="balanceSwitch-boolean-">
@@ -2125,7 +2125,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceSwitch</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.641">balanceSwitch</a>(boolean&nbsp;b)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.644">balanceSwitch</a>(boolean&nbsp;b)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2139,7 +2139,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcessName</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.646">getProcessName</a>()</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.649">getProcessName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getProcessName--">getProcessName</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2152,7 +2152,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>canCreateBaseZNode</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.651">canCreateBaseZNode</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.654">canCreateBaseZNode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#canCreateBaseZNode--">canCreateBaseZNode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2165,7 +2165,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>canUpdateTableDescriptor</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.656">canUpdateTableDescriptor</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.659">canUpdateTableDescriptor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#canUpdateTableDescriptor--">canUpdateTableDescriptor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2178,7 +2178,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createRpcServices</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.661">createRpcServices</a>()
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.664">createRpcServices</a>()
                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -2194,7 +2194,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>configureInfoServer</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.666">configureInfoServer</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.669">configureInfoServer</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#configureInfoServer--">configureInfoServer</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2207,7 +2207,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getDumpServlet</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends javax.servlet.http.HttpServlet&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.675">getDumpServlet</a>()</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends javax.servlet.http.HttpServlet&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.678">getDumpServlet</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getDumpServlet--">getDumpServlet</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2220,7 +2220,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMaster.html" title="class in org.apache.hadoop.hbase.master">MetricsMaster</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.680">getMasterMetrics</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMaster.html" title="class in org.apache.hadoop.hbase.master">MetricsMaster</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.683">getMasterMetrics</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterMetrics--">getMasterMetrics</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2235,7 +2235,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeZKBasedSystemTrackers</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.687">initializeZKBasedSystemTrackers</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.690">initializeZKBasedSystemTrackers</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
                                      org.apache.zookeeper.KeeperException,
@@ -2256,7 +2256,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>finishActiveMasterInitialization</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.751">finishActiveMasterInitialization</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.754">finishActiveMasterInitialization</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
                                               org.apache.zookeeper.KeeperException,
@@ -2289,7 +2289,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>updateConfigurationForSpaceQuotaObserver</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.962">updateConfigurationForSpaceQuotaObserver</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.965">updateConfigurationForSpaceQuotaObserver</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Adds the <code>MasterSpaceQuotaObserver</code> to the list of configured Master observers to
  automatically remove space quotas for a table when that table is deleted.</div>
 </li>
@@ -2300,7 +2300,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initMobCleaner</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.979">initMobCleaner</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.982">initMobCleaner</a>()</pre>
 </li>
 </ul>
 <a name="createMetaBootstrap-org.apache.hadoop.hbase.master.HMaster-org.apache.hadoop.hbase.monitoring.MonitoredTask-">
@@ -2309,7 +2309,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createMetaBootstrap</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/MasterMetaBootstrap.html" title="class in org.apache.hadoop.hbase.master">MasterMetaBootstrap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.998">createMetaBootstrap</a>(<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;master,
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/MasterMetaBootstrap.html" title="class in org.apache.hadoop.hbase.master">MasterMetaBootstrap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1001">createMetaBootstrap</a>(<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;master,
                                         <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)</pre>
 <div class="block">Create a <a href="../../../../../org/apache/hadoop/hbase/master/MasterMetaBootstrap.html" title="class in org.apache.hadoop.hbase.master"><code>MasterMetaBootstrap</code></a> instance.</div>
 </li>
@@ -2320,7 +2320,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createServerManager</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1007">createServerManager</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1010">createServerManager</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Create a <a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master"><code>ServerManager</code></a> instance.</div>
 <dl>
@@ -2335,7 +2335,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForRegionServers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1014">waitForRegionServers</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1017">waitForRegionServers</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -2351,7 +2351,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initClusterSchemaService</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1027">initClusterSchemaService</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1030">initClusterSchemaService</a>()
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -2367,7 +2367,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initQuotaManager</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1039">initQuotaManager</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1042">initQuotaManager</a>()
                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2381,7 +2381,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createQuotaSnapshotNotifier</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotNotifier</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1046">createQuotaSnapshotNotifier</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotNotifier</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1049">createQuotaSnapshotNotifier</a>()</pre>
 </li>
 </ul>
 <a name="isCatalogJanitorEnabled--">
@@ -2390,7 +2390,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogJanitorEnabled</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1052">isCatalogJanitorEnabled</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1055">isCatalogJanitorEnabled</a>()</pre>
 </li>
 </ul>
 <a name="isCleanerChoreEnabled--">
@@ -2399,7 +2399,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isCleanerChoreEnabled</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1057">isCleanerChoreEnabled</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1060">isCleanerChoreEnabled</a>()</pre>
 </li>
 </ul>
 <a name="getTableDescriptors--">
@@ -2408,7 +2408,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptors</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1072">getTableDescriptors</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1075">getTableDescriptors</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getTableDescriptors--">getTableDescriptors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2425,7 +2425,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1077">getServerManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1080">getServerManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getServerManager--">getServerManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2440,7 +2440,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterFileSystem</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1082">getMasterFileSystem</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1085">getMasterFileSystem</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterFileSystem--">getMasterFileSystem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2455,7 +2455,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterWalManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1087">getMasterWalManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1090">getMasterWalManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterWalManager--">getMasterWalManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2470,7 +2470,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableStateManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1092">getTableStateManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1095">getTableStateManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getTableStateManager--">getTableStateManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2485,7 +2485,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>startServiceThreads</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1103">startServiceThreads</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1106">startServiceThreads</a>()
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2499,7 +2499,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopServiceThreads</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1160">stopServiceThreads</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1163">stopServiceThreads</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stopServiceThreads--">HRegionServer</a></code></span></div>
 <div class="block">Wait on all threads to finish. Presumption is that all closes and stops
  have already been called.</div>
@@ -2515,7 +2515,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>startProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1200">startProcedureExecutor</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1203">startProcedureExecutor</a>()
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2529,7 +2529,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1222">stopProcedureExecutor</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1225">stopProcedureExecutor</a>()</pre>
 </li>
 </ul>
 <a name="stopChores--">
@@ -2538,7 +2538,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopChores</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1236">stopChores</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1239">stopChores</a>()</pre>
 </li>
 </ul>
 <a name="getRemoteInetAddress-int-long-">
@@ -2547,7 +2547,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteInetAddress</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1273">getRemoteInetAddress</a>(int&nbsp;port,
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1276">getRemoteInetAddress</a>(int&nbsp;port,
                                  long&nbsp;serverStartCode)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/net/UnknownHostException.html?is-external=true" title="class or interface in java.net">UnknownHostException</a></pre>
 <dl>
@@ -2564,7 +2564,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxBalancingTime</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1293">getMaxBalancingTime</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1296">getMaxBalancingTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Maximum time we should run balancer for</dd>
@@ -2577,7 +2577,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxRegionsInTransition</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1306">getMaxRegionsInTransition</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1309">getMaxRegionsInTransition</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Maximum number of regions in transition</dd>
@@ -2590,7 +2590,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceThrottling</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1318">balanceThrottling</a>(long&nbsp;nextBalanceStartTime,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1321">balanceThrottling</a>(long&nbsp;nextBalanceStartTime,
                                int&nbsp;maxRegionsInTransition,
                                long&nbsp;cutoffTime)</pre>
 <div class="block">It first sleep to the next balance plan start time. Meanwhile, throttling by the max
@@ -2609,7 +2609,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balance</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1349">balance</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1352">balance</a>()
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2623,7 +2623,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balance</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1353">balance</a>(boolean&nbsp;force)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1356">balance</a>(boolean&nbsp;force)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2637,7 +2637,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionNormalizer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1468">getRegionNormalizer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1471">getRegionNormalizer</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getRegionNormalizer--">getRegionNormalizer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2652,7 +2652,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>normalizeRegions</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1479">normalizeRegions</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1482">normalizeRegions</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Perform normalization of cluster (invoked by <a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.html" title="class in org.apache.hadoop.hbase.master.normalizer"><code>RegionNormalizerChore</code></a>).</div>
 <dl>
@@ -2671,7 +2671,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClientIdAuditPrefix</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1536">getClientIdAuditPrefix</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1539">getClientIdAuditPrefix</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getClientIdAuditPrefix--">getClientIdAuditPrefix</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2686,7 +2686,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>setCatalogJanitorEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1547">setCatalogJanitorEnabled</a>(boolean&nbsp;b)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1550">setCatalogJanitorEnabled</a>(boolean&nbsp;b)</pre>
 <div class="block">Switch for the background CatalogJanitor thread.
  Used for testing.  The thread will continue to run.  It will just be a noop
  if disabled.</div>
@@ -2702,7 +2702,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeRegions</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1552">mergeRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1555">mergeRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
                          boolean&nbsp;forcible,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -2730,7 +2730,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>splitRegion</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1600">splitRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1603">splitRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                         byte[]&nbsp;splitRow,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -2758,7 +2758,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>move</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1626">move</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1629">move</a>(byte[]&nbsp;encodedRegionName,
                  byte[]&nbsp;destServerName)
           throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <dl>
@@ -2773,7 +2773,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1717">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1720">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                         byte[][]&nbsp;splitKeys,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -2798,7 +2798,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createSystemTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1756">createSystemTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor)
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1759">createSystemTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#createSystemTable-org.apache.hadoop.hbase.client.TableDescriptor-">MasterServices</a></code></span></div>
 <div class="block">Create a system table using the given table definition.</div>
@@ -2819,7 +2819,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>sanityCheckTableDescriptor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1784">sanityCheckTableDescriptor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1787">sanityCheckTableDescriptor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Checks whether the table conforms to some sane limits, and configured
  values (compression, etc) work. Throws an exception if something is wrong.</div>
@@ -2835,7 +2835,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkReplicationScope</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1899">checkReplicationScope</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;hcd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1902">checkReplicationScope</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;hcd)
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2849,7 +2849,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCompactionPolicy</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1911">checkCompactionPolicy</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1914">checkCompactionPolicy</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                    <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2864,7 +2864,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>warnOrThrowExceptionForFailure</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1969">warnOrThrowExceptionForFailure</a>(boolean&nbsp;logWarn,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1972">warnOrThrowExceptionForFailure</a>(boolean&nbsp;logWarn,
                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;confKey,
                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;cause)
@@ -2881,7 +2881,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>startActiveMasterManager</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1978">startActiveMasterManager</a>(int&nbsp;infoPort)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1981">startActiveMasterManager</a>(int&nbsp;infoPort)
                                throws org.apache.zookeeper.KeeperException</pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2895,7 +2895,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCompression</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2045">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2048">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2909,7 +2909,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCompression</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2053">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;hcd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2056">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;hcd)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2923,7 +2923,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkEncryption</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2060">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2063">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                              <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2938,7 +2938,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkEncryption</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2068">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2071">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                              <a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;hcd)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2953,7 +2953,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkClassLoading</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2074">checkClassLoading</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2077">checkClassLoading</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2968,7 +2968,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogTable</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2080">isCatalogTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2083">isCatalogTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
 <a name="deleteTable-org.apache.hadoop.hbase.TableName-long-long-">
@@ -2977,7 +2977,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2085">deleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2088">deleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -2999,7 +2999,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>truncateTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2116">truncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2119">truncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                           boolean&nbsp;preserveSplits,
                           long&nbsp;nonceGroup,
                           long&nbsp;nonce)
@@ -3023,7 +3023,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>addColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2146">addColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2149">addColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                       <a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;column,
                       long&nbsp;nonceGroup,
                       long&nbsp;nonce)
@@ -3047,7 +3047,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2167">modifyColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2170">modifyColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          <a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;descriptor,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -3071,7 +3071,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2191">deleteColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2194">deleteColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          byte[]&nbsp;columnName,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -3095,7 +3095,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>enableTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2217">enableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2220">enableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3117,7 +3117,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>disableTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2270">disableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2273">disableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3139,7 +3139,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableRegionForRow</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2309">getTableRegionForRow</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre><a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2312">getTableRegionForRow</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                  byte[]&nbsp;rowKey)
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Return the region and current deployment for the region containing
@@ -3158,7 +3158,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2339">modifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2342">modifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;descriptor,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -3182,7 +3182,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2368">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshotDesc,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2371">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshotDesc,
                             long&nbsp;nonceGroup,
                             long&nbsp;nonce,
                             boolean&nbsp;restoreAcl)
@@ -3199,7 +3199,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTableExists</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2392">checkTableExists</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2395">checkTableExists</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                               <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a></pre>
 <dl>
@@ -3215,7 +3215,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTableModifiable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2400">checkTableModifiable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2403">checkTableModifiable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                  <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a>,
                                  <a href="../../../../../org/apache/hadoop/hbase/TableNotDisabledException.html" title="class in org.apache.hadoop.hbase">TableNotDisabledException</a></pre>
@@ -3239,7 +3239,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterStatus</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2414">getClusterStatus</a>()
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2417">getClusterStatus</a>()
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3255,7 +3255,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterStatus</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2421">getClusterStatus</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a>&gt;&nbsp;options)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2424">getClusterStatus</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a>&gt;&nbsp;options)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3271,7 +3271,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupMasters</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2476">getBackupMasters</a>()
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2479">getBackupMasters</a>()
                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3285,7 +3285,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getLoadedCoprocessors</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2529">getLoadedCoprocessors</a>()</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2532">getLoadedCoprocessors</a>()</pre>
 <div class="block">The set of loaded coprocessors is stored in a static set. Since it's
  statically allocated, it does not require that HMaster's cpHost be
  initialized prior to accessing it.</div>
@@ -3301,7 +3301,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterStartTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2536">getMasterStartTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2539">getMasterStartTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster was started.</dd>
@@ -3314,7 +3314,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterActiveTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2543">getMasterActiveTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2546">getMasterActiveTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster became the active master.</dd>
@@ -3327,7 +3327,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterFinishedInitializationTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2550">getMasterFinishedInitializationTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2553">getMasterFinishedInitializationTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster finished becoming the active master</dd>
@@ -3340,7 +3340,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumWALFiles</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2554">getNumWALFiles</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2557">getNumWALFiles</a>()</pre>
 </li>
 </ul>
 <a name="getWalProcedureStore--">
@@ -3349,7 +3349,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getWalProcedureStore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2558">getWalProcedureStore</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2561">getWalProcedureStore</a>()</pre>
 </li>
 </ul>
 <a name="getRegionServerInfoPort-org.apache.hadoop.hbase.ServerName-">
@@ -3358,7 +3358,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerInfoPort</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2562">getRegionServerInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2565">getRegionServerInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 </li>
 </ul>
 <a name="getRegionServerVersion-org.apache.hadoop.hbase.ServerName-">
@@ -3367,7 +3367,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerVersion</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2572">getRegionServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2575">getRegionServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getRegionServerVersion-org.apache.hadoop.hbase.ServerName-">getRegionServerVersion</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3380,7 +3380,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkIfShouldMoveSystemRegionAsync</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2581">checkIfShouldMoveSystemRegionAsync</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2584">checkIfShouldMoveSystemRegionAsync</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#checkIfShouldMoveSystemRegionAsync--">checkIfShouldMoveSystemRegionAsync</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3393,7 +3393,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessors</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2588">getMasterCoprocessors</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2591">getMasterCoprocessors</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>array of coprocessor SimpleNames.</dd>
@@ -3406,7 +3406,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2594">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2597">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-java.lang.Throwable-">HRegionServer</a></code></span></div>
 <div class="block">Cause the server to exit without closing the regions it is serving, the log
@@ -3429,7 +3429,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getZooKeeper</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2617">getZooKeeper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2620">getZooKeeper</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getZooKeeper--">Server</a></code></span></div>
 <div class="block">Gets the ZooKeeper instance for this server.</div>
 <dl>
@@ -3446,7 +3446,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessorHost</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2622">getMasterCoprocessorHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2625">getMasterCoprocessorHost</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterCoprocessorHost--">getMasterCoprocessorHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3461,7 +3461,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterQuotaManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2627">getMasterQuotaManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2630">getMasterQuotaManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterQuotaManager--">getMasterQuotaManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3476,7 +3476,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterProcedureExecutor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2632">getMasterProcedureExecutor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2635">getMasterProcedureExecutor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterProcedureExecutor--">getMasterProcedureExecutor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3491,7 +3491,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2637">getServerName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2640">getServerName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getServerName--">getServer

<TRUNCATED>

[20/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 8214ace..6d05471 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,16 +5,16 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20171103144740+00'00')
-/CreationDate (D:20171103144740+00'00')
+/ModDate (D:20171104144748+00'00')
+/CreationDate (D:20171104144748+00'00')
 >>
 endobj
 2 0 obj
 << /Type /Catalog
 /Pages 3 0 R
 /Names 26 0 R
-/Outlines 4325 0 R
-/PageLabels 4533 0 R
+/Outlines 4346 0 R
+/PageLabels 4555 0 R
 /PageMode /UseOutlines
 /OpenAction [7 0 R /FitH 842.89]
 /ViewerPreferences << /DisplayDocTitle true
@@ -23,8 +23,8 @@ endobj
 endobj
 3 0 obj
 << /Type /Pages
-/Count 667
-/Kids [7 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 22 0 R 24 0 R 44 0 R 47 0 R 50 0 R 54 0 R 63 0 R 66 0 R 69 0 R 71 0 R 76 0 R 80 0 R 83 0 R 89 0 R 91 0 R 94 0 R 96 0 R 103 0 R 109 0 R 114 0 R 116 0 R 130 0 R 133 0 R 142 0 R 151 0 R 161 0 R 170 0 R 181 0 R 185 0 R 187 0 R 191 0 R 202 0 R 209 0 R 218 0 R 226 0 R 231 0 R 240 0 R 248 0 R 257 0 R 271 0 R 278 0 R 287 0 R 296 0 R 304 0 R 311 0 R 319 0 R 325 0 R 332 0 R 339 0 R 348 0 R 357 0 R 366 0 R 378 0 R 387 0 R 394 0 R 401 0 R 409 0 R 417 0 R 426 0 R 435 0 R 443 0 R 451 0 R 463 0 R 471 0 R 478 0 R 486 0 R 494 0 R 502 0 R 511 0 R 516 0 R 519 0 R 524 0 R 528 0 R 544 0 R 554 0 R 559 0 R 573 0 R 579 0 R 584 0 R 586 0 R 588 0 R 593 0 R 601 0 R 607 0 R 612 0 R 617 0 R 628 0 R 639 0 R 644 0 R 663 0 R 678 0 R 689 0 R 691 0 R 693 0 R 701 0 R 713 0 R 722 0 R 732 0 R 738 0 R 741 0 R 745 0 R 749 0 R 752 0 R 755 0 R 757 0 R 760 0 R 764 0 R 766 0 R 771 0 R 775 0 R 780 0 R 785 0 R 788 0 R 794 0 R 796 0 R 800 0 R 809 0 R 811 0 R 814 0 R 817 0 R 820 0 
 R 823 0 R 837 0 R 844 0 R 853 0 R 864 0 R 870 0 R 882 0 R 886 0 R 889 0 R 893 0 R 896 0 R 901 0 R 910 0 R 918 0 R 922 0 R 926 0 R 931 0 R 935 0 R 937 0 R 952 0 R 963 0 R 968 0 R 974 0 R 977 0 R 985 0 R 993 0 R 997 0 R 1003 0 R 1008 0 R 1010 0 R 1012 0 R 1014 0 R 1025 0 R 1033 0 R 1037 0 R 1044 0 R 1051 0 R 1059 0 R 1063 0 R 1069 0 R 1074 0 R 1082 0 R 1087 0 R 1092 0 R 1094 0 R 1100 0 R 1106 0 R 1108 0 R 1115 0 R 1125 0 R 1129 0 R 1131 0 R 1133 0 R 1137 0 R 1140 0 R 1145 0 R 1148 0 R 1160 0 R 1164 0 R 1170 0 R 1177 0 R 1182 0 R 1186 0 R 1190 0 R 1192 0 R 1195 0 R 1198 0 R 1201 0 R 1205 0 R 1209 0 R 1213 0 R 1218 0 R 1222 0 R 1226 0 R 1228 0 R 1240 0 R 1243 0 R 1251 0 R 1260 0 R 1266 0 R 1270 0 R 1272 0 R 1282 0 R 1285 0 R 1291 0 R 1299 0 R 1302 0 R 1309 0 R 1317 0 R 1319 0 R 1321 0 R 1331 0 R 1333 0 R 1335 0 R 1338 0 R 1340 0 R 1342 0 R 1344 0 R 1346 0 R 1349 0 R 1353 0 R 1358 0 R 1360 0 R 1362 0 R 1364 0 R 1369 0 R 1376 0 R 1382 0 R 1385 0 R 1387 0 R 1390 0 R 1394 0 R 1396 0 R 1399 
 0 R 1401 0 R 1403 0 R 1406 0 R 1411 0 R 1416 0 R 1425 0 R 1439 0 R 1453 0 R 1456 0 R 1460 0 R 1474 0 R 1483 0 R 1497 0 R 1503 0 R 1511 0 R 1526 0 R 1540 0 R 1552 0 R 1557 0 R 1563 0 R 1574 0 R 1580 0 R 1586 0 R 1594 0 R 1597 0 R 1606 0 R 1613 0 R 1617 0 R 1630 0 R 1632 0 R 1638 0 R 1644 0 R 1648 0 R 1656 0 R 1665 0 R 1669 0 R 1671 0 R 1673 0 R 1686 0 R 1692 0 R 1700 0 R 1706 0 R 1720 0 R 1725 0 R 1734 0 R 1742 0 R 1748 0 R 1755 0 R 1759 0 R 1762 0 R 1764 0 R 1770 0 R 1776 0 R 1782 0 R 1786 0 R 1794 0 R 1799 0 R 1805 0 R 1810 0 R 1812 0 R 1820 0 R 1828 0 R 1834 0 R 1839 0 R 1843 0 R 1846 0 R 1851 0 R 1856 0 R 1863 0 R 1865 0 R 1867 0 R 1870 0 R 1878 0 R 1881 0 R 1888 0 R 1898 0 R 1901 0 R 1906 0 R 1908 0 R 1913 0 R 1916 0 R 1918 0 R 1923 0 R 1933 0 R 1935 0 R 1937 0 R 1939 0 R 1941 0 R 1944 0 R 1946 0 R 1948 0 R 1951 0 R 1953 0 R 1955 0 R 1959 0 R 1964 0 R 1973 0 R 1975 0 R 1977 0 R 1983 0 R 1985 0 R 1990 0 R 1992 0 R 1994 0 R 2001 0 R 2006 0 R 2010 0 R 2014 0 R 2018 0 R 2020 0 R 202
 2 0 R 2026 0 R 2029 0 R 2031 0 R 2033 0 R 2037 0 R 2039 0 R 2042 0 R 2044 0 R 2046 0 R 2048 0 R 2055 0 R 2058 0 R 2063 0 R 2065 0 R 2067 0 R 2069 0 R 2071 0 R 2079 0 R 2090 0 R 2104 0 R 2115 0 R 2119 0 R 2124 0 R 2128 0 R 2131 0 R 2136 0 R 2142 0 R 2144 0 R 2148 0 R 2150 0 R 2152 0 R 2154 0 R 2158 0 R 2160 0 R 2173 0 R 2176 0 R 2184 0 R 2190 0 R 2202 0 R 2216 0 R 2230 0 R 2247 0 R 2251 0 R 2253 0 R 2257 0 R 2275 0 R 2281 0 R 2293 0 R 2297 0 R 2301 0 R 2310 0 R 2320 0 R 2325 0 R 2336 0 R 2349 0 R 2368 0 R 2377 0 R 2380 0 R 2389 0 R 2407 0 R 2414 0 R 2417 0 R 2422 0 R 2426 0 R 2429 0 R 2438 0 R 2447 0 R 2450 0 R 2452 0 R 2456 0 R 2471 0 R 2479 0 R 2484 0 R 2488 0 R 2492 0 R 2494 0 R 2496 0 R 2498 0 R 2503 0 R 2516 0 R 2526 0 R 2535 0 R 2543 0 R 2549 0 R 2559 0 R 2566 0 R 2572 0 R 2574 0 R 2584 0 R 2592 0 R 2602 0 R 2606 0 R 2617 0 R 2621 0 R 2631 0 R 2639 0 R 2647 0 R 2653 0 R 2657 0 R 2661 0 R 2665 0 R 2667 0 R 2673 0 R 2677 0 R 2681 0 R 2687 0 R 2693 0 R 2696 0 R 2702 0 R 2706 0 R 2
 715 0 R 2720 0 R 2725 0 R 2734 0 R 2740 0 R 2748 0 R 2752 0 R 2756 0 R 2762 0 R 2766 0 R 2770 0 R 2779 0 R 2784 0 R 2786 0 R 2790 0 R 2798 0 R 2801 0 R 2811 0 R 2816 0 R 2825 0 R 2828 0 R 2838 0 R 2843 0 R 2847 0 R 2855 0 R 2861 0 R 2865 0 R 2867 0 R 2878 0 R 2883 0 R 2886 0 R 2888 0 R 2890 0 R 2900 0 R 2907 0 R 2911 0 R 2914 0 R 2920 0 R 2923 0 R 2927 0 R 2930 0 R 2936 0 R 2941 0 R 2947 0 R 2951 0 R 2954 0 R 2957 0 R 2959 0 R 2963 0 R 2973 0 R 2975 0 R 2979 0 R 2982 0 R 2987 0 R 2990 0 R 2994 0 R 2996 0 R 3009 0 R 3014 0 R 3019 0 R 3026 0 R 3034 0 R 3036 0 R 3044 0 R 3062 0 R 3074 0 R 3080 0 R 3096 0 R 3099 0 R 3104 0 R 3106 0 R 3112 0 R 3115 0 R 3131 0 R 3134 0 R 3139 0 R 3145 0 R 3154 0 R 3159 0 R 3170 0 R 3182 0 R 3189 0 R 3197 0 R 3202 0 R 3205 0 R 3210 0 R 3212 0 R 3218 0 R 3228 0 R 3236 0 R 3242 0 R 3247 0 R 3256 0 R 3264 0 R 3271 0 R 3283 0 R 3288 0 R 3294 0 R 3301 0 R 3304 0 R 3306 0 R 3312 0 R 3319 0 R 3321 0 R 3328 0 R 3330 0 R 3338 0 R 3345 0 R 3351 0 R 3359 0 R 3369 0 R
  3376 0 R 3386 0 R 3393 0 R 3407 0 R 3414 0 R 3416 0 R 3421 0 R 3436 0 R 3438 0 R 3442 0 R 3448 0 R 3452 0 R 3455 0 R 3460 0 R 3462 0 R 3466 0 R 3468 0 R 3472 0 R 3475 0 R 3478 0 R 3486 0 R 3488 0 R 3492 0 R 3495 0 R 3504 0 R 3510 0 R 3514 0 R 3517 0 R 3519 0 R 3524 0 R 3529 0 R 3534 0 R 3537 0 R 3550 0 R 3555 0 R 3559 0 R 3562 0 R 3571 0 R 3575 0 R 3583 0 R 3588 0 R 3590 0 R 3596 0 R 3598 0 R 3603 0 R 3607 0 R 3612 0 R 3616 0 R 3628 0 R 3644 0 R 3659 0 R 3664 0 R 3667 0 R 3670 0 R 3676 0 R 3681 0 R 3683 0 R 3685 0 R 3687 0 R 3689 0 R 3691 0 R 3701 0 R 3705 0 R 3710 0 R 3715 0 R 3717 0 R 3724 0 R 3734 0 R 3742 0 R 3745 0 R 3747 0 R 3750 0 R 3757 0 R 3764 0 R 3775 0 R 3779 0 R 3782 0 R 3786 0 R 3789 0 R 3794 0 R 3797 0 R 3813 0 R 3817 0 R 3842 0 R 3846 0 R 3854 0 R 3865 0 R 3874 0 R 3876 0 R 3879 0 R 3882 0 R 3897 0 R 3902 0 R 3909 0 R]
+/Count 672
+/Kids [7 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 22 0 R 24 0 R 44 0 R 47 0 R 50 0 R 54 0 R 63 0 R 66 0 R 69 0 R 71 0 R 76 0 R 80 0 R 83 0 R 89 0 R 91 0 R 94 0 R 96 0 R 103 0 R 109 0 R 114 0 R 116 0 R 130 0 R 133 0 R 142 0 R 151 0 R 161 0 R 170 0 R 181 0 R 185 0 R 187 0 R 191 0 R 202 0 R 209 0 R 218 0 R 226 0 R 231 0 R 240 0 R 248 0 R 257 0 R 271 0 R 278 0 R 287 0 R 296 0 R 304 0 R 311 0 R 319 0 R 325 0 R 332 0 R 339 0 R 348 0 R 357 0 R 366 0 R 378 0 R 387 0 R 394 0 R 401 0 R 409 0 R 417 0 R 426 0 R 435 0 R 443 0 R 451 0 R 463 0 R 471 0 R 478 0 R 486 0 R 494 0 R 502 0 R 511 0 R 516 0 R 519 0 R 524 0 R 528 0 R 544 0 R 554 0 R 559 0 R 573 0 R 579 0 R 584 0 R 586 0 R 588 0 R 593 0 R 601 0 R 607 0 R 612 0 R 617 0 R 628 0 R 639 0 R 644 0 R 652 0 R 656 0 R 660 0 R 662 0 R 678 0 R 693 0 R 704 0 R 706 0 R 708 0 R 716 0 R 728 0 R 737 0 R 747 0 R 753 0 R 756 0 R 760 0 R 764 0 R 767 0 R 770 0 R 772 0 R 775 0 R 779 0 R 781 0 R 786 0 R 790 0 R 795 0 R 800 0 R 803 0 R 809 0 R 811 0 R 815 0 R 824 0 
 R 826 0 R 829 0 R 833 0 R 836 0 R 839 0 R 853 0 R 860 0 R 868 0 R 879 0 R 885 0 R 897 0 R 901 0 R 904 0 R 908 0 R 911 0 R 916 0 R 925 0 R 933 0 R 937 0 R 941 0 R 946 0 R 950 0 R 952 0 R 967 0 R 978 0 R 983 0 R 990 0 R 993 0 R 1002 0 R 1011 0 R 1015 0 R 1020 0 R 1025 0 R 1027 0 R 1029 0 R 1031 0 R 1041 0 R 1049 0 R 1053 0 R 1060 0 R 1067 0 R 1075 0 R 1080 0 R 1085 0 R 1090 0 R 1098 0 R 1102 0 R 1107 0 R 1109 0 R 1116 0 R 1122 0 R 1124 0 R 1131 0 R 1141 0 R 1145 0 R 1147 0 R 1149 0 R 1153 0 R 1156 0 R 1161 0 R 1164 0 R 1176 0 R 1180 0 R 1186 0 R 1194 0 R 1199 0 R 1203 0 R 1207 0 R 1209 0 R 1212 0 R 1215 0 R 1218 0 R 1223 0 R 1227 0 R 1231 0 R 1236 0 R 1240 0 R 1244 0 R 1246 0 R 1256 0 R 1259 0 R 1267 0 R 1276 0 R 1282 0 R 1286 0 R 1288 0 R 1298 0 R 1301 0 R 1307 0 R 1316 0 R 1319 0 R 1326 0 R 1334 0 R 1336 0 R 1338 0 R 1347 0 R 1349 0 R 1351 0 R 1354 0 R 1356 0 R 1358 0 R 1360 0 R 1362 0 R 1365 0 R 1369 0 R 1374 0 R 1376 0 R 1378 0 R 1380 0 R 1385 0 R 1392 0 R 1398 0 R 1401 0 R 1403 0
  R 1406 0 R 1410 0 R 1412 0 R 1415 0 R 1417 0 R 1419 0 R 1422 0 R 1427 0 R 1433 0 R 1441 0 R 1455 0 R 1469 0 R 1472 0 R 1477 0 R 1490 0 R 1499 0 R 1513 0 R 1519 0 R 1528 0 R 1543 0 R 1557 0 R 1569 0 R 1574 0 R 1580 0 R 1591 0 R 1597 0 R 1602 0 R 1610 0 R 1613 0 R 1622 0 R 1629 0 R 1633 0 R 1646 0 R 1648 0 R 1654 0 R 1660 0 R 1664 0 R 1672 0 R 1680 0 R 1684 0 R 1686 0 R 1688 0 R 1701 0 R 1707 0 R 1715 0 R 1721 0 R 1735 0 R 1740 0 R 1749 0 R 1757 0 R 1763 0 R 1770 0 R 1774 0 R 1777 0 R 1779 0 R 1787 0 R 1791 0 R 1797 0 R 1801 0 R 1809 0 R 1814 0 R 1820 0 R 1825 0 R 1827 0 R 1836 0 R 1843 0 R 1849 0 R 1854 0 R 1858 0 R 1861 0 R 1866 0 R 1872 0 R 1879 0 R 1881 0 R 1883 0 R 1886 0 R 1894 0 R 1897 0 R 1904 0 R 1913 0 R 1916 0 R 1921 0 R 1923 0 R 1928 0 R 1931 0 R 1933 0 R 1938 0 R 1948 0 R 1950 0 R 1952 0 R 1954 0 R 1956 0 R 1959 0 R 1961 0 R 1963 0 R 1966 0 R 1968 0 R 1970 0 R 1974 0 R 1979 0 R 1988 0 R 1990 0 R 1992 0 R 1998 0 R 2000 0 R 2006 0 R 2008 0 R 2010 0 R 2017 0 R 2022 0 R 2026
  0 R 2030 0 R 2034 0 R 2036 0 R 2038 0 R 2042 0 R 2045 0 R 2047 0 R 2049 0 R 2053 0 R 2055 0 R 2058 0 R 2060 0 R 2062 0 R 2064 0 R 2071 0 R 2074 0 R 2079 0 R 2081 0 R 2083 0 R 2085 0 R 2087 0 R 2095 0 R 2106 0 R 2120 0 R 2131 0 R 2135 0 R 2140 0 R 2144 0 R 2147 0 R 2152 0 R 2158 0 R 2160 0 R 2164 0 R 2166 0 R 2168 0 R 2170 0 R 2174 0 R 2176 0 R 2189 0 R 2192 0 R 2200 0 R 2206 0 R 2218 0 R 2232 0 R 2246 0 R 2263 0 R 2267 0 R 2269 0 R 2273 0 R 2291 0 R 2297 0 R 2309 0 R 2313 0 R 2317 0 R 2326 0 R 2336 0 R 2341 0 R 2352 0 R 2365 0 R 2383 0 R 2392 0 R 2395 0 R 2404 0 R 2422 0 R 2429 0 R 2432 0 R 2437 0 R 2441 0 R 2444 0 R 2453 0 R 2462 0 R 2465 0 R 2467 0 R 2471 0 R 2486 0 R 2494 0 R 2499 0 R 2504 0 R 2507 0 R 2509 0 R 2511 0 R 2513 0 R 2518 0 R 2531 0 R 2541 0 R 2550 0 R 2558 0 R 2564 0 R 2574 0 R 2581 0 R 2587 0 R 2589 0 R 2599 0 R 2607 0 R 2616 0 R 2621 0 R 2633 0 R 2637 0 R 2647 0 R 2655 0 R 2663 0 R 2670 0 R 2674 0 R 2678 0 R 2682 0 R 2684 0 R 2690 0 R 2694 0 R 2698 0 R 2704 0 R 27
 10 0 R 2713 0 R 2719 0 R 2723 0 R 2732 0 R 2737 0 R 2742 0 R 2751 0 R 2757 0 R 2765 0 R 2769 0 R 2773 0 R 2779 0 R 2783 0 R 2787 0 R 2796 0 R 2801 0 R 2803 0 R 2807 0 R 2815 0 R 2818 0 R 2829 0 R 2834 0 R 2843 0 R 2846 0 R 2856 0 R 2861 0 R 2865 0 R 2873 0 R 2878 0 R 2882 0 R 2884 0 R 2895 0 R 2900 0 R 2904 0 R 2906 0 R 2908 0 R 2918 0 R 2925 0 R 2929 0 R 2932 0 R 2938 0 R 2941 0 R 2944 0 R 2947 0 R 2954 0 R 2959 0 R 2966 0 R 2970 0 R 2973 0 R 2976 0 R 2978 0 R 2982 0 R 2993 0 R 2995 0 R 2999 0 R 3002 0 R 3006 0 R 3009 0 R 3013 0 R 3015 0 R 3028 0 R 3033 0 R 3038 0 R 3045 0 R 3054 0 R 3056 0 R 3064 0 R 3082 0 R 3094 0 R 3100 0 R 3116 0 R 3119 0 R 3124 0 R 3126 0 R 3132 0 R 3135 0 R 3151 0 R 3154 0 R 3159 0 R 3165 0 R 3174 0 R 3179 0 R 3190 0 R 3203 0 R 3210 0 R 3218 0 R 3223 0 R 3226 0 R 3234 0 R 3238 0 R 3243 0 R 3248 0 R 3255 0 R 3258 0 R 3264 0 R 3269 0 R 3278 0 R 3286 0 R 3293 0 R 3305 0 R 3310 0 R 3316 0 R 3323 0 R 3326 0 R 3328 0 R 3334 0 R 3341 0 R 3343 0 R 3350 0 R 3352 0 R 
 3360 0 R 3367 0 R 3373 0 R 3380 0 R 3390 0 R 3397 0 R 3408 0 R 3415 0 R 3428 0 R 3435 0 R 3437 0 R 3442 0 R 3457 0 R 3459 0 R 3463 0 R 3469 0 R 3473 0 R 3476 0 R 3481 0 R 3483 0 R 3487 0 R 3489 0 R 3493 0 R 3496 0 R 3499 0 R 3507 0 R 3509 0 R 3513 0 R 3516 0 R 3524 0 R 3530 0 R 3534 0 R 3537 0 R 3539 0 R 3545 0 R 3550 0 R 3555 0 R 3558 0 R 3571 0 R 3576 0 R 3580 0 R 3584 0 R 3592 0 R 3596 0 R 3604 0 R 3609 0 R 3611 0 R 3617 0 R 3619 0 R 3624 0 R 3628 0 R 3633 0 R 3637 0 R 3649 0 R 3665 0 R 3680 0 R 3685 0 R 3688 0 R 3691 0 R 3697 0 R 3702 0 R 3704 0 R 3706 0 R 3708 0 R 3710 0 R 3712 0 R 3721 0 R 3725 0 R 3730 0 R 3735 0 R 3737 0 R 3744 0 R 3754 0 R 3762 0 R 3765 0 R 3767 0 R 3770 0 R 3777 0 R 3784 0 R 3795 0 R 3799 0 R 3802 0 R 3806 0 R 3809 0 R 3814 0 R 3817 0 R 3833 0 R 3837 0 R 3861 0 R 3865 0 R 3873 0 R 3884 0 R 3893 0 R 3895 0 R 3898 0 R 3901 0 R 3916 0 R 3921 0 R 3928 0 R]
 >>
 endobj
 4 0 obj
@@ -187,15 +187,15 @@ endobj
 << /Type /Font
 /BaseFont /71be00+NotoSerif
 /Subtype /TrueType
-/FontDescriptor 4535 0 R
+/FontDescriptor 4557 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4537 0 R
-/ToUnicode 4536 0 R
+/Widths 4559 0 R
+/ToUnicode 4558 0 R
 >>
 endobj
 11 0 obj
-<< /Length 27646
+<< /Length 27662
 >>
 stream
 q
@@ -818,7 +818,7 @@ ET
 BT
 60.24 474.656 Td
 /F1.0 10.5 Tf
-[<31322e2055706772> 20.0195 <616465205061746873>] TJ
+<31322e20526f6c6c6261636b> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -827,9 +827,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-155.1616 474.656 Td
+123.0946 474.656 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -856,9 +856,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 456.176 Td
+60.24 456.176 Td
 /F1.0 10.5 Tf
-<54686520417061636865204842617365205368656c6c> Tj
+[<31332e2055706772> 20.0195 <616465205061746873>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -867,9 +867,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-171.1951 456.176 Td
+155.1616 456.176 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -887,7 +887,7 @@ ET
 BT
 535.301 456.176 Td
 /F1.0 10.5 Tf
-<3937> Tj
+<3932> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -896,9 +896,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-60.24 437.696 Td
+48.24 437.696 Td
 /F1.0 10.5 Tf
-[<31332e20536372697074696e67207769746820527562> 20.0195 <79>] TJ
+<54686520417061636865204842617365205368656c6c> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -907,7 +907,7 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-176.5396 437.696 Td
+170.6701 437.696 Td
 /F1.0 10.5 Tf
 <2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
@@ -916,7 +916,7 @@ ET
 0.0 0.0 0.0 scn
 
 BT
-534.6211 437.696 Td
+528.7516 437.696 Td
 /F1.0 2.625 Tf
 <ca> Tj
 ET
@@ -925,9 +925,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-535.301 437.696 Td
+529.4315 437.696 Td
 /F1.0 10.5 Tf
-<3938> Tj
+<313031> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -938,7 +938,7 @@ ET
 BT
 60.24 419.216 Td
 /F1.0 10.5 Tf
-[<31342e2052756e6e696e6720746865205368656c6c20696e204e6f6e2d496e746572> 20.0195 <616374697665204d6f6465>] TJ
+[<31342e20536372697074696e67207769746820527562> 20.0195 <79>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -947,16 +947,16 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-294.1186 419.216 Td
+181.3591 419.216 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 
 BT
-534.6211 419.216 Td
+528.7516 419.216 Td
 /F1.0 2.625 Tf
 <ca> Tj
 ET
@@ -965,9 +965,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-535.301 419.216 Td
+529.4315 419.216 Td
 /F1.0 10.5 Tf
-<3939> Tj
+<313032> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -978,7 +978,7 @@ ET
 BT
 60.24 400.736 Td
 /F1.0 10.5 Tf
-<31352e204842617365205368656c6c20696e204f532053637269707473> Tj
+[<31352e2052756e6e696e6720746865205368656c6c20696e204e6f6e2d496e746572> 20.0195 <616374697665204d6f6465>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -987,9 +987,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-202.7371 400.736 Td
+293.5936 400.736 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1007,7 +1007,7 @@ ET
 BT
 529.4315 400.736 Td
 /F1.0 10.5 Tf
-<313030> Tj
+<313033> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1018,7 +1018,7 @@ ET
 BT
 60.24 382.256 Td
 /F1.0 10.5 Tf
-<31362e2052656164204842617365205368656c6c20436f6d6d616e64732066726f6d206120436f6d6d616e642046696c65> Tj
+<31362e204842617365205368656c6c20696e204f532053637269707473> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1027,9 +1027,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-336.3496 382.256 Td
+202.7371 382.256 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1047,7 +1047,7 @@ ET
 BT
 529.4315 382.256 Td
 /F1.0 10.5 Tf
-<313032> Tj
+<313034> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1058,7 +1058,7 @@ ET
 BT
 60.24 363.776 Td
 /F1.0 10.5 Tf
-<31372e2050617373696e6720564d204f7074696f6e7320746f20746865205368656c6c> Tj
+<31372e2052656164204842617365205368656c6c20436f6d6d616e64732066726f6d206120436f6d6d616e642046696c65> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1067,9 +1067,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-234.8041 363.776 Td
+336.3496 363.776 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1087,7 +1087,7 @@ ET
 BT
 529.4315 363.776 Td
 /F1.0 10.5 Tf
-<313034> Tj
+<313036> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1098,7 +1098,7 @@ ET
 BT
 60.24 345.296 Td
 /F1.0 10.5 Tf
-<31382e205368656c6c20547269636b73> Tj
+<31382e2050617373696e6720564d204f7074696f6e7320746f20746865205368656c6c> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1107,9 +1107,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-138.6031 345.296 Td
+234.8041 345.296 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1127,7 +1127,7 @@ ET
 BT
 529.4315 345.296 Td
 /F1.0 10.5 Tf
-<313035> Tj
+<313038> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1136,9 +1136,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 326.816 Td
+60.24 326.816 Td
 /F1.0 10.5 Tf
-<44617461204d6f64656c> Tj
+<31392e205368656c6c20547269636b73> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1147,9 +1147,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-106.5361 326.816 Td
+138.6031 326.816 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1167,7 +1167,7 @@ ET
 BT
 529.4315 326.816 Td
 /F1.0 10.5 Tf
-<313131> Tj
+<313039> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1176,9 +1176,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-60.24 308.336 Td
+48.24 308.336 Td
 /F1.0 10.5 Tf
-<31392e20436f6e6365707475616c2056696577> Tj
+<44617461204d6f64656c> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1187,9 +1187,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-165.3256 308.336 Td
+106.5361 308.336 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1207,7 +1207,7 @@ ET
 BT
 529.4315 308.336 Td
 /F1.0 10.5 Tf
-<313132> Tj
+<313135> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1218,7 +1218,7 @@ ET
 BT
 60.24 289.856 Td
 /F1.0 10.5 Tf
-[<32302e205068> 20.0195 <79736963616c2056696577>] TJ
+<32302e20436f6e6365707475616c2056696577> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1227,9 +1227,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-149.2921 289.856 Td
+165.3256 289.856 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1247,7 +1247,7 @@ ET
 BT
 529.4315 289.856 Td
 /F1.0 10.5 Tf
-<313134> Tj
+<313136> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1258,7 +1258,7 @@ ET
 BT
 60.24 271.376 Td
 /F1.0 10.5 Tf
-<32312e204e616d657370616365> Tj
+[<32312e205068> 20.0195 <79736963616c2056696577>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -1267,9 +1267,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-138.6031 271.376 Td
+149.2921 271.376 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1287,7 +1287,7 @@ ET
 BT
 529.4315 271.376 Td
 /F1.0 10.5 Tf
-<313135> Tj
+<313138> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1298,7 +1298,7 @@ ET
 BT
 60.24 252.896 Td
 /F1.0 10.5 Tf
-[<32322e2054> 29.7852 <61626c65>] TJ
+<32322e204e616d657370616365> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1307,9 +1307,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-106.5361 252.896 Td
+138.6031 252.896 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1327,7 +1327,7 @@ ET
 BT
 529.4315 252.896 Td
 /F1.0 10.5 Tf
-<313137> Tj
+<313139> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1338,7 +1338,7 @@ ET
 BT
 60.24 234.416 Td
 /F1.0 10.5 Tf
-<32332e20526f77> Tj
+[<32332e2054> 29.7852 <61626c65>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -1347,9 +1347,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-101.1916 234.416 Td
+106.5361 234.416 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1367,7 +1367,7 @@ ET
 BT
 529.4315 234.416 Td
 /F1.0 10.5 Tf
-<313138> Tj
+<313231> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1378,7 +1378,7 @@ ET
 BT
 60.24 215.936 Td
 /F1.0 10.5 Tf
-[<32342e20436f6c756d6e2046> 40.0391 <616d696c79>] TJ
+<32342e20526f77> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1387,9 +1387,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-154.6366 215.936 Td
+101.1916 215.936 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1407,7 +1407,7 @@ ET
 BT
 529.4315 215.936 Td
 /F1.0 10.5 Tf
-<313139> Tj
+<313232> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1418,7 +1418,7 @@ ET
 BT
 60.24 197.456 Td
 /F1.0 10.5 Tf
-<32352e2043656c6c73> Tj
+[<32352e20436f6c756d6e2046> 40.0391 <616d696c79>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -1427,9 +1427,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-101.1916 197.456 Td
+154.6366 197.456 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1447,7 +1447,7 @@ ET
 BT
 529.4315 197.456 Td
 /F1.0 10.5 Tf
-<313230> Tj
+<313233> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1458,7 +1458,7 @@ ET
 BT
 60.24 178.976 Td
 /F1.0 10.5 Tf
-[<32362e2044617461204d6f64656c204f706572> 20.0195 <6174696f6e73>] TJ
+<32362e2043656c6c73> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1467,9 +1467,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-197.3926 178.976 Td
+101.1916 178.976 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1487,7 +1487,7 @@ ET
 BT
 529.4315 178.976 Td
 /F1.0 10.5 Tf
-<313231> Tj
+<313234> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1498,7 +1498,7 @@ ET
 BT
 60.24 160.496 Td
 /F1.0 10.5 Tf
-[<32372e2056> 60.0586 <657273696f6e73>] TJ
+[<32372e2044617461204d6f64656c204f706572> 20.0195 <6174696f6e73>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -1507,9 +1507,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-122.5696 160.496 Td
+197.3926 160.496 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1527,7 +1527,7 @@ ET
 BT
 529.4315 160.496 Td
 /F1.0 10.5 Tf
-<313233> Tj
+<313235> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1538,7 +1538,7 @@ ET
 BT
 60.24 142.016 Td
 /F1.0 10.5 Tf
-<32382e20536f7274204f72646572> Tj
+[<32382e2056> 60.0586 <657273696f6e73>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -1547,9 +1547,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-133.2586 142.016 Td
+122.5696 142.016 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1567,7 +1567,7 @@ ET
 BT
 529.4315 142.016 Td
 /F1.0 10.5 Tf
-<313238> Tj
+<313237> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1578,7 +1578,7 @@ ET
 BT
 60.24 123.536 Td
 /F1.0 10.5 Tf
-<32392e20436f6c756d6e204d65746164617461> Tj
+<32392e20536f7274204f72646572> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1587,9 +1587,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-170.6701 123.536 Td
+133.2586 123.536 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1607,7 +1607,7 @@ ET
 BT
 529.4315 123.536 Td
 /F1.0 10.5 Tf
-<313239> Tj
+<313332> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1618,7 +1618,7 @@ ET
 BT
 60.24 105.056 Td
 /F1.0 10.5 Tf
-<33302e204a6f696e73> Tj
+<33302e20436f6c756d6e204d65746164617461> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1627,9 +1627,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-106.5361 105.056 Td
+170.6701 105.056 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1647,7 +1647,7 @@ ET
 BT
 529.4315 105.056 Td
 /F1.0 10.5 Tf
-<313330> Tj
+<313333> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1658,7 +1658,7 @@ ET
 BT
 60.24 86.576 Td
 /F1.0 10.5 Tf
-[<33312e2041> 20.0195 <434944>] TJ
+<33312e204a6f696e73> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1687,7 +1687,7 @@ ET
 BT
 529.4315 86.576 Td
 /F1.0 10.5 Tf
-<313331> Tj
+<313334> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1696,9 +1696,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 68.096 Td
+60.24 68.096 Td
 /F1.0 10.5 Tf
-<484261736520616e6420536368656d612044657369676e> Tj
+[<33322e2041> 20.0195 <434944>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -1707,9 +1707,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-181.3591 68.096 Td
+106.5361 68.096 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1727,7 +1727,7 @@ ET
 BT
 529.4315 68.096 Td
 /F1.0 10.5 Tf
-<313332> Tj
+<313335> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1750,11 +1750,11 @@ endobj
 /F1.0 10 0 R
 >>
 >>
-/Annots [3911 0 R 3912 0 R 3913 0 R 3914 0 R 3915 0 R 3916 0 R 3917 0 R 3918 0 R 3919 0 R 3920 0 R 3921 0 R 3922 0 R 3923 0 R 3924 0 R 3925 0 R 3926 0 R 3927 0 R 3928 0 R 3929 0 R 3930 0 R 3931 0 R 3932 0 R 3933 0 R 3934 0 R 3935 0 R 3936 0 R 3937 0 R 3938 0 R 3939 0 R 3940 0 R 3941 0 R 3942 0 R 3943 0 R 3944 0 R 3945 0 R 3946 0 R 3947 0 R 3948 0 R 3949 0 R 3950 0 R 3951 0 R 3952 0 R 3953 0 R 3954 0 R 3955 0 R 3956 0 R 3957 0 R 3958 0 R 3959 0 R 3960 0 R 3961 0 R 3962 0 R 3963 0 R 3964 0 R 3965 0 R 3966 0 R 3967 0 R 3968 0 R 3969 0 R 3970 0 R 3971 0 R 3972 0 R 3973 0 R 3974 0 R 3975 0 R 3976 0 R 3977 0 R 3978 0 R 3979 0 R 3980 0 R 3981 0 R 3982 0 R 3983 0 R 3984 0 R 3985 0 R 3986 0 R]
+/Annots [3930 0 R 3931 0 R 3932 0 R 3933 0 R 3934 0 R 3935 0 R 3936 0 R 3937 0 R 3938 0 R 3939 0 R 3940 0 R 3941 0 R 3942 0 R 3943 0 R 3944 0 R 3945 0 R 3946 0 R 3947 0 R 3948 0 R 3949 0 R 3950 0 R 3951 0 R 3952 0 R 3953 0 R 3954 0 R 3955 0 R 3956 0 R 3957 0 R 3958 0 R 3959 0 R 3960 0 R 3961 0 R 3962 0 R 3963 0 R 3964 0 R 3965 0 R 3966 0 R 3967 0 R 3968 0 R 3969 0 R 3970 0 R 3971 0 R 3972 0 R 3973 0 R 3974 0 R 3975 0 R 3976 0 R 3977 0 R 3978 0 R 3979 0 R 3980 0 R 3981 0 R 3982 0 R 3983 0 R 3984 0 R 3985 0 R 3986 0 R 3987 0 R 3988 0 R 3989 0 R 3990 0 R 3991 0 R 3992 0 R 3993 0 R 3994 0 R 3995 0 R 3996 0 R 3997 0 R 3998 0 R 3999 0 R 4000 0 R 4001 0 R 4002 0 R 4003 0 R 4004 0 R 4005 0 R]
 >>
 endobj
 13 0 obj
-<< /Length 29107
+<< /Length 29085
 >>
 stream
 q
@@ -1764,9 +1764,9 @@ q
 0.2 0.2 0.2 SCN
 
 BT
-60.24 794.676 Td
+48.24 794.676 Td
 /F1.0 10.5 Tf
-<33322e20536368656d61204372656174696f6e> Tj
+<484261736520616e6420536368656d612044657369676e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1775,9 +1775,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-165.3256 794.676 Td
+181.3591 794.676 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1795,7 +1795,7 @@ ET
 BT
 529.4315 794.676 Td
 /F1.0 10.5 Tf
-<313333> Tj
+<313336> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1806,7 +1806,7 @@ ET
 BT
 60.24 776.196 Td
 /F1.0 10.5 Tf
-[<33332e2054> 29.7852 <61626c6520536368656d612052756c6573204f66205468756d62>] TJ
+<33332e20536368656d61204372656174696f6e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1815,9 +1815,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-234.8041 776.196 Td
+165.3256 776.196 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1835,7 +1835,7 @@ ET
 BT
 529.4315 776.196 Td
 /F1.0 10.5 Tf
-<313334> Tj
+<313337> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1844,9 +1844,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 757.716 Td
+60.24 757.716 Td
 /F1.0 10.5 Tf
-<526567696f6e5365727665722053697a696e672052756c6573206f66205468756d62> Tj
+[<33342e2054> 29.7852 <61626c6520536368656d612052756c6573204f66205468756d62>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -1875,7 +1875,7 @@ ET
 BT
 529.4315 757.716 Td
 /F1.0 10.5 Tf
-<313335> Tj
+<313338> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1884,9 +1884,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-60.24 739.236 Td
+48.24 739.236 Td
 /F1.0 10.5 Tf
-<33342e204f6e20746865206e756d626572206f6620636f6c756d6e2066616d696c696573> Tj
+<526567696f6e5365727665722053697a696e672052756c6573206f66205468756d62> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1895,9 +1895,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-250.8376 739.236 Td
+234.8041 739.236 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1915,7 +1915,7 @@ ET
 BT
 529.4315 739.236 Td
 /F1.0 10.5 Tf
-<313336> Tj
+<313339> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1926,7 +1926,7 @@ ET
 BT
 60.24 720.756 Td
 /F1.0 10.5 Tf
-[<33352e20526f776b> 20.0195 <65792044657369676e>] TJ
+<33352e204f6e20746865206e756d626572206f6620636f6c756d6e2066616d696c696573> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1935,9 +1935,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-154.6366 720.756 Td
+250.8376 720.756 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1955,7 +1955,7 @@ ET
 BT
 529.4315 720.756 Td
 /F1.0 10.5 Tf
-<313337> Tj
+<313430> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1966,7 +1966,7 @@ ET
 BT
 60.24 702.276 Td
 /F1.0 10.5 Tf
-[<33362e204e756d626572206f662056> 60.0586 <657273696f6e73>] TJ
+[<33362e20526f776b> 20.0195 <65792044657369676e>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -1975,9 +1975,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-181.3591 702.276 Td
+154.6366 702.276 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -1995,7 +1995,7 @@ ET
 BT
 529.4315 702.276 Td
 /F1.0 10.5 Tf
-<313434> Tj
+<313431> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2006,7 +2006,7 @@ ET
 BT
 60.24 683.796 Td
 /F1.0 10.5 Tf
-<33372e20537570706f7274656420446174617479706573> Tj
+[<33372e204e756d626572206f662056> 60.0586 <657273696f6e73>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -2015,9 +2015,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-186.7036 683.796 Td
+181.3591 683.796 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2035,7 +2035,7 @@ ET
 BT
 529.4315 683.796 Td
 /F1.0 10.5 Tf
-<313435> Tj
+<313438> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2046,7 +2046,7 @@ ET
 BT
 60.24 665.316 Td
 /F1.0 10.5 Tf
-<33382e204a6f696e73> Tj
+<33382e20537570706f7274656420446174617479706573> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2055,9 +2055,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-106.5361 665.316 Td
+186.7036 665.316 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2075,7 +2075,7 @@ ET
 BT
 529.4315 665.316 Td
 /F1.0 10.5 Tf
-<313436> Tj
+<313439> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2086,7 +2086,7 @@ ET
 BT
 60.24 646.836 Td
 /F1.0 10.5 Tf
-[<33392e2054696d652054> 29.7852 <6f204c697665202854544c29>] TJ
+<33392e204a6f696e73> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2095,9 +2095,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-176.0146 646.836 Td
+106.5361 646.836 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2115,7 +2115,7 @@ ET
 BT
 529.4315 646.836 Td
 /F1.0 10.5 Tf
-<313437> Tj
+<313530> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2126,7 +2126,7 @@ ET
 BT
 60.24 628.356 Td
 /F1.0 10.5 Tf
-[<34302e204b> 20.0195 <656570696e672044656c657465642043656c6c73>] TJ
+[<34302e2054696d652054> 29.7852 <6f204c697665202854544c29>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -2135,9 +2135,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-186.7036 628.356 Td
+176.0146 628.356 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2155,7 +2155,7 @@ ET
 BT
 529.4315 628.356 Td
 /F1.0 10.5 Tf
-<313438> Tj
+<313531> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2166,7 +2166,7 @@ ET
 BT
 60.24 609.876 Td
 /F1.0 10.5 Tf
-<34312e205365636f6e6461727920496e646578657320616e6420416c7465726e617465205175657279205061746873> Tj
+[<34312e204b> 20.0195 <656570696e672044656c657465642043656c6c73>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -2175,9 +2175,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-309.6271 609.876 Td
+186.7036 609.876 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2206,7 +2206,7 @@ ET
 BT
 60.24 591.396 Td
 /F1.0 10.5 Tf
-[<34322e20436f6e737472> 20.0195 <61696e7473>] TJ
+<34322e205365636f6e6461727920496e646578657320616e6420416c7465726e617465205175657279205061746873> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2215,9 +2215,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-138.6031 591.396 Td
+309.6271 591.396 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2235,7 +2235,7 @@ ET
 BT
 529.4315 591.396 Td
 /F1.0 10.5 Tf
-<313534> Tj
+<313536> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2246,7 +2246,7 @@ ET
 BT
 60.24 572.916 Td
 /F1.0 10.5 Tf
-<34332e20536368656d612044657369676e20436173652053747564696573> Tj
+[<34332e20436f6e737472> 20.0195 <61696e7473>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -2255,9 +2255,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-218.7706 572.916 Td
+138.6031 572.916 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2275,7 +2275,7 @@ ET
 BT
 529.4315 572.916 Td
 /F1.0 10.5 Tf
-<313535> Tj
+<313538> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2286,7 +2286,7 @@ ET
 BT
 60.24 554.436 Td
 /F1.0 10.5 Tf
-[<34342e204f706572> 20.0195 <6174696f6e616c20616e6420506572666f726d616e636520436f6e6669677572> 20.0195 <6174696f6e204f7074696f6e73>] TJ
+<34342e20536368656d612044657369676e20436173652053747564696573> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2295,9 +2295,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-341.6941 554.436 Td
+218.7706 554.436 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2315,7 +2315,7 @@ ET
 BT
 529.4315 554.436 Td
 /F1.0 10.5 Tf
-<313635> Tj
+<313539> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2326,7 +2326,7 @@ ET
 BT
 60.24 535.956 Td
 /F1.0 10.5 Tf
-<34352e205370656369616c204361736573> Tj
+[<34352e204f706572> 20.0195 <6174696f6e616c20616e6420506572666f726d616e636520436f6e6669677572> 20.0195 <6174696f6e204f7074696f6e73>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -2335,9 +2335,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-143.9476 535.956 Td
+341.6941 535.956 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2355,7 +2355,7 @@ ET
 BT
 529.4315 535.956 Td
 /F1.0 10.5 Tf
-<313638> Tj
+<313639> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2364,9 +2364,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 517.476 Td
+60.24 517.476 Td
 /F1.0 10.5 Tf
-<484261736520616e64204d6170526564756365> Tj
+<34362e205370656369616c204361736573> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2375,9 +2375,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-165.3256 517.476 Td
+143.9476 517.476 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2395,7 +2395,7 @@ ET
 BT
 529.4315 517.476 Td
 /F1.0 10.5 Tf
-<313639> Tj
+<313732> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2404,9 +2404,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-60.24 498.996 Td
+48.24 498.996 Td
 /F1.0 10.5 Tf
-[<34362e2048426173652c204d61705265647563652c20616e642074686520434c41535350> 49.8047 <41> 60.0586 <5448>] TJ
+<484261736520616e64204d6170526564756365> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2415,9 +2415,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-282.9046 498.996 Td
+165.3256 498.996 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2435,7 +2435,7 @@ ET
 BT
 529.4315 498.996 Td
 /F1.0 10.5 Tf
-<313730> Tj
+<313733> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2446,7 +2446,7 @@ ET
 BT
 60.24 480.516 Td
 /F1.0 10.5 Tf
-<34372e204d6170526564756365205363616e2043616368696e67> Tj
+[<34372e2048426173652c204d61705265647563652c20616e642074686520434c41535350> 49.8047 <41> 60.0586 <5448>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -2455,9 +2455,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-208.0816 480.516 Td
+282.9046 480.516 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2475,7 +2475,7 @@ ET
 BT
 529.4315 480.516 Td
 /F1.0 10.5 Tf
-<313735> Tj
+<313734> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2486,7 +2486,7 @@ ET
 BT
 60.24 462.036 Td
 /F1.0 10.5 Tf
-<34382e2042756e646c6564204842617365204d6170526564756365204a6f6273> Tj
+<34382e204d6170526564756365205363616e2043616368696e67> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2495,9 +2495,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-240.1486 462.036 Td
+208.0816 462.036 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2515,7 +2515,7 @@ ET
 BT
 529.4315 462.036 Td
 /F1.0 10.5 Tf
-<313736> Tj
+<313739> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2526,7 +2526,7 @@ ET
 BT
 60.24 443.556 Td
 /F1.0 10.5 Tf
-<34392e2048426173652061732061204d6170526564756365204a6f62204461746120536f7572636520616e6420446174612053696e6b> Tj
+<34392e2042756e646c6564204842617365204d6170526564756365204a6f6273> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2535,9 +2535,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-347.0386 443.556 Td
+240.1486 443.556 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2555,7 +2555,7 @@ ET
 BT
 529.4315 443.556 Td
 /F1.0 10.5 Tf
-<313737> Tj
+<313830> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2566,7 +2566,7 @@ ET
 BT
 60.24 425.076 Td
 /F1.0 10.5 Tf
-<35302e2057726974696e67204846696c6573204469726563746c7920447572696e672042756c6b20496d706f7274> Tj
+<35302e2048426173652061732061204d6170526564756365204a6f62204461746120536f7572636520616e6420446174612053696e6b> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2575,9 +2575,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-293.5936 425.076 Td
+347.0386 425.076 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2595,7 +2595,7 @@ ET
 BT
 529.4315 425.076 Td
 /F1.0 10.5 Tf
-<313738> Tj
+<313831> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2606,7 +2606,7 @@ ET
 BT
 60.24 406.596 Td
 /F1.0 10.5 Tf
-<35312e20526f77436f756e746572204578616d706c65> Tj
+<35312e2057726974696e67204846696c6573204469726563746c7920447572696e672042756c6b20496d706f7274> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2615,9 +2615,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-186.7036 406.596 Td
+293.5936 406.596 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2635,7 +2635,7 @@ ET
 BT
 529.4315 406.596 Td
 /F1.0 10.5 Tf
-<313739> Tj
+<313832> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2646,7 +2646,7 @@ ET
 BT
 60.24 388.116 Td
 /F1.0 10.5 Tf
-[<35322e204d61702d54> 29.7852 <61736b2053706c697474696e67>] TJ
+<35322e20526f77436f756e746572204578616d706c65> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2655,9 +2655,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-170.6701 388.116 Td
+186.7036 388.116 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2675,7 +2675,7 @@ ET
 BT
 529.4315 388.116 Td
 /F1.0 10.5 Tf
-<313830> Tj
+<313833> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2686,7 +2686,7 @@ ET
 BT
 60.24 369.636 Td
 /F1.0 10.5 Tf
-<35332e204842617365204d6170526564756365204578616d706c6573> Tj
+[<35332e204d61702d54> 29.7852 <61736b2053706c697474696e67>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -2695,9 +2695,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-224.1151 369.636 Td
+170.6701 369.636 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2715,7 +2715,7 @@ ET
 BT
 529.4315 369.636 Td
 /F1.0 10.5 Tf
-<313831> Tj
+<313834> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2726,7 +2726,7 @@ ET
 BT
 60.24 351.156 Td
 /F1.0 10.5 Tf
-[<35342e2041> 20.0195 <6363657373696e67204f746865722048426173652054> 29.7852 <61626c657320696e2061204d6170526564756365204a6f62>] TJ
+<35342e204842617365204d6170526564756365204578616d706c6573> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2735,9 +2735,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-331.0051 351.156 Td
+224.1151 351.156 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2755,7 +2755,7 @@ ET
 BT
 529.4315 351.156 Td
 /F1.0 10.5 Tf
-<313838> Tj
+<313835> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2766,7 +2766,7 @@ ET
 BT
 60.24 332.676 Td
 /F1.0 10.5 Tf
-<35352e2053706563756c617469766520457865637574696f6e> Tj
+[<35352e2041> 20.0195 <6363657373696e67204f746865722048426173652054> 29.7852 <61626c657320696e2061204d6170526564756365204a6f62>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -2775,9 +2775,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-192.0481 332.676 Td
+331.0051 332.676 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2795,7 +2795,7 @@ ET
 BT
 529.4315 332.676 Td
 /F1.0 10.5 Tf
-<313839> Tj
+<313932> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2806,7 +2806,7 @@ ET
 BT
 60.24 314.196 Td
 /F1.0 10.5 Tf
-<35362e20436173636164696e67> Tj
+<35362e2053706563756c617469766520457865637574696f6e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2815,9 +2815,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-127.9141 314.196 Td
+192.0481 314.196 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2835,7 +2835,7 @@ ET
 BT
 529.4315 314.196 Td
 /F1.0 10.5 Tf
-<313930> Tj
+<313933> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2844,9 +2844,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 295.716 Td
+60.24 295.716 Td
 /F1.0 10.5 Tf
-<5365637572696e6720417061636865204842617365> Tj
+<35372e20436173636164696e67> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2855,9 +2855,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-170.6701 295.716 Td
+127.9141 295.716 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2875,7 +2875,7 @@ ET
 BT
 529.4315 295.716 Td
 /F1.0 10.5 Tf
-<313931> Tj
+<313934> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2884,9 +2884,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-60.24 277.236 Td
+48.24 277.236 Td
 /F1.0 10.5 Tf
-[<35372e205573696e67205365637572652048545450202848545450532920666f72207468652057> 60.0586 <6562205549>] TJ
+<5365637572696e6720417061636865204842617365> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2895,9 +2895,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-293.5936 277.236 Td
+170.6701 277.236 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2915,7 +2915,7 @@ ET
 BT
 529.4315 277.236 Td
 /F1.0 10.5 Tf
-<313932> Tj
+<313935> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2926,7 +2926,7 @@ ET
 BT
 60.24 258.756 Td
 /F1.0 10.5 Tf
-[<35382e205573696e672053504e45474f20666f72204b> 20.0195 <65726265726f732061757468656e7469636174696f6e20776974682057> 60.0586 <656220554973>] TJ
+[<35382e205573696e67205365637572652048545450202848545450532920666f72207468652057> 60.0586 <6562205549>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -2935,9 +2935,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-363.0721 258.756 Td
+293.5936 258.756 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2955,7 +2955,7 @@ ET
 BT
 529.4315 258.756 Td
 /F1.0 10.5 Tf
-<313933> Tj
+<313936> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2966,7 +2966,7 @@ ET
 BT
 60.24 240.276 Td
 /F1.0 10.5 Tf
-[<35392e2053656375726520436c69656e742041> 20.0195 <636365737320746f20417061636865204842617365>] TJ
+[<35392e205573696e672053504e45474f20666f72204b> 20.0195 <65726265726f732061757468656e7469636174696f6e20776974682057> 60.0586 <656220554973>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -2975,9 +2975,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-266.8711 240.276 Td
+363.0721 240.276 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -2995,7 +2995,7 @@ ET
 BT
 529.4315 240.276 Td
 /F1.0 10.5 Tf
-<313935> Tj
+<313937> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3006,7 +3006,7 @@ ET
 BT
 60.24 221.796 Td
 /F1.0 10.5 Tf
-[<36302e2053696d706c6520557365722041> 20.0195 <636365737320746f20417061636865204842617365>] TJ
+[<36302e2053656375726520436c69656e742041> 20.0195 <636365737320746f20417061636865204842617365>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -3015,9 +3015,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-261.5266 221.796 Td
+266.8711 221.796 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3035,7 +3035,7 @@ ET
 BT
 529.4315 221.796 Td
 /F1.0 10.5 Tf
-<323032> Tj
+<313939> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3046,7 +3046,7 @@ ET
 BT
 60.24 203.316 Td
 /F1.0 10.5 Tf
-[<36312e205365637572696e672041> 20.0195 <636365737320746f204844465320616e64205a6f6f4b> 20.0195 <6565706572>] TJ
+[<36312e2053696d706c6520557365722041> 20.0195 <636365737320746f20417061636865204842617365>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -3055,9 +3055,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-282.9046 203.316 Td
+261.5266 203.316 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3075,7 +3075,7 @@ ET
 BT
 529.4315 203.316 Td
 /F1.0 10.5 Tf
-<323035> Tj
+<323036> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3086,7 +3086,7 @@ ET
 BT
 60.24 184.836 Td
 /F1.0 10.5 Tf
-[<36322e205365637572696e672041> 20.0195 <63636573732054> 29.7852 <6f2059> 69.8242 <6f75722044617461>] TJ
+[<36322e205365637572696e672041> 20.0195 <636365737320746f204844465320616e64205a6f6f4b> 20.0195 <6565706572>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -3095,9 +3095,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-229.4596 184.836 Td
+282.9046 184.836 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3115,7 +3115,7 @@ ET
 BT
 529.4315 184.836 Td
 /F1.0 10.5 Tf
-<323037> Tj
+<323039> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3126,7 +3126,7 @@ ET
 BT
 60.24 166.356 Td
 /F1.0 10.5 Tf
-[<36332e20536563757269747920436f6e6669677572> 20.0195 <6174696f6e204578616d706c65>] TJ
+[<36332e205365637572696e672041> 20.0195 <63636573732054> 29.7852 <6f2059> 69.8242 <6f75722044617461>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -3135,9 +3135,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-240.1486 166.356 Td
+229.4596 166.356 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3155,7 +3155,7 @@ ET
 BT
 529.4315 166.356 Td
 /F1.0 10.5 Tf
-<323333> Tj
+<323131> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3164,9 +3164,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 147.876 Td
+60.24 147.876 Td
 /F1.0 10.5 Tf
-<417263686974656374757265> Tj
+[<36342e20536563757269747920436f6e6669677572> 20.0195 <6174696f6e204578616d706c65>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -3175,9 +3175,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-111.8806 147.876 Td
+240.1486 147.876 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3195,7 +3195,7 @@ ET
 BT
 529.4315 147.876 Td
 /F1.0 10.5 Tf
-<323336> Tj
+<323337> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3204,9 +3204,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-60.24 129.396 Td
+48.24 129.396 Td
 /F1.0 10.5 Tf
-<36342e204f76657276696577> Tj
+<417263686974656374757265> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3215,9 +3215,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-127.9141 129.396 Td
+111.8806 129.396 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3235,7 +3235,7 @@ ET
 BT
 529.4315 129.396 Td
 /F1.0 10.5 Tf
-<323337> Tj
+<323430> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3246,7 +3246,7 @@ ET
 BT
 60.24 110.916 Td
 /F1.0 10.5 Tf
-[<36352e20436174616c6f672054> 29.7852 <61626c6573>] TJ
+<36352e204f76657276696577> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3255,9 +3255,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-154.6366 110.916 Td
+127.9141 110.916 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3275,7 +3275,7 @@ ET
 BT
 529.4315 110.916 Td
 /F1.0 10.5 Tf
-<323339> Tj
+<323431> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3286,7 +3286,7 @@ ET
 BT
 60.24 92.436 Td
 /F1.0 10.5 Tf
-<36362e20436c69656e74> Tj
+[<36362e20436174616c6f672054> 29.7852 <61626c6573>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -3295,9 +3295,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-106.5361 92.436 Td
+154.6366 92.436 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3315,7 +3315,7 @@ ET
 BT
 529.4315 92.436 Td
 /F1.0 10.5 Tf
-<323430> Tj
+<323433> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3326,7 +3326,7 @@ ET
 BT
 60.24 73.956 Td
 /F1.0 10.5 Tf
-<36372e20436c69656e7420526571756573742046696c74657273> Tj
+<36372e20436c69656e74> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3335,9 +3335,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-186.7036 73.956 Td
+106.5361 73.956 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3366,7 +3366,7 @@ ET
 BT
 60.24 55.476 Td
 /F1.0 10.5 Tf
-<36382e204d6173746572> Tj
+<36382e20436c69656e7420526571756573742046696c74657273> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3375,9 +3375,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-117.2251 55.476 Td
+186.7036 55.476 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3395,7 +3395,7 @@ ET
 BT
 529.4315 55.476 Td
 /F1.0 10.5 Tf
-<323439> Tj
+<323438> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3417,11 +3417,11 @@ endobj
 /Font << /F1.0 10 0 R
 >>
 >>
-/Annots [3987 0 R 3988 0 R 3989 0 R 3990 0 R 3991 0 R 3992 0 R 3993 0 R 3994 0 R 3995 0 R 3996 0 R 3997 0 R 3998 0 R 3999 0 R 4000 0 R 4001 0 R 4002 0 R 4003 0 R 4004 0 R 4005 0 R 4006 0 R 4007 0 R 4008 0 R 4009 0 R 4010 0 R 4011 0 R 4012 0 R 4013 0 R 4014 0 R 4015 0 R 4016 0 R 4017 0 R 4018 0 R 4019 0 R 4020 0 R 4021 0 R 4022 0 R 4023 0 R 4024 0 R 4025 0 R 4026 0 R 4027 0 R 4028 0 R 4029 0 R 4030 0 R 4031 0 R 4032 0 R 4033 0 R 4034 0 R 4035 0 R 4036 0 R 4037 0 R 4038 0 R 4039 0 R 4040 0 R 4041 0 R 4042 0 R 4043 0 R 4044 0 R 4045 0 R 4046 0 R 4047 0 R 4048 0 R 4049 0 R 4050 0 R 4051 0 R 4052 0 R 4053 0 R 4054 0 R 4055 0 R 4056 0 R 4057 0 R 4058 0 R 4059 0 R 4060 0 R 4061 0 R 4062 0 R 4063 0 R 4064 0 R 4065 0 R 4066 0 R 4067 0 R 4068 0 R]
+/Annots [4006 0 R 4007 0 R 4008 0 R 4009 0 R 4010 0 R 4011 0 R 4012 0 R 4013 0 R 4014 0 R 4015 0 R 4016 0 R 4017 0 R 4018 0 R 4019 0 R 4020 0 R 4021 0 R 4022 0 R 4023 0 R 4024 0 R 4025 0 R 4026 0 R 4027 0 R 4028 0 R 4029 0 R 4030 0 R 4031 0 R 4032 0 R 4033 0 R 4034 0 R 4035 0 R 4036 0 R 4037 0 R 4038 0 R 4039 0 R 4040 0 R 4041 0 R 4042 0 R 4043 0 R 4044 0 R 4045 0 R 4046 0 R 4047 0 R 4048 0 R 4049 0 R 4050 0 R 4051 0 R 4052 0 R 4053 0 R 4054 0 R 4055 0 R 4056 0 R 4057 0 R 4058 0 R 4059 0 R 4060 0 R 4061 0 R 4062 0 R 4063 0 R 4064 0 R 4065 0 R 4066 0 R 4067 0 R 4068 0 R 4069 0 R 4070 0 R 4071 0 R 4072 0 R 4073 0 R 4074 0 R 4075 0 R 4076 0 R 4077 0 R 4078 0 R 4079 0 R 4080 0 R 4081 0 R 4082 0 R 4083 0 R 4084 0 R 4085 0 R 4086 0 R 4087 0 R]
 >>
 endobj
 15 0 obj
-<< /Length 29586
+<< /Length 29582
 >>
 stream
 q
@@ -3433,7 +3433,7 @@ q
 BT
 60.24 794.676 Td
 /F1.0 10.5 Tf
-<36392e20526567696f6e536572766572> Tj
+<36392e204d6173746572> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3442,9 +3442,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-149.2921 794.676 Td
+117.2251 794.676 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3462,7 +3462,7 @@ ET
 BT
 529.4315 794.676 Td
 /F1.0 10.5 Tf
-<323530> Tj
+<323533> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3473,7 +3473,7 @@ ET
 BT
 60.24 776.196 Td
 /F1.0 10.5 Tf
-<37302e20526567696f6e73> Tj
+<37302e20526567696f6e536572766572> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3482,9 +3482,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-117.2251 776.196 Td
+149.2921 776.196 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3502,7 +3502,7 @@ ET
 BT
 529.4315 776.196 Td
 /F1.0 10.5 Tf
-<323637> Tj
+<323534> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3513,7 +3513,7 @@ ET
 BT
 60.24 757.716 Td
 /F1.0 10.5 Tf
-<37312e2042756c6b204c6f6164696e67> Tj
+<37312e20526567696f6e73> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3522,9 +3522,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-143.9476 757.716 Td
+117.2251 757.716 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3542,7 +3542,7 @@ ET
 BT
 529.4315 757.716 Td
 /F1.0 10.5 Tf
-<323934> Tj
+<323731> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3553,7 +3553,7 @@ ET
 BT
 60.24 739.236 Td
 /F1.0 10.5 Tf
-<37322e2048444653> Tj
+<37322e2042756c6b204c6f6164696e67> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3562,9 +3562,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-106.5361 739.236 Td
+143.9476 739.236 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3582,7 +3582,7 @@ ET
 BT
 529.4315 739.236 Td
 /F1.0 10.5 Tf
-<323936> Tj
+<323938> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3593,7 +3593,7 @@ ET
 BT
 60.24 720.756 Td
 /F1.0 10.5 Tf
-[<37332e2054696d656c696e652d636f6e73697374656e7420486967682041> 60.0586 <7661696c61626c65205265616473>] TJ
+<37332e2048444653> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3602,9 +3602,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-288.2491 720.756 Td
+106.5361 720.756 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3622,7 +3622,7 @@ ET
 BT
 529.4315 720.756 Td
 /F1.0 10.5 Tf
-<323937> Tj
+<333030> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3633,7 +3633,7 @@ ET
 BT
 60.24 702.276 Td
 /F1.0 10.5 Tf
-<37342e2053746f72696e67204d656469756d2d73697a6564204f626a6563747320284d4f4229> Tj
+[<37342e2054696d656c696e652d636f6e73697374656e7420486967682041> 60.0586 <7661696c61626c65205265616473>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -3642,9 +3642,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-261.5266 702.276 Td
+288.2491 702.276 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3662,7 +3662,7 @@ ET
 BT
 529.4315 702.276 Td
 /F1.0 10.5 Tf
-<333039> Tj
+<333031> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3671,9 +3671,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 683.796 Td
+60.24 683.796 Td
 /F1.0 10.5 Tf
-<4170616368652048426173652041504973> Tj
+<37352e2053746f72696e67204d656469756d2d73697a6564204f626a6563747320284d4f4229> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3682,9 +3682,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-149.2921 683.796 Td
+261.5266 683.796 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3711,9 +3711,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-60.24 665.316 Td
+48.24 665.316 Td
 /F1.0 10.5 Tf
-<37352e204578616d706c6573> Tj
+<4170616368652048426173652041504973> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3722,9 +3722,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-127.9141 665.316 Td
+149.2921 665.316 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3742,7 +3742,7 @@ ET
 BT
 529.4315 665.316 Td
 /F1.0 10.5 Tf
-<333134> Tj
+<333137> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3751,9 +3751,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 646.836 Td
+60.24 646.836 Td
 /F1.0 10.5 Tf
-<4170616368652048426173652045787465726e616c2041504973> Tj
+<37362e204578616d706c6573> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3762,9 +3762,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-192.0481 646.836 Td
+127.9141 646.836 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3782,7 +3782,7 @@ ET
 BT
 529.4315 646.836 Td
 /F1.0 10.5 Tf
-<333136> Tj
+<333138> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3791,9 +3791,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-60.24 628.356 Td
+48.24 628.356 Td
 /F1.0 10.5 Tf
-[<37362e20524553> 20.0195 <54>] TJ
+<4170616368652048426173652045787465726e616c2041504973> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3802,9 +3802,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-106.5361 628.356 Td
+192.0481 628.356 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3822,7 +3822,7 @@ ET
 BT
 529.4315 628.356 Td
 /F1.0 10.5 Tf
-<333137> Tj
+<333230> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3833,7 +3833,7 @@ ET
 BT
 60.24 609.876 Td
 /F1.0 10.5 Tf
-<37372e20546872696674> Tj
+[<37372e20524553> 20.0195 <54>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -3862,7 +3862,7 @@ ET
 BT
 529.4315 609.876 Td
 /F1.0 10.5 Tf
-<333238> Tj
+<333231> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3873,7 +3873,7 @@ ET
 BT
 60.24 591.396 Td
 /F1.0 10.5 Tf
-<37382e20432f432b2b2041706163686520484261736520436c69656e74> Tj
+<37382e20546872696674> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3882,9 +3882,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-213.4261 591.396 Td
+106.5361 591.396 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3902,7 +3902,7 @@ ET
 BT
 529.4315 591.396 Td
 /F1.0 10.5 Tf
-<333239> Tj
+<333332> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3913,7 +3913,7 @@ ET
 BT
 60.24 572.916 Td
 /F1.0 10.5 Tf
-<37392e205573696e67204a6176612044617461204f626a6563747320284a444f292077697468204842617365> Tj
+<37392e20432f432b2b2041706163686520484261736520436c69656e74> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -3922,9 +3922,9 @@ ET
 0.6627 0.6627 0.6627 SCN
 
 BT
-288.2491 572.916 Td
+213.4261 572.916 Td
 /F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202

<TRUNCATED>

[02/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
index c2c24c3..921a5fd 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
index 0331e43..92ed128 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
index 64e4c1b..2228b1d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
index 0f5ee9d..320639c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -243,7 +243,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
index 4c2aa8e..f190acd 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -4111,7 +4111,7 @@ The following provides more details on the included cryptographic software:
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
index 80f75a8..062f47c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -763,7 +763,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
index db3b56e..164407d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
index f499754..7c9555c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -784,7 +784,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
index cb7ef88..37d725a 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
index 267314f..2f3b788 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
index d8f075b..e34c65c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
index f150f5f..f1f0f90 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
index 1f38b76..d3556e0 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
index 97b47c7..a60e821 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
index 8dfae31..0a766bc 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
index 8b53c61..608b378 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
index d909144..85824d9 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
index dfbce92..e0586b4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
index 17219d6..8c64580 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
index e498dec..ce24bf6 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
index 3068d36..154ac34 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -243,7 +243,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
index 2a96166..856aaf5 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -4136,7 +4136,7 @@ built on Jackson JSON processor</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
index 3af2c7a..6d2fcbe 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -763,7 +763,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
index f4647ac..44d3a88 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
index 7042c32..91e89e9 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -784,7 +784,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
index 636e7dd..dde8254 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
index 5175a27..9e22cc0 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
index 849e6ff..0a4fd3b 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
index 7dd6850..cde83e2 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
index 6a52ec2..ac0a222 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
index 98b982a..943c8bb 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
index 7332fed..ec53b5d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
index d08dad6..45bb624 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
index 2f1f9a8..efb9ec3 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
index c31c58c..68c091c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
index 3750788..040bb76 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
index da4a4c0..b8217e8 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/index.html b/hbase-build-configuration/hbase-archetypes/index.html
index 738a7bf..e49fcb6 100644
--- a/hbase-build-configuration/hbase-archetypes/index.html
+++ b/hbase-build-configuration/hbase-archetypes/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -135,7 +135,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/integration.html b/hbase-build-configuration/hbase-archetypes/integration.html
index 74b346c..dab84a2 100644
--- a/hbase-build-configuration/hbase-archetypes/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/issue-tracking.html
index 99e37cb..6911e54 100644
--- a/hbase-build-configuration/hbase-archetypes/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/license.html b/hbase-build-configuration/hbase-archetypes/license.html
index 8820918..645d5b6 100644
--- a/hbase-build-configuration/hbase-archetypes/license.html
+++ b/hbase-build-configuration/hbase-archetypes/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/mail-lists.html b/hbase-build-configuration/hbase-archetypes/mail-lists.html
index 8112a19..b9864b8 100644
--- a/hbase-build-configuration/hbase-archetypes/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/plugin-management.html b/hbase-build-configuration/hbase-archetypes/plugin-management.html
index c9a1b7e..b7527ce 100644
--- a/hbase-build-configuration/hbase-archetypes/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/plugins.html b/hbase-build-configuration/hbase-archetypes/plugins.html
index 7d2d970..4aca3c2 100644
--- a/hbase-build-configuration/hbase-archetypes/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/project-info.html b/hbase-build-configuration/hbase-archetypes/project-info.html
index 3b31503..9f6b114 100644
--- a/hbase-build-configuration/hbase-archetypes/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/project-summary.html b/hbase-build-configuration/hbase-archetypes/project-summary.html
index 619afd3..cfedd6f 100644
--- a/hbase-build-configuration/hbase-archetypes/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/source-repository.html b/hbase-build-configuration/hbase-archetypes/source-repository.html
index 10de76d..19cfc2b 100644
--- a/hbase-build-configuration/hbase-archetypes/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-archetypes/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/team-list.html b/hbase-build-configuration/hbase-archetypes/team-list.html
index 58dcc70..ed3a9b6 100644
--- a/hbase-build-configuration/hbase-archetypes/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/checkstyle.html b/hbase-build-configuration/hbase-spark/checkstyle.html
index d11d592..12b33bb 100644
--- a/hbase-build-configuration/hbase-spark/checkstyle.html
+++ b/hbase-build-configuration/hbase-spark/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -522,7 +522,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependencies.html b/hbase-build-configuration/hbase-spark/dependencies.html
index e92b549..c189285 100644
--- a/hbase-build-configuration/hbase-spark/dependencies.html
+++ b/hbase-build-configuration/hbase-spark/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -5635,7 +5635,7 @@ file comparators, endian transformation classes, and much more.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-convergence.html b/hbase-build-configuration/hbase-spark/dependency-convergence.html
index f8515a9..827ec35 100644
--- a/hbase-build-configuration/hbase-spark/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-spark/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -763,7 +763,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-info.html b/hbase-build-configuration/hbase-spark/dependency-info.html
index 350c637..f45a066 100644
--- a/hbase-build-configuration/hbase-spark/dependency-info.html
+++ b/hbase-build-configuration/hbase-spark/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-management.html b/hbase-build-configuration/hbase-spark/dependency-management.html
index 51a3ac8..a08f6c1 100644
--- a/hbase-build-configuration/hbase-spark/dependency-management.html
+++ b/hbase-build-configuration/hbase-spark/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -784,7 +784,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/index.html b/hbase-build-configuration/hbase-spark/index.html
index 99e93f6..a525cd1 100644
--- a/hbase-build-configuration/hbase-spark/index.html
+++ b/hbase-build-configuration/hbase-spark/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/integration.html b/hbase-build-configuration/hbase-spark/integration.html
index 734b804..1bef639 100644
--- a/hbase-build-configuration/hbase-spark/integration.html
+++ b/hbase-build-configuration/hbase-spark/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/issue-tracking.html b/hbase-build-configuration/hbase-spark/issue-tracking.html
index 09b1feb..861ae2d 100644
--- a/hbase-build-configuration/hbase-spark/issue-tracking.html
+++ b/hbase-build-configuration/hbase-spark/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/license.html b/hbase-build-configuration/hbase-spark/license.html
index fc48ec1..0849fc1 100644
--- a/hbase-build-configuration/hbase-spark/license.html
+++ b/hbase-build-configuration/hbase-spark/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/mail-lists.html b/hbase-build-configuration/hbase-spark/mail-lists.html
index dab1860..7ff2652 100644
--- a/hbase-build-configuration/hbase-spark/mail-lists.html
+++ b/hbase-build-configuration/hbase-spark/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/plugin-management.html b/hbase-build-configuration/hbase-spark/plugin-management.html
index 3b258ed..dc28c14 100644
--- a/hbase-build-configuration/hbase-spark/plugin-management.html
+++ b/hbase-build-configuration/hbase-spark/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/plugins.html b/hbase-build-configuration/hbase-spark/plugins.html
index a90a64d..cfafde2 100644
--- a/hbase-build-configuration/hbase-spark/plugins.html
+++ b/hbase-build-configuration/hbase-spark/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -238,7 +238,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/hbase-build-configuration/hbase-spark/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-info.html b/hbase-build-configuration/hbase-spark/project-info.html
index d3ee4ef..2fee310 100644
--- a/hbase-build-configuration/hbase-spark/project-info.html
+++ b/hbase-build-configuration/hbase-spark/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171103" />
+    <meta name="Date-Revision-yyyymmdd" content="20171104" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-11-04</li>
             </p>
                 </div>
 


[04/21] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/edf5597c/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
index 55ab0c0..27d1f37 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
@@ -44,787 +44,874 @@
 <span class="sourceLineNo">036</span><a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.commons.logging.Log;<a name="line.37"></a>
 <span class="sourceLineNo">038</span>import org.apache.commons.logging.LogFactory;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.Cell;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HConstants;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.MetaTableAccessor.DefaultVisitorBase;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.ServerName;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.TableName;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.Get;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.Put;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Result;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Table;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.net.Address;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.ProtobufMagic;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.security.access.AccessControlLists;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.zookeeper.KeeperException;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>import com.google.protobuf.ServiceException;<a name="line.88"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.conf.Configuration;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.Cell;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HConstants;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor.DefaultVisitorBase;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ServerName;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.TableName;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.Get;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Put;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Result;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.Table;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.master.ServerListener;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.master.TableStateManager;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.net.Address;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.ProtobufMagic;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.protobuf.generated.MultiRowMutationProtos;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.security.access.AccessControlLists;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.zookeeper.KeeperException;<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.88"></a>
 <span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>/**<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * This is an implementation of {@link RSGroupInfoManager} which makes<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * use of an HBase table as the persistence store for the group information.<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * It also makes use of zookeeper to store group information needed<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * for bootstrapping during offline mode.<a name="line.94"></a>
-<span class="sourceLineNo">095</span> *<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;h2&gt;Concurrency&lt;/h2&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * RSGroup state is kept locally in Maps. There is a rsgroup name to cached<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * RSGroupInfo Map at {@link #rsGroupMap} and a Map of tables to the name of the<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * rsgroup they belong too (in {@link #tableMap}). These Maps are persisted to the<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * hbase:rsgroup table (and cached in zk) on each modification.<a name="line.100"></a>
-<span class="sourceLineNo">101</span> *<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * &lt;p&gt;Mutations on state are synchronized but reads can continue without having<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * to wait on an instance monitor, mutations do wholesale replace of the Maps on<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * update -- Copy-On-Write; the local Maps of state are read-only, just-in-case<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * (see flushConfig).<a name="line.105"></a>
-<span class="sourceLineNo">106</span> *<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * &lt;p&gt;Reads must not block else there is a danger we'll deadlock.<a name="line.107"></a>
+<span class="sourceLineNo">090</span>import com.google.protobuf.ServiceException;<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>/**<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * This is an implementation of {@link RSGroupInfoManager} which makes<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * use of an HBase table as the persistence store for the group information.<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * It also makes use of zookeeper to store group information needed<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * for bootstrapping during offline mode.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> *<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;h2&gt;Concurrency&lt;/h2&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * RSGroup state is kept locally in Maps. There is a rsgroup name to cached<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * RSGroupInfo Map at {@link #rsGroupMap} and a Map of tables to the name of the<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * rsgroup they belong too (in {@link #tableMap}). These Maps are persisted to the<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * hbase:rsgroup table (and cached in zk) on each modification.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> *<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * &lt;p&gt;Mutations on state are synchronized but reads can continue without having<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * to wait on an instance monitor, mutations do wholesale replace of the Maps on<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * update -- Copy-On-Write; the local Maps of state are read-only, just-in-case<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * (see flushConfig).<a name="line.107"></a>
 <span class="sourceLineNo">108</span> *<a name="line.108"></a>
-<span class="sourceLineNo">109</span> * &lt;p&gt;Clients of this class, the {@link RSGroupAdminEndpoint} for example, want to query and<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * then act on the results of the query modifying cache in zookeeper without another thread<a name="line.110"></a>
-<span class="sourceLineNo">111</span> * making intermediate modifications. These clients synchronize on the 'this' instance so<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * no other has access concurrently. Reads must be able to continue concurrently.<a name="line.112"></a>
-<span class="sourceLineNo">113</span> */<a name="line.113"></a>
-<span class="sourceLineNo">114</span>@InterfaceAudience.Private<a name="line.114"></a>
-<span class="sourceLineNo">115</span>class RSGroupInfoManagerImpl implements RSGroupInfoManager {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private static final Log LOG = LogFactory.getLog(RSGroupInfoManagerImpl.class);<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  /** Table descriptor for &lt;code&gt;hbase:rsgroup&lt;/code&gt; catalog table */<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  private final static HTableDescriptor RSGROUP_TABLE_DESC;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  static {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    RSGROUP_TABLE_DESC = new HTableDescriptor(RSGROUP_TABLE_NAME);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    RSGROUP_TABLE_DESC.addFamily(new HColumnDescriptor(META_FAMILY_BYTES));<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    RSGROUP_TABLE_DESC.setRegionSplitPolicyClassName(DisabledRegionSplitPolicy.class.getName());<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    try {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      RSGROUP_TABLE_DESC.addCoprocessor(<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        MultiRowMutationEndpoint.class.getName(),<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          null, Coprocessor.PRIORITY_SYSTEM, null);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    } catch (IOException ex) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      throw new RuntimeException(ex);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  // There two Maps are immutable and wholesale replaced on each modification<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  // so are safe to access concurrently. See class comment.<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  private volatile Map&lt;String, RSGroupInfo&gt; rsGroupMap = Collections.emptyMap();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>  private volatile Map&lt;TableName, String&gt; tableMap = Collections.emptyMap();<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private final MasterServices masterServices;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  private Table rsGroupTable;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  private final ClusterConnection conn;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  private final ZooKeeperWatcher watcher;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  private final RSGroupStartupWorker rsGroupStartupWorker = new RSGroupStartupWorker();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  // contains list of groups that were last flushed to persistent store<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private Set&lt;String&gt; prevRSGroups = new HashSet&lt;&gt;();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private final ServerEventsListenerThread serverEventsListenerThread =<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      new ServerEventsListenerThread();<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>  private RSGroupInfoManagerImpl(MasterServices masterServices) throws IOException {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    this.masterServices = masterServices;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    this.watcher = masterServices.getZooKeeper();<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    this.conn = masterServices.getClusterConnection();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private synchronized void init() throws IOException{<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    refresh();<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    rsGroupStartupWorker.start();<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    serverEventsListenerThread.start();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    masterServices.getServerManager().registerListener(serverEventsListenerThread);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  }<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  static RSGroupInfoManager getInstance(MasterServices master) throws IOException {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    RSGroupInfoManagerImpl instance = new RSGroupInfoManagerImpl(master);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    instance.init();<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    return instance;<a name="line.164"></a>
+<span class="sourceLineNo">109</span> * &lt;p&gt;Reads must not block else there is a danger we'll deadlock.<a name="line.109"></a>
+<span class="sourceLineNo">110</span> *<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * &lt;p&gt;Clients of this class, the {@link RSGroupAdminEndpoint} for example, want to query and<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * then act on the results of the query modifying cache in zookeeper without another thread<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * making intermediate modifications. These clients synchronize on the 'this' instance so<a name="line.113"></a>
+<span class="sourceLineNo">114</span> * no other has access concurrently. Reads must be able to continue concurrently.<a name="line.114"></a>
+<span class="sourceLineNo">115</span> */<a name="line.115"></a>
+<span class="sourceLineNo">116</span>@InterfaceAudience.Private<a name="line.116"></a>
+<span class="sourceLineNo">117</span>class RSGroupInfoManagerImpl implements RSGroupInfoManager {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private static final Log LOG = LogFactory.getLog(RSGroupInfoManagerImpl.class);<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  /** Table descriptor for &lt;code&gt;hbase:rsgroup&lt;/code&gt; catalog table */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  private final static HTableDescriptor RSGROUP_TABLE_DESC;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  static {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    RSGROUP_TABLE_DESC = new HTableDescriptor(RSGROUP_TABLE_NAME);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    RSGROUP_TABLE_DESC.addFamily(new HColumnDescriptor(META_FAMILY_BYTES));<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    RSGROUP_TABLE_DESC.setRegionSplitPolicyClassName(DisabledRegionSplitPolicy.class.getName());<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    try {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      RSGROUP_TABLE_DESC.addCoprocessor(<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        MultiRowMutationEndpoint.class.getName(),<a name="line.128"></a>
+<span class="sourceLineNo">129</span>          null, Coprocessor.PRIORITY_SYSTEM, null);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    } catch (IOException ex) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      throw new RuntimeException(ex);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>  // There two Maps are immutable and wholesale replaced on each modification<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // so are safe to access concurrently. See class comment.<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  private volatile Map&lt;String, RSGroupInfo&gt; rsGroupMap = Collections.emptyMap();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  private volatile Map&lt;TableName, String&gt; tableMap = Collections.emptyMap();<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>  private final MasterServices masterServices;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  private Table rsGroupTable;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private final ClusterConnection conn;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  private final ZooKeeperWatcher watcher;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  private final RSGroupStartupWorker rsGroupStartupWorker = new RSGroupStartupWorker();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  // contains list of groups that were last flushed to persistent store<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  private Set&lt;String&gt; prevRSGroups = new HashSet&lt;&gt;();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final ServerEventsListenerThread serverEventsListenerThread =<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      new ServerEventsListenerThread();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  private FailedOpenUpdaterThread failedOpenUpdaterThread;<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private RSGroupInfoManagerImpl(MasterServices masterServices) throws IOException {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    this.masterServices = masterServices;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    this.watcher = masterServices.getZooKeeper();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    this.conn = masterServices.getClusterConnection();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private synchronized void init() throws IOException{<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    refresh();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    rsGroupStartupWorker.start();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    serverEventsListenerThread.start();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    masterServices.getServerManager().registerListener(serverEventsListenerThread);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    failedOpenUpdaterThread = new FailedOpenUpdaterThread(masterServices.getConfiguration());<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    failedOpenUpdaterThread.start();<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    masterServices.getServerManager().registerListener(failedOpenUpdaterThread);<a name="line.164"></a>
 <span class="sourceLineNo">165</span>  }<a name="line.165"></a>
 <span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  @Override<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  public synchronized void addRSGroup(RSGroupInfo rsGroupInfo) throws IOException {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    checkGroupName(rsGroupInfo.getName());<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    if (rsGroupMap.get(rsGroupInfo.getName()) != null ||<a name="line.170"></a>
-<span class="sourceLineNo">171</span>        rsGroupInfo.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      throw new DoNotRetryIOException("Group already exists: "+ rsGroupInfo.getName());<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    newGroupMap.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    flushConfig(newGroupMap);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private RSGroupInfo getRSGroupInfo(final String groupName) throws DoNotRetryIOException {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    RSGroupInfo rsGroupInfo = getRSGroup(groupName);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    if (rsGroupInfo == null) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      throw new DoNotRetryIOException("RSGroup " + groupName + " does not exist");<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    return rsGroupInfo;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  }<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>  @Override<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public synchronized Set&lt;Address&gt; moveServers(Set&lt;Address&gt; servers, String srcGroup,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      String dstGroup) throws IOException {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    RSGroupInfo src = getRSGroupInfo(srcGroup);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    RSGroupInfo dst = getRSGroupInfo(dstGroup);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    // If destination is 'default' rsgroup, only add servers that are online. If not online, drop<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    // it. If not 'default' group, add server to 'dst' rsgroup EVEN IF IT IS NOT online (could be a<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    // rsgroup of dead servers that are to come back later).<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    Set&lt;Address&gt; onlineServers = dst.getName().equals(RSGroupInfo.DEFAULT_GROUP)?<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        Utility.getOnlineServers(this.masterServices): null;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    for (Address el: servers) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      src.removeServer(el);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      if (onlineServers != null) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        if (!onlineServers.contains(el)) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          if (LOG.isDebugEnabled()) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>            LOG.debug("Dropping " + el + " during move-to-default rsgroup because not online");<a name="line.202"></a>
-<span class="sourceLineNo">203</span>          }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>          continue;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      dst.addServer(el);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    newGroupMap.put(src.getName(), src);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    newGroupMap.put(dst.getName(), dst);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    flushConfig(newGroupMap);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    return dst.getServers();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>  @Override<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  public RSGroupInfo getRSGroupOfServer(Address serverHostPort) throws IOException {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    for (RSGroupInfo info: rsGroupMap.values()) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      if (info.containsServer(serverHostPort)) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        return info;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    return null;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  @Override<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public RSGroupInfo getRSGroup(String groupName) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    return rsGroupMap.get(groupName);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  @Override<a name="line.231"></a>
-<span class="sourceLineNo">232</span>  public String getRSGroupOfTable(TableName tableName) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    return tableMap.get(tableName);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>  @Override<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  public synchronized void moveTables(Set&lt;TableName&gt; tableNames, String groupName)<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    if (groupName != null &amp;&amp; !rsGroupMap.containsKey(groupName)) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      throw new DoNotRetryIOException("Group "+groupName+" does not exist or is a special group");<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    for(TableName tableName: tableNames) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      if (tableMap.containsKey(tableName)) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        RSGroupInfo src = new RSGroupInfo(newGroupMap.get(tableMap.get(tableName)));<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        src.removeTable(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        newGroupMap.put(src.getName(), src);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      if(groupName != null) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        RSGroupInfo dst = new RSGroupInfo(newGroupMap.get(groupName));<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        dst.addTable(tableName);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        newGroupMap.put(dst.getName(), dst);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      }<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    flushConfig(newGroupMap);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>  }<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span>  @Override<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  public synchronized void removeRSGroup(String groupName) throws IOException {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    if (!rsGroupMap.containsKey(groupName) || groupName.equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      throw new DoNotRetryIOException("Group " + groupName + " does not exist or is a reserved "<a name="line.262"></a>
-<span class="sourceLineNo">263</span>          + "group");<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    newGroupMap.remove(groupName);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    flushConfig(newGroupMap);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>  @Override<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  public List&lt;RSGroupInfo&gt; listRSGroups() {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    return Lists.newLinkedList(rsGroupMap.values());<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  }<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>  public boolean isOnline() {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    return rsGroupStartupWorker.isOnline();<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  @Override<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  public void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>                                   String srcGroup, String dstGroup) throws IOException {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //get server's group<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    RSGroupInfo srcGroupInfo = getRSGroupInfo(srcGroup);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    RSGroupInfo dstGroupInfo = getRSGroupInfo(dstGroup);<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    //move servers<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    for (Address el: servers) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      srcGroupInfo.removeServer(el);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      dstGroupInfo.addServer(el);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    //move tables<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    for(TableName tableName: tables) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      srcGroupInfo.removeTable(tableName);<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      dstGroupInfo.addTable(tableName);<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    }<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>    //flush changed groupinfo<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    newGroupMap.put(srcGroupInfo.getName(), srcGroupInfo);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    newGroupMap.put(dstGroupInfo.getName(), dstGroupInfo);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    flushConfig(newGroupMap);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.308"></a>
-<span class="sourceLineNo">309</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    }<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    return rsGroupInfoList;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    //Overwrite any info stored by table, this takes precedence<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    try {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          byte[] data = ZKUtil.getData(watcher, ZKUtil.joinZNode(groupBasePath, znode));<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          if(data.length &gt; 0) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.327"></a>
-<span class="sourceLineNo">328</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.328"></a>
-<span class="sourceLineNo">329</span>          }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      }<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    return RSGroupInfoList;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  public void refresh() throws IOException {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    refresh(false);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span>  /**<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   * Update zk cache. Called on startup of the manager.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   */<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    // if online read from GROUP table<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    if (forceOnline || isOnline()) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      LOG.debug("Refreshing in Online mode.");<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      if (rsGroupTable == null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    } else {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>    // refresh default group, prune<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.367"></a>
+<span class="sourceLineNo">167</span>  static RSGroupInfoManager getInstance(MasterServices master) throws IOException {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    RSGroupInfoManagerImpl instance = new RSGroupInfoManagerImpl(master);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    instance.init();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    return instance;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  @Override<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public synchronized void addRSGroup(RSGroupInfo rsGroupInfo) throws IOException {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    checkGroupName(rsGroupInfo.getName());<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    if (rsGroupMap.get(rsGroupInfo.getName()) != null ||<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        rsGroupInfo.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      throw new DoNotRetryIOException("Group already exists: "+ rsGroupInfo.getName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    newGroupMap.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    flushConfig(newGroupMap);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  private RSGroupInfo getRSGroupInfo(final String groupName) throws DoNotRetryIOException {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    RSGroupInfo rsGroupInfo = getRSGroup(groupName);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    if (rsGroupInfo == null) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      throw new DoNotRetryIOException("RSGroup " + groupName + " does not exist");<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    return rsGroupInfo;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>  }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>  @Override<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public synchronized Set&lt;Address&gt; moveServers(Set&lt;Address&gt; servers, String srcGroup,<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      String dstGroup) throws IOException {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    RSGroupInfo src = getRSGroupInfo(srcGroup);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    RSGroupInfo dst = getRSGroupInfo(dstGroup);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // If destination is 'default' rsgroup, only add servers that are online. If not online, drop<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // it. If not 'default' group, add server to 'dst' rsgroup EVEN IF IT IS NOT online (could be a<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    // rsgroup of dead servers that are to come back later).<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    Set&lt;Address&gt; onlineServers = dst.getName().equals(RSGroupInfo.DEFAULT_GROUP)?<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        Utility.getOnlineServers(this.masterServices): null;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    for (Address el: servers) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      src.removeServer(el);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      if (onlineServers != null) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (!onlineServers.contains(el)) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          if (LOG.isDebugEnabled()) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>            LOG.debug("Dropping " + el + " during move-to-default rsgroup because not online");<a name="line.208"></a>
+<span class="sourceLineNo">209</span>          }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>          continue;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      dst.addServer(el);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    newGroupMap.put(src.getName(), src);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    newGroupMap.put(dst.getName(), dst);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    flushConfig(newGroupMap);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    return dst.getServers();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  @Override<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  public RSGroupInfo getRSGroupOfServer(Address serverHostPort) throws IOException {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    for (RSGroupInfo info: rsGroupMap.values()) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      if (info.containsServer(serverHostPort)) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        return info;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    return null;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public RSGroupInfo getRSGroup(String groupName) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    return rsGroupMap.get(groupName);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  public String getRSGroupOfTable(TableName tableName) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    return tableMap.get(tableName);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>  @Override<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  public synchronized void moveTables(Set&lt;TableName&gt; tableNames, String groupName)<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      throws IOException {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    if (groupName != null &amp;&amp; !rsGroupMap.containsKey(groupName)) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      throw new DoNotRetryIOException("Group "+groupName+" does not exist or is a special group");<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    for(TableName tableName: tableNames) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      if (tableMap.containsKey(tableName)) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        RSGroupInfo src = new RSGroupInfo(newGroupMap.get(tableMap.get(tableName)));<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        src.removeTable(tableName);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        newGroupMap.put(src.getName(), src);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      if(groupName != null) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        RSGroupInfo dst = new RSGroupInfo(newGroupMap.get(groupName));<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        dst.addTable(tableName);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        newGroupMap.put(dst.getName(), dst);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    flushConfig(newGroupMap);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  public synchronized void removeRSGroup(String groupName) throws IOException {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    if (!rsGroupMap.containsKey(groupName) || groupName.equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      throw new DoNotRetryIOException("Group " + groupName + " does not exist or is a reserved "<a name="line.268"></a>
+<span class="sourceLineNo">269</span>          + "group");<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    newGroupMap.remove(groupName);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    flushConfig(newGroupMap);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>  public List&lt;RSGroupInfo&gt; listRSGroups() {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return Lists.newLinkedList(rsGroupMap.values());<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public boolean isOnline() {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    return rsGroupStartupWorker.isOnline();<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  public void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                   String srcGroup, String dstGroup) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    //get server's group<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    RSGroupInfo srcGroupInfo = getRSGroupInfo(srcGroup);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    RSGroupInfo dstGroupInfo = getRSGroupInfo(dstGroup);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    //move servers<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    for (Address el: servers) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      srcGroupInfo.removeServer(el);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      dstGroupInfo.addServer(el);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    //move tables<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    for(TableName tableName: tables) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      srcGroupInfo.removeTable(tableName);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      dstGroupInfo.addTable(tableName);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    //flush changed groupinfo<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    Map&lt;String,RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    newGroupMap.put(srcGroupInfo.getName(), srcGroupInfo);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    newGroupMap.put(dstGroupInfo.getName(), dstGroupInfo);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    flushConfig(newGroupMap);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.314"></a>
+<span class="sourceLineNo">315</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    return rsGroupInfoList;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    //Overwrite any info stored by table, this takes precedence<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    try {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          byte[] data = ZKUtil.getData(watcher, ZKUtil.joinZNode(groupBasePath, znode));<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          if(data.length &gt; 0) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.334"></a>
+<span class="sourceLineNo">335</span>          }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return RSGroupInfoList;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public void refresh() throws IOException {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    refresh(false);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  /**<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   * Update zk cache. Called on startup of the manager.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   */<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    // if online read from GROUP table<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    if (forceOnline || isOnline()) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      LOG.debug("Refreshing in Online mode.");<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      if (rsGroupTable == null) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    } else {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.367"></a>
 <span class="sourceLineNo">368</span>    }<a name="line.368"></a>
 <span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    final List&lt;TableName&gt; specialTables;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    if(!masterServices.isInitialized()) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.372"></a>
-<span class="sourceLineNo">373</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    } else {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      specialTables =<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>    for (TableName table : specialTables) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      orphanTables.add(table);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    }<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    for (RSGroupInfo group: groupList) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        orphanTables.removeAll(group.getTables());<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    // from region group table or zk<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        orphanTables));<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>    // populate the data<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    for (RSGroupInfo group : groupList) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      newGroupMap.put(group.getName(), group);<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      for(TableName table: group.getTables()) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        newTableMap.put(table, group.getName());<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      throws IOException {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>    // populate deletes<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    for(String groupName : prevRSGroups) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      if(!groupMap.containsKey(groupName)) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        mutations.add(d);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>    // populate puts<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      mutations.add(p);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>    if(mutations.size() &gt; 0) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      multiMutate(mutations);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return newTableMap;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
+<span class="sourceLineNo">370</span>    // refresh default group, prune<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>    final List&lt;TableName&gt; specialTables;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    if(!masterServices.isInitialized()) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.378"></a>
+<span class="sourceLineNo">379</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    } else {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      specialTables =<a name="line.381"></a>
+<span class="sourceLineNo">382</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>    for (TableName table : specialTables) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      orphanTables.add(table);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    for (RSGroupInfo group: groupList) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        orphanTables.removeAll(group.getTables());<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    // from region group table or zk<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        orphanTables));<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>    // populate the data<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    for (RSGroupInfo group : groupList) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      newGroupMap.put(group.getName(), group);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      for(TableName table: group.getTables()) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        newTableMap.put(table, group.getName());<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    }<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      throws IOException {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>    // populate deletes<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    for(String groupName : prevRSGroups) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      if(!groupMap.containsKey(groupName)) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        mutations.add(d);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    // populate puts<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      mutations.add(p);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  private synchronized void flushConfig()<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  throws IOException {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    flushConfig(this.rsGroupMap);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  throws IOException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    // For offline mode persistence is still unavailable<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    // We're refreshing in-memory state but only for default servers<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    if (!isOnline()) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      if (!m.equals(newGroupMap) ||<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      rsGroupMap = newGroupMap;<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      return;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>    // Make changes visible after having been persisted to the source of truth<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>    try {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      String groupBasePath = ZKUtil.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      for(String groupName : prevRSGroups) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          String znode = ZKUtil.joinZNode(groupBasePath, groupName);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        String znode = ZKUtil.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        LOG.debug("Updating znode: "+znode);<a name="line.481"></a>
-<span class="sourceLineNo">482</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.482"></a>
-<span class="sourceLineNo">483</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.483"></a>
-<span class="sourceLineNo">484</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    } catch (KeeperException e) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.495"></a>
-<span class="sourceLineNo">496</span>  }<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>  /**<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * Make changes visible.<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * Caller must be synchronized on 'this'.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   */<a name="line.501"></a>
-<span class="sourceLineNo">502</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    // Make maps Immutable.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
-<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>  /**<a name="line.509"></a>
-<span class="sourceLineNo">510</span>   * Update cache of rsgroups.<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * Caller must be synchronized on 'this'.<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * @param currentGroups Current list of Groups.<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   */<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  private vo

<TRUNCATED>