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 2019/08/30 14:42:10 UTC

[hbase-site] branch asf-site updated: Published site at 090c55f3ff40dea807dc7e67240f19dcafb3865f.

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hbase-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 8ffd0c1  Published site at 090c55f3ff40dea807dc7e67240f19dcafb3865f.
8ffd0c1 is described below

commit 8ffd0c1bba4cdd28f4ee8553779bf52c3b6d3d5a
Author: jenkins <bu...@apache.org>
AuthorDate: Fri Aug 30 14:41:55 2019 +0000

    Published site at 090c55f3ff40dea807dc7e67240f19dcafb3865f.
---
 acid-semantics.html                                |    2 +-
 apache_hbase_reference_guide.pdf                   |    4 +-
 book.html                                          |    2 +-
 bulk-loads.html                                    |    2 +-
 checkstyle-aggregate.html                          |   78 +-
 coc.html                                           |    2 +-
 dependencies.html                                  |    2 +-
 dependency-convergence.html                        |    2 +-
 dependency-info.html                               |    2 +-
 dependency-management.html                         |    2 +-
 devapidocs/constant-values.html                    |    4 +-
 devapidocs/index-all.html                          |   44 -
 .../apache/hadoop/hbase/backup/package-tree.html   |    4 +-
 .../apache/hadoop/hbase/class-use/ServerName.html  |    8 -
 .../apache/hadoop/hbase/client/package-tree.html   |   22 +-
 .../hadoop/hbase/coprocessor/package-tree.html     |    2 +-
 .../apache/hadoop/hbase/filter/package-tree.html   |    8 +-
 .../org/apache/hadoop/hbase/http/package-tree.html |    2 +-
 .../apache/hadoop/hbase/io/hfile/package-tree.html |    4 +-
 .../org/apache/hadoop/hbase/ipc/package-tree.html  |    2 +-
 .../hadoop/hbase/mapreduce/package-tree.html       |    2 +-
 .../hadoop/hbase/master/MasterRpcServices.html     |  186 +-
 .../apache/hadoop/hbase/master/ServerListener.html |    2 +-
 ...plitTableRegionProcedure.StoreFileSplitter.html |   12 +-
 .../assignment/SplitTableRegionProcedure.html      |  158 +-
 .../hbase/master/class-use/ServerListener.html     |    4 -
 .../apache/hadoop/hbase/master/package-tree.html   |    6 +-
 .../master/procedure/CloneSnapshotProcedure.html   |  100 +-
 .../master/procedure/EnableTableProcedure.html     |   94 +-
 .../master/procedure/RestoreSnapshotProcedure.html |  100 +-
 .../hbase/master/procedure/package-tree.html       |    2 +-
 .../org/apache/hadoop/hbase/package-tree.html      |   18 +-
 .../hadoop/hbase/procedure2/package-tree.html      |    4 +-
 .../apache/hadoop/hbase/quotas/package-tree.html   |    8 +-
 .../hadoop/hbase/regionserver/package-tree.html    |   18 +-
 .../regionserver/querymatcher/package-tree.html    |    2 +-
 .../hbase/regionserver/wal/package-tree.html       |    6 +-
 .../hadoop/hbase/rest/model/package-tree.html      |    2 +-
 ...oupInfoManagerImpl.FailedOpenUpdaterThread.html |  436 ---
 ...SGroupInfoManagerImpl.RSGroupStartupWorker.html |   20 +-
 ...InfoManagerImpl.ServerEventsListenerThread.html |   16 +-
 .../hbase/rsgroup/RSGroupInfoManagerImpl.html      |  142 +-
 ...oupInfoManagerImpl.FailedOpenUpdaterThread.html |  165 -
 .../hadoop/hbase/rsgroup/package-summary.html      |    4 +-
 .../apache/hadoop/hbase/rsgroup/package-tree.html  |    1 -
 .../apache/hadoop/hbase/rsgroup/package-use.html   |    5 +-
 .../hadoop/hbase/security/access/package-tree.html |    6 +-
 .../apache/hadoop/hbase/security/package-tree.html |    2 +-
 .../apache/hadoop/hbase/thrift/package-tree.html   |    2 +-
 .../org/apache/hadoop/hbase/util/package-tree.html |   10 +-
 devapidocs/overview-tree.html                      |    1 -
 .../src-html/org/apache/hadoop/hbase/Version.html  |    4 +-
 .../MasterRpcServices.BalanceSwitchMode.html       | 3888 ++++++++++----------
 .../hadoop/hbase/master/MasterRpcServices.html     | 3888 ++++++++++----------
 .../RegionStateStore.RegionStateVisitor.html       |    8 +-
 .../hbase/master/assignment/RegionStateStore.html  |    8 +-
 ...plitTableRegionProcedure.StoreFileSplitter.html | 1605 ++++----
 .../assignment/SplitTableRegionProcedure.html      | 1605 ++++----
 .../master/procedure/CloneSnapshotProcedure.html   |  877 +++--
 .../master/procedure/EnableTableProcedure.html     |  718 ++--
 .../master/procedure/RestoreSnapshotProcedure.html |  944 +++--
 ...oupInfoManagerImpl.FailedOpenUpdaterThread.html |  961 -----
 ...SGroupInfoManagerImpl.RSGroupStartupWorker.html | 1636 ++++----
 ...InfoManagerImpl.ServerEventsListenerThread.html | 1636 ++++----
 .../hbase/rsgroup/RSGroupInfoManagerImpl.html      | 1636 ++++----
 downloads.html                                     |    2 +-
 export_control.html                                |    2 +-
 index.html                                         |    2 +-
 issue-tracking.html                                |    2 +-
 mail-lists.html                                    |    2 +-
 metrics.html                                       |    2 +-
 old_news.html                                      |    2 +-
 plugin-management.html                             |    2 +-
 plugins.html                                       |    2 +-
 poweredbyhbase.html                                |    2 +-
 project-info.html                                  |    2 +-
 project-reports.html                               |    2 +-
 project-summary.html                               |    2 +-
 pseudo-distributed.html                            |    2 +-
 replication.html                                   |    2 +-
 resources.html                                     |    2 +-
 source-repository.html                             |    2 +-
 sponsors.html                                      |    2 +-
 supportingprojects.html                            |    2 +-
 team-list.html                                     |    2 +-
 testdevapidocs/index-all.html                      |    2 +
 .../org/apache/hadoop/hbase/TestSplitMerge.html    |   36 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |    2 +-
 .../org/apache/hadoop/hbase/client/TestAdmin1.html |   36 +-
 .../hbase/client/TestAsyncRegionAdminApi2.html     |   22 +-
 .../apache/hadoop/hbase/io/hfile/package-tree.html |    2 +-
 .../org/apache/hadoop/hbase/package-tree.html      |    8 +-
 .../hadoop/hbase/procedure/package-tree.html       |    8 +-
 .../hadoop/hbase/procedure2/package-tree.html      |    4 +-
 .../hadoop/hbase/regionserver/package-tree.html    |    6 +-
 .../org/apache/hadoop/hbase/test/package-tree.html |    4 +-
 .../org/apache/hadoop/hbase/wal/package-tree.html  |    2 +-
 .../org/apache/hadoop/hbase/TestSplitMerge.html    |  219 +-
 .../org/apache/hadoop/hbase/client/TestAdmin1.html | 1194 +++---
 .../hbase/client/TestAsyncRegionAdminApi2.html     |  481 ++-
 100 files changed, 10561 insertions(+), 12651 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index fed99e4..b781ba7 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -450,7 +450,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-28</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-30</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 9f534ed..47dbe47 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20190828143931+00'00')
-/CreationDate (D:20190828143931+00'00')
+/ModDate (D:20190830143900+00'00')
+/CreationDate (D:20190830143900+00'00')
 >>
 endobj
 2 0 obj
diff --git a/book.html b/book.html
index 7582318..c16c3d4 100644
--- a/book.html
+++ b/book.html
@@ -43080,7 +43080,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2019-08-28 14:30:34 UTC
+Last updated 2019-08-30 14:29:44 UTC
 </div>
 </div>
 </body>
diff --git a/bulk-loads.html b/bulk-loads.html
index 242d58d..be3be2b 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -155,7 +155,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-28</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-30</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 8921e43..30cb34f 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -20858,19 +20858,19 @@
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>54</td></tr>
+<td>53</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 104).</td>
-<td>226</td></tr>
+<td>215</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'splitTest' has incorrect indentation level 2, expected level should be 4.</td>
-<td>230</td></tr></table></div>
+<td>219</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.TestAsyncTableAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java</h3>
 <table border="0" class="table table-striped">
@@ -47285,55 +47285,55 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>1030</td></tr>
+<td>1026</td></tr>
 <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>1057</td></tr>
+<td>1053</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>1059</td></tr>
+<td>1055</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>1098</td></tr>
+<td>1094</td></tr>
 <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>1203</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>1445</td></tr>
+<td>1441</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>1684</td></tr>
+<td>1680</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>1745</td></tr>
+<td>1741</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 102).</td>
-<td>2275</td></tr></table></div>
+<td>2271</td></tr></table></div>
 <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">
@@ -49373,25 +49373,25 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>175</td></tr>
+<td>174</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 106).</td>
-<td>180</td></tr>
+<td>179</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>182</td></tr>
+<td>181</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 102).</td>
-<td>199</td></tr></table></div>
+<td>198</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.assignment.TestAssignmentOnRSCrash.java">org/apache/hadoop/hbase/master/assignment/TestAssignmentOnRSCrash.java</h3>
 <table border="0" class="table table-striped">
@@ -51989,49 +51989,49 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>334</td></tr>
+<td>330</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>346</td></tr>
+<td>342</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>347</td></tr>
+<td>343</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>374</td></tr>
+<td>370</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>375</td></tr>
+<td>371</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>390</td></tr>
+<td>386</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>451</td></tr>
+<td>447</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>509</td></tr></table></div>
+<td>505</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.EnableTableProcedure.java">org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java</h3>
 <table border="0" class="table table-striped">
@@ -52046,55 +52046,55 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>303</td></tr>
+<td>299</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>341</td></tr>
+<td>337</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>342</td></tr>
+<td>338</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>353</td></tr>
+<td>349</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>368</td></tr>
+<td>364</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>384</td></tr>
+<td>380</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>385</td></tr>
+<td>381</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>408</td></tr>
+<td>392</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>409</td></tr></table></div>
+<td>393</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv.java">org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java</h3>
 <table border="0" class="table table-striped">
@@ -52415,31 +52415,31 @@
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>90</td></tr>
+<td>88</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>98</td></tr>
+<td>96</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>105</td></tr>
+<td>103</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>275</td></tr>
+<td>271</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>332</td></tr></table></div>
+<td>328</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure.java">org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java</h3>
 <table border="0" class="table table-striped">
@@ -92813,7 +92813,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-28</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-30</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/coc.html b/coc.html
index 5ad4de6..2e18c28 100644
--- a/coc.html
+++ b/coc.html
@@ -224,7 +224,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-28</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-30</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependencies.html b/dependencies.html
index 92ea352..ffa2b7a 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -296,7 +296,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-28</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-30</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index ed591d0..952438f 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -535,7 +535,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-28</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-30</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-info.html b/dependency-info.html
index 8418e1f..99cb8aa 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -177,7 +177,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-28</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-30</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-management.html b/dependency-management.html
index 5540d58..f9e4bec 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -893,7 +893,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-28</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-08-30</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index c28472b..ab6dfe6 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -4006,14 +4006,14 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://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>"Wed Aug 28 14:35:58 UTC 2019"</code></td>
+<td class="colLast"><code>"Fri Aug 30 14:35:14 UTC 2019"</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="https://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>"56980fb097494af05805db09b1c2f442d139da81"</code></td>
+<td class="colLast"><code>"090c55f3ff40dea807dc7e67240f19dcafb3865f"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index f1fb709..1fdbe7e 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -30302,10 +30302,6 @@
 <dd>
 <div class="block">Returns whether or not a server exception was generated in the prior RPC invocation.</div>
 </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><a href="org/apache/hadoop/hbase/procedure2/FailedProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">FailedProcedure</span></a>&lt;<a href="org/apache/hadoop/hbase/procedure2/FailedProcedure.html" title="type parameter in FailedProcedure">TEnvironment</a>&gt; - Class in <a href="org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/FailedProcedure.html#FailedProcedure--">FailedProcedure()</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/FailedProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">FailedProcedure</a></dt>
@@ -55024,8 +55020,6 @@
 <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/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>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/MasterMaintenanceModeTracker.html#hasChildren">hasChildren</a></span> - Variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/MasterMaintenanceModeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterMaintenanceModeTracker</a></dt>
@@ -65012,22 +65006,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#isTopReference--">isTopReference()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreFileInfo.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileInfo</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#isTraceEnabled--">isTraceEnabled()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">SplitTableRegionProcedure</a></dt>
-<dd>
-<div class="block">The procedure could be restarted from a different machine.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#isTraceEnabled--">isTraceEnabled()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CloneSnapshotProcedure</a></dt>
-<dd>
-<div class="block">The procedure could be restarted from a different machine.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#isTraceEnabled--">isTraceEnabled()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">EnableTableProcedure</a></dt>
-<dd>
-<div class="block">The procedure could be restarted from a different machine.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#isTraceEnabled--">isTraceEnabled()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
-<dd>
-<div class="block">The procedure could be restarted from a different machine.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ScannerContext.html#isTrackingMetrics--">isTrackingMetrics()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#isTunerOn--">isTunerOn()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></dt>
@@ -97302,8 +97280,6 @@ 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>
@@ -97754,8 +97730,6 @@ service.</div>
 <dd>
 <div class="block">Runs the REST server.</div>
 </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>
@@ -100219,8 +100193,6 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/SplitWALManager.SplitWorkerAssigner.html#serverAdded-org.apache.hadoop.hbase.ServerName-">serverAdded(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/SplitWALManager.SplitWorkerAssigner.html" title="class in org.apache.hadoop.hbase.master">SplitWALManager.SplitWorkerAssigner</a></dt>
 <dd>&nbsp;</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>
@@ -100238,8 +100210,6 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/ServerCall.html#ServerCall-int-org.apache.hbase.thirdparty.com.google.protobuf.BlockingService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hadoop.hbase.CellScanner-T-long-java.net.InetAddress-long-int-org.apache.hadoop.hbase.io.ByteBuffAllocator-or [...]
 <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>
@@ -100513,8 +100483,6 @@ 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/client/AsyncBatchRpcRetryingCaller.ServerRequest.html#ServerRequest--">ServerRequest()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncBatchRpcRetryingCaller.ServerRequest.html" title="class in org.apache.hadoop.hbase.client">AsyncBatchRpcRetryingCaller.ServerRequest</a></dt>
@@ -116445,14 +116413,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html#tracedWriteRequest-org.apache.hadoop.hbase.ipc.Call-">tracedWriteRequest(Call)</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/BlockingRpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">BlockingRpcConnection</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#traceEnabled">traceEnabled</a></span> - Variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">SplitTableRegionProcedure</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#traceEnabled">traceEnabled</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CloneSnapshotProcedure</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#traceEnabled">traceEnabled</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">EnableTableProcedure</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#traceEnabled">traceEnabled</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/trace/TraceUtil.html#tracer">tracer</a></span> - Static variable in class org.apache.hadoop.hbase.trace.<a href="org/apache/hadoop/hbase/trace/TraceUtil.html" title="class in org.apache.hadoop.hbase.trace">TraceUtil</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/trace/TraceUtil.html" title="class in org.apache.hadoop.hbase.trace"><span class="typeNameLink">TraceUtil</span></a> - Class in <a href="org/apache/hadoop/hbase/trace/package-summary.html">org.apache.hadoop.hbase.trace</a></dt>
@@ -118266,8 +118226,6 @@ 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/AsyncRegionServerAdmin.html#updateFavoredNodes-org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateFavoredNodesRequest-">updateFavoredNodes(AdminProtos.UpdateFavoredNodesRequest)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncRegionServerAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncRegionServerAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/favored/FavoredNodesManager.html#updateFavoredNodes-java.util.Map-">updateFavoredNodes(Map&lt;RegionInfo, List&lt;ServerName&gt;&gt;)</a></span> - Method in class org.apache.hadoop.hbase.favored.<a href="org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a></dt>
@@ -122060,8 +122018,6 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#waitInterval">waitInterval</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</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#waitMetaAssigned-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.client.RegionInfo-">waitMetaAssigned(Procedure&lt;?&gt;, 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>
 <dd>
 <div class="block">Notice that this event does not mean the AM has already finished region state rebuilding.</div>
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index 0010d9e..54e5ea1 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<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/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/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>
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
index d48201d..64d8c27 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
@@ -5857,16 +5857,8 @@ 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">
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index f69bd5b..75912da 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -424,21 +424,21 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
index c51f7b2..dc618a4 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
@@ -201,8 +201,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">RegionObserver.MutationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.MetaTableOps.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">MetaTableMetrics.MetaTableOps</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">RegionObserver.MutationType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index 2811080..0cee635 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -189,13 +189,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/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/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/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/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/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/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/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/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
index 26468e3..b4f69b9 100644
--- a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
@@ -138,9 +138,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/HttpConfig.Policy.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">HttpConfig.Policy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Event.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Event</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Output.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Output</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/HttpConfig.Policy.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">HttpConfig.Policy</span></a></li>
 </ul>
 </li>
 </ul>
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 99ef0d4..0fbe0bc 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -298,11 +298,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.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/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/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.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 05f6fbe..cb4ea86 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -353,9 +353,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <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/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index 16354b1..6e34331 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -296,8 +296,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/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/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</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>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html b/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
index 5560faf..82b2c82 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
@@ -1436,7 +1436,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>splitRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SplitTableRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.848">splitRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SplitTableRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.844">splitRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                            org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SplitTableRegionRequest&nbsp;request)
                                                                                                     throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1453,7 +1453,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>execMasterService</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.863">execMasterService</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.859">execMasterService</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                    org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest&nbsp;request)
                                                                                                             throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1470,7 +1470,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>execProcedure</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.907">execProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.903">execProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest&nbsp;request)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Triggers an asynchronous attempt to run a distributed procedure.
@@ -1489,7 +1489,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>execProcedureWithRet</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.939">execProcedureWithRet</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.935">execProcedureWithRet</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                  org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest&nbsp;request)
                                                                                                           throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Triggers a synchronous attempt to run a distributed procedure and sets
@@ -1509,7 +1509,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterStatus</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.963">getClusterStatus</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.959">getClusterStatus</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusRequest&nbsp;req)
                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1526,7 +1526,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompletedSnapshots</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.980">getCompletedSnapshots</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.976">getCompletedSnapshots</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest&nbsp;request)
                                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">List the currently available/stored snapshots. Any in-progress snapshots are ignored</div>
@@ -1544,7 +1544,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>listNamespaces</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespacesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.998">listNamespaces</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespacesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.994">listNamespaces</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespacesRequest&nbsp;request)
                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1561,7 +1561,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getNamespaceDescriptor</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1011">getNamespaceDescriptor</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1007">getNamespaceDescriptor</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest&nbsp;request)
                                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1578,7 +1578,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getSchemaAlterStatus</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1033">getSchemaAlterStatus</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1029">getSchemaAlterStatus</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest&nbsp;req)
                                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Get the number of regions of the table that have been updated by the alter.</div>
@@ -1600,7 +1600,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptors</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1062">getTableDescriptors</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1058">getTableDescriptors</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest&nbsp;req)
                                                                                                                throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Get list of TableDescriptors for requested tables.</div>
@@ -1624,7 +1624,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableNames</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1101">getTableNames</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1097">getTableNames</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest&nbsp;req)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Get list of userspace table names</div>
@@ -1647,7 +1647,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableState</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1125">getTableState</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1121">getTableState</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateRequest&nbsp;request)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1664,7 +1664,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogJanitorEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1140">isCatalogJanitorEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1136">isCatalogJanitorEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest&nbsp;req)
                                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1681,7 +1681,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isCleanerChoreEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1147">isCleanerChoreEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1143">isCleanerChoreEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledRequest&nbsp;req)
                                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1698,7 +1698,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isMasterRunning</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1155">isMasterRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1151">isMasterRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningRequest&nbsp;req)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1715,7 +1715,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isProcedureDone</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1172">isProcedureDone</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1168">isProcedureDone</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest&nbsp;request)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Checks if the specified procedure is done.</div>
@@ -1735,7 +1735,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isSnapshotDone</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1206">isSnapshotDone</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1202">isSnapshotDone</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest&nbsp;request)
                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Checks if the specified snapshot is done.</div>
@@ -1757,7 +1757,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedureResult</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1224">getProcedureResult</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1220">getProcedureResult</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest&nbsp;request)
                                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1774,7 +1774,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>abortProcedure</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1261">abortProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;rpcController,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1257">abortProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;rpcController,
                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest&nbsp;request)
                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1791,7 +1791,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>listNamespaceDescriptors</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1275">listNamespaceDescriptors</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1271">listNamespaceDescriptors</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest&nbsp;request)
                                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1808,7 +1808,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedures</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1290">getProcedures</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;rpcController,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1286">getProcedures</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;rpcController,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresRequest&nbsp;request)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1825,7 +1825,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getLocks</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1305">getLocks</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1301">getLocks</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksRequest&nbsp;request)
                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1842,7 +1842,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptorsByNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1322">listTableDescriptorsByNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1318">listTableDescriptorsByNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest&nbsp;request)
                                                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1859,7 +1859,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableNamesByNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1338">listTableNamesByNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1334">listTableNamesByNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest&nbsp;request)
                                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1876,7 +1876,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyColumn</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1353">modifyColumn</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1349">modifyColumn</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest&nbsp;req)
                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1893,7 +1893,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1373">modifyNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1369">modifyNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest&nbsp;request)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1910,7 +1910,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyTable</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1387">modifyTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1383">modifyTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableRequest&nbsp;req)
                                                                                                throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1927,7 +1927,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>moveRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1402">moveRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1398">moveRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest&nbsp;req)
                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1944,7 +1944,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>offlineRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1432">offlineRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1428">offlineRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest&nbsp;request)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Offline specified region from master's in-memory state. It will not attempt to
@@ -1965,7 +1965,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1475">restoreSnapshot</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1471">restoreSnapshot</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest&nbsp;request)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Execute Restore/Clone snapshot operation.
@@ -1993,7 +1993,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>runCatalogScan</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1489">runCatalogScan</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1485">runCatalogScan</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanRequest&nbsp;req)
                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2010,7 +2010,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>runCleanerChore</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1501">runCleanerChore</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1497">runCleanerChore</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreRequest&nbsp;req)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2027,7 +2027,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>setBalancerRunning</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1509">setBalancerRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1505">setBalancerRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest&nbsp;req)
                                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2044,7 +2044,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ShutdownResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1522">shutdown</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ShutdownResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1518">shutdown</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ShutdownRequest&nbsp;request)
                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2061,7 +2061,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshot</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1539">snapshot</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1535">snapshot</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest&nbsp;request)
                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Triggers an asynchronous attempt to take a snapshot.
@@ -2080,7 +2080,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>stopMaster</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.StopMasterResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1564">stopMaster</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.StopMasterResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1560">stopMaster</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.StopMasterRequest&nbsp;request)
                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2097,7 +2097,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isMasterInMaintenanceMode</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1577">isMasterInMaintenanceMode</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1573">isMasterInMaintenanceMode</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeRequest&nbsp;request)
                                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2114,7 +2114,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>unassignRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1586">unassignRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1582">unassignRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest&nbsp;req)
                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2131,7 +2131,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>reportRegionStateTransition</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1627">reportRegionStateTransition</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1623">reportRegionStateTransition</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest&nbsp;req)
                                                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2148,7 +2148,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>setQuota</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1638">setQuota</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1634">setQuota</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest&nbsp;req)
                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2165,7 +2165,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTimestamp</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1649">getLastMajorCompactionTimestamp</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1645">getLastMajorCompactionTimestamp</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest&nbsp;request)
                                                                                                                                 throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2182,7 +2182,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTimestampForRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1664">getLastMajorCompactionTimestampForRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1660">getLastMajorCompactionTimestampForRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest&nbsp;request)
                                                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2199,7 +2199,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>compactRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1688">compactRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1684">compactRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request)
                                                                                                   throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Compact a region on the master.</div>
@@ -2222,7 +2222,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>checkHFileFormatVersionForMob</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1710">checkHFileFormatVersionForMob</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1706">checkHFileFormatVersionForMob</a>()
                                     throws <a href="https://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">check configured hfile format version before to do compaction</div>
 <dl>
@@ -2237,7 +2237,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1722">getRegionInfo</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1718">getRegionInfo</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoRequest&nbsp;request)
                                                                                                   throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2256,7 +2256,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>compactMob</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1747">compactMob</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request,
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1743">compactMob</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request,
                                                                                                        <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                                                                                                 throws <a href="https://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">Compacts the mob files in the current table.</div>
@@ -2277,7 +2277,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isBalancerEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1793">isBalancerEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1789">isBalancerEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest&nbsp;request)
                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2294,7 +2294,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>setSplitOrMergeEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetSplitOrMergeEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1801">setSplitOrMergeEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetSplitOrMergeEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1797">setSplitOrMergeEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetSplitOrMergeEnabledRequest&nbsp;request)
                                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2311,7 +2311,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isSplitOrMergeEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1828">isSplitOrMergeEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1824">isSplitOrMergeEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledRequest&nbsp;request)
                                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2328,7 +2328,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>normalize</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1836">normalize</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1832">normalize</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeRequest&nbsp;request)
                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2345,7 +2345,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>setNormalizerRunning</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1847">setNormalizerRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1843">setNormalizerRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningRequest&nbsp;request)
                                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2362,7 +2362,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isNormalizerEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1864">isNormalizerEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1860">isNormalizerEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest&nbsp;request)
                                                                                                                throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2379,7 +2379,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getSecurityCapabilities</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1875">getSecurityCapabilities</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1871">getSecurityCapabilities</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                            org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest&nbsp;request)
                                                                                                                     throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Returns the security capabilities in effect on the cluster</div>
@@ -2397,7 +2397,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>hasAccessControlServiceCoprocessor</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1914">hasAccessControlServiceCoprocessor</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;cpHost)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1910">hasAccessControlServiceCoprocessor</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;cpHost)</pre>
 <div class="block">Determines if there is a MasterCoprocessor deployed which implements
  <code>AccessControlProtos.AccessControlService.Interface</code>.</div>
 </li>
@@ -2408,7 +2408,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>hasVisibilityLabelsServiceCoprocessor</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1923">hasVisibilityLabelsServiceCoprocessor</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;cpHost)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1919">hasVisibilityLabelsServiceCoprocessor</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;cpHost)</pre>
 <div class="block">Determines if there is a MasterCoprocessor deployed which implements
  <code>VisibilityLabelsProtos.VisibilityLabelsService.Interface</code>.</div>
 </li>
@@ -2419,7 +2419,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCoprocessorWithService</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1933">checkCoprocessorWithService</a>(<a href="https://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/coprocessor/MasterCoprocessor.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessor</a>&gt;&nbsp;coprocessorsToCheck,
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1929">checkCoprocessorWithService</a>(<a href="https://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/coprocessor/MasterCoprocessor.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessor</a>&gt;&nbsp;coprocessorsToCheck,
                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;service)</pre>
 <div class="block">Determines if there is a coprocessor implementation in the provided argument which extends
  or implements the provided <code>service</code>.</div>
@@ -2431,7 +2431,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1946">convert</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterSwitchType&nbsp;switchType)</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1942">convert</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterSwitchType&nbsp;switchType)</pre>
 </li>
 </ul>
 <a name="addReplicationPeer-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest-">
@@ -2440,7 +2440,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>addReplicationPeer</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1959">addReplicationPeer</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1955">addReplicationPeer</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest&nbsp;request)
                                                                                                                   throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2457,7 +2457,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>removeReplicationPeer</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1972">removeReplicationPeer</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1968">removeReplicationPeer</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest&nbsp;request)
                                                                                                                         throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2474,7 +2474,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>enableReplicationPeer</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1983">enableReplicationPeer</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1979">enableReplicationPeer</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest&nbsp;request)
                                                                                                                         throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2491,7 +2491,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>disableReplicationPeer</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1994">disableReplicationPeer</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1990">disableReplicationPeer</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                  org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest&nbsp;request)
                                                                                                                           throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2508,7 +2508,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationPeerConfig</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2005">getReplicationPeerConfig</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2001">getReplicationPeerConfig</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest&nbsp;request)
                                                                                                                               throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2525,7 +2525,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>updateReplicationPeerConfig</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2021">updateReplicationPeerConfig</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2017">updateReplicationPeerConfig</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                            org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest&nbsp;request)
                                                                                                                                     throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2542,7 +2542,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>transitReplicationPeerSyncReplicationState</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.TransitReplicationPeerSyncReplicationStateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2034">transitReplicationPeerSyncReplicationState</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.TransitReplicationPeerSyncReplicationStateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2030">transitReplicationPeerSyncReplicationState</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.TransitReplicationPeerSyncReplicationStateRequest&nbsp;request)
                                                                                                                                                                   throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2559,7 +2559,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>listReplicationPeers</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2047">listReplicationPeers</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2043">listReplicationPeers</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                              org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest&nbsp;request)
                                                                                                                       throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2576,7 +2576,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>listDecommissionedRegionServers</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2063">listDecommissionedRegionServers</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2059">listDecommissionedRegionServers</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersRequest&nbsp;request)
                                                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2593,7 +2593,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>decommissionRegionServers</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2087">decommissionRegionServers</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2083">decommissionRegionServers</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersRequest&nbsp;request)
                                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2610,7 +2610,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>recommissionRegionServer</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2109">recommissionRegionServer</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2105">recommissionRegionServer</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerRequest&nbsp;request)
                                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2627,7 +2627,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>requestLock</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2132">requestLock</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2128">requestLock</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockRequest&nbsp;request)
                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2644,7 +2644,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>lockHeartbeat</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2203">lockHeartbeat</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2199">lockHeartbeat</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatRequest&nbsp;request)
                                                                                                         throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2663,7 +2663,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>reportRegionSpaceUse</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2222">reportRegionSpaceUse</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2218">reportRegionSpaceUse</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest&nbsp;request)
                                                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2680,7 +2680,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getSpaceQuotaRegionSizes</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaRegionSizesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2247">getSpaceQuotaRegionSizes</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaRegionSizesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2243">getSpaceQuotaRegionSizes</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaRegionSizesRequest&nbsp;request)
                                                                                                                         throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2697,7 +2697,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getQuotaStates</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2284">getQuotaStates</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2280">getQuotaStates</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                            org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesRequest&nbsp;request)
                                                                                                     throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2714,7 +2714,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>clearDeadServers</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2316">clearDeadServers</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2312">clearDeadServers</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersRequest&nbsp;request)
                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2731,7 +2731,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>reportProcedureDone</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2350">reportProcedureDone</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2346">reportProcedureDone</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneRequest&nbsp;request)
                                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2748,7 +2748,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>reportFileArchival</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.FileArchiveNotificationResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2364">reportFileArchival</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.FileArchiveNotificationResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2360">reportFileArchival</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.FileArchiveNotificationRequest&nbsp;request)
                                                                                                                               throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2765,7 +2765,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>runHbckChore</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunHbckChoreResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2382">runHbckChore</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunHbckChoreResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2378">runHbckChore</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunHbckChoreRequest&nbsp;req)
                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2782,7 +2782,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>setTableStateInMeta</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2398">setTableStateInMeta</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2394">setTableStateInMeta</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetTableStateInMetaRequest&nbsp;request)
                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Update state of the table in meta only. This is required by hbck in some situations to cleanup
@@ -2803,7 +2803,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2417">getRegionInfo</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier&nbsp;rs)
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2413">getRegionInfo</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier&nbsp;rs)
                           throws <a href="../../../../../org/apache/hadoop/hbase/UnknownRegionException.html" title="class in org.apache.hadoop.hbase">UnknownRegionException</a></pre>
 <div class="block">Get RegionInfo from Master using content of RegionSpecifier as key.</div>
 <dl>
@@ -2820,7 +2820,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>assigns</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2443">assigns</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2439">assigns</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignsRequest&nbsp;request)
                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">A 'raw' version of assign that does bulk and skirts Master state checks (assigns can be made
@@ -2839,7 +2839,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>unassigns</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2475">unassigns</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2471">unassigns</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignsRequest&nbsp;request)
                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">A 'raw' version of unassign that does bulk and skirts Master state checks (unassigns can be
@@ -2858,7 +2858,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>bypassProcedure</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BypassProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2514">bypassProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BypassProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2510">bypassProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BypassProcedureRequest&nbsp;request)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Bypass specified procedure to completion. Procedure is marked completed but no actual work
@@ -2884,7 +2884,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>scheduleServerCrashProcedure</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ScheduleServerCrashProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2530">scheduleServerCrashProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ScheduleServerCrashProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2526">scheduleServerCrashProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ScheduleServerCrashProcedureRequest&nbsp;request)
                                                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2901,7 +2901,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>fixMeta</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.FixMetaResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2556">fixMeta</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.FixMetaResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2552">fixMeta</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.FixMetaRequest&nbsp;request)
                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2918,7 +2918,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>switchRpcThrottle</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SwitchRpcThrottleResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2568">switchRpcThrottle</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SwitchRpcThrottleResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2564">switchRpcThrottle</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SwitchRpcThrottleRequest&nbsp;request)
                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2935,7 +2935,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isRpcThrottleEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsRpcThrottleEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2579">isRpcThrottleEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsRpcThrottleEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2575">isRpcThrottleEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsRpcThrottleEnabledRequest&nbsp;request)
                                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2952,7 +2952,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>switchExceedThrottleQuota</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SwitchExceedThrottleQuotaResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2590">switchExceedThrottleQuota</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SwitchExceedThrottleQuotaResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2586">switchExceedThrottleQuota</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SwitchExceedThrottleQuotaRequest&nbsp;request)
                                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2969,7 +2969,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>grant</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GrantResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2601">grant</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GrantResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2597">grant</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                  org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GrantRequest&nbsp;request)
                                                                                           throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2986,7 +2986,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>revoke</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.RevokeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2631">revoke</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.RevokeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2627">revoke</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                    org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.RevokeRequest&nbsp;request)
                                                                                             throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -3003,7 +3003,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getUserPermissions</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GetUserPermissionsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2659">getUserPermissions</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GetUserPermissionsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2655">getUserPermissions</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                            org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GetUserPermissionsRequest&nbsp;request)
                                                                                                                     throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -3020,7 +3020,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>hasUserPermissions</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.HasUserPermissionsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2710">hasUserPermissions</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.HasUserPermissionsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2706">hasUserPermissions</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                            org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.HasUserPermissionsRequest&nbsp;request)
                                                                                                                     throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -3037,7 +3037,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>containMetaWals</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2750">containMetaWals</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2746">containMetaWals</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)
                          throws <a href="https://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>
@@ -3051,7 +3051,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockListLast">
 <li class="blockList">
 <h4>shouldSubmitSCP</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2758">shouldSubmitSCP</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.2754">shouldSubmitSCP</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/ServerListener.html b/devapidocs/org/apache/hadoop/hbase/master/ServerListener.html
index 50a1229..a9df52c 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/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/procedu [...]
+<dd><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>, <a href="../../../../../org/apache/hadoop/hbase/master/SplitWALManager.SplitWorkerAssigner.htm [...]
 </dl>
 <hr>
 <br>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
index 20954ae..7aaaeda 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.775">SplitTableRegionProcedure.StoreFileSplitter</a>
+<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.772">SplitTableRegionProcedure.StoreFileSplitter</a>
 extends <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&gt;</pre>
 <div class="block">Utility class used to do the file splitting / reference writing
@@ -220,7 +220,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockList">
 <li class="blockList">
 <h4>regionFs</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.776">regionFs</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.773">regionFs</a></pre>
 </li>
 </ul>
 <a name="family">
@@ -229,7 +229,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockList">
 <li class="blockList">
 <h4>family</h4>
-<pre>private final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.777">family</a></pre>
+<pre>private final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.774">family</a></pre>
 </li>
 </ul>
 <a name="sf">
@@ -238,7 +238,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>sf</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.778">sf</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.775">sf</a></pre>
 </li>
 </ul>
 </li>
@@ -255,7 +255,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>StoreFileSplitter</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.786">StoreFileSplitter</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.783">StoreFileSplitter</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
                          byte[]&nbsp;family,
                          <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;sf)</pre>
 <div class="block">Constructor that takes what it needs to split</div>
@@ -281,7 +281,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.793">call</a>()
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.790">call</a>()
                                                                throws <a href="https://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">Specified by:</span></dt>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
index a286cb5..ee7cc32 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":9,"i12":10,"i13":10,"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,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":9,"i12":10,"i13":10,"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,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":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";
@@ -226,10 +226,6 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#splitPolicy">splitPolicy</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#traceEnabled">traceEnabled</a></span></code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.procedure2.StateMachineProcedure">
@@ -416,64 +412,58 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 </td>
 </tr>
 <tr id="i23" class="rowColor">
-<td class="colFirst"><code>private boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#isTraceEnabled--">isTraceEnabled</a></span>()</code>
-<div class="block">The procedure could be restarted from a different machine.</div>
-</td>
-</tr>
-<tr id="i24" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#openParentRegion-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">openParentRegion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Rollback close parent region</div>
 </td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#postRollBackSplitRegion-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">postRollBackSplitRegion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action after rollback a split table region action.</div>
 </td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#postSplitRegion-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">postSplitRegion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Post split region actions</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#prepareSplitRegion-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareSplitRegion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Prepare to Split region.</div>
 </td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#preSplitRegion-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">preSplitRegion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before splitting region in a table.</div>
 </td>
 </tr>
-<tr id="i29" class="rowColor">
+<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/master/assignment/SplitTableRegionProcedure.html#preSplitRegionAfterMETA-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">preSplitRegionAfterMETA</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Pre split region actions after the Point-of-No-Return step</div>
 </td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#preSplitRegionBeforeMETA-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">preSplitRegionBeforeMETA</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Post split region actions before the Point-of-No-Return step</div>
 </td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#releaseLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">releaseLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">The user should override this method, and release lock if necessary.</div>
 </td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#removeNonDefaultReplicas-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">removeNonDefaultReplicas</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState-">rollbackState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.pr [...]
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)</code>
@@ -482,40 +472,40 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
  AssignProcedure) .</div>
 </td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>
 <div class="block">The user-level code of the procedure may have some state to
  persist (e.g.</div>
 </td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#splitStoreFile-org.apache.hadoop.hbase.regionserver.HRegionFileSystem-byte:A-org.apache.hadoop.hbase.regionserver.HStoreFile-">splitStoreFile</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
               byte[]&nbsp;family,
               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;sf)</code>&nbsp;</td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#splitStoreFiles-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.regionserver.HRegionFileSystem-">splitStoreFiles</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs)</code>
 <div class="block">Create Split directory</div>
 </td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</code>
 <div class="block">Extend the toString() information with the procedure details
  e.g.</div>
 </td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#updateMeta-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">updateMeta</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Add daughter regions to META</div>
 </td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#writeMaxSequenceIdFile-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">writeMaxSequenceIdFile</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
@@ -578,22 +568,13 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.94">LOG</a></pre>
 </li>
 </ul>
-<a name="traceEnabled">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>traceEnabled</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.95">traceEnabled</a></pre>
-</li>
-</ul>
 <a name="daughterOneRI">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>daughterOneRI</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.96">daughterOneRI</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.95">daughterOneRI</a></pre>
 </li>
 </ul>
 <a name="daughterTwoRI">
@@ -602,7 +583,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>daughterTwoRI</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.97">daughterTwoRI</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.96">daughterTwoRI</a></pre>
 </li>
 </ul>
 <a name="bestSplitRow">
@@ -611,7 +592,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>bestSplitRow</h4>
-<pre>private&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.98">bestSplitRow</a></pre>
+<pre>private&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.97">bestSplitRow</a></pre>
 </li>
 </ul>
 <a name="splitPolicy">
@@ -620,7 +601,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>splitPolicy</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.99">splitPolicy</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.98">splitPolicy</a></pre>
 </li>
 </ul>
 <a name="EXPECTED_SPLIT_STATES">
@@ -629,7 +610,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EXPECTED_SPLIT_STATES</h4>
-<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.479">EXPECTED_SPLIT_STATES</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.476">EXPECTED_SPLIT_STATES</a></pre>
 </li>
 </ul>
 </li>
@@ -646,7 +627,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>SplitTableRegionProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.101">SplitTableRegionProcedure</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.100">SplitTableRegionProcedure</a>()</pre>
 </li>
 </ul>
 <a name="SplitTableRegionProcedure-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.client.RegionInfo-byte:A-">
@@ -655,7 +636,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SplitTableRegionProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.105">SplitTableRegionProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.104">SplitTableRegionProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                  <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionToSplit,
                                  byte[]&nbsp;splitRow)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -679,7 +660,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>acquireLock</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.141">acquireLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv [...]
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.140">acquireLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv [...]
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">Procedure</a></code></span></div>
 <div class="block">The user should override this method if they need a lock on an Entity. A lock can be anything,
  and it is up to the implementor. The Procedure Framework will call this method just before it
@@ -716,7 +697,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>releaseLock</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.155">releaseLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.154">releaseLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">Procedure</a></code></span></div>
 <div class="block">The user should override this method, and release lock if necessary.</div>
 <dl>
@@ -731,7 +712,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getDaughterOneRI</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.161">getDaughterOneRI</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.160">getDaughterOneRI</a>()</pre>
 </li>
 </ul>
 <a name="getDaughterTwoRI--">
@@ -740,7 +721,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getDaughterTwoRI</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.166">getDaughterTwoRI</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.165">getDaughterTwoRI</a>()</pre>
 </li>
 </ul>
 <a name="checkSplittable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.client.RegionInfo-byte:A-">
@@ -749,7 +730,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>checkSplittable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.177">checkSplittable</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.176">checkSplittable</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                              <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionToSplit,
                              byte[]&nbsp;splitRow)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -770,7 +751,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getDaughterRegionIdTimestamp</h4>
-<pre>private static&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.241">getDaughterRegionIdTimestamp</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri)</pre>
+<pre>private static&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.240">getDaughterRegionIdTimestamp</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri)</pre>
 <div class="block">Calculate daughter regionid to use.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -786,7 +767,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>removeNonDefaultReplicas</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.253">removeNonDefaultReplicas</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.252">removeNonDefaultReplicas</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                                throws <a href="https://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>
@@ -800,7 +781,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>checkClosedRegions</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.258">checkClosedRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.257">checkClosedRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                          throws <a href="https://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>
@@ -814,7 +795,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>executeFromState</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.265">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure" [...]
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.264">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure" [...]
                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)
                                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
@@ -837,7 +818,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>rollbackState</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.342">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.341">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)
                       throws <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -861,7 +842,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>isRollbackSupported</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.391">isRollbackSupported</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.388">isRollbackSupported</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">StateMachineProcedure</a></code></span></div>
 <div class="block">Used by the default implementation of abort() to know if the current state can be aborted
  and rollback can be triggered.</div>
@@ -877,7 +858,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.406">getState</a>(int&nbsp;stateId)</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.403">getState</a>(int&nbsp;stateId)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">StateMachineProcedure</a></code></span></div>
 <div class="block">Convert an ordinal (or state id) to an Enum (or more descriptive) state object.</div>
 <dl>
@@ -896,7 +877,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getStateId</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.411">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.408">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">StateMachineProcedure</a></code></span></div>
 <div class="block">Convert the Enum (or more descriptive) state object to an ordinal (or state id).</div>
 <dl>
@@ -915,7 +896,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitialState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.416">getInitialState</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.413">getInitialState</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">StateMachineProcedure</a></code></span></div>
 <div class="block">Return the initial state object that will be used for the first call to executeFromState().</div>
 <dl>
@@ -932,7 +913,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>serializeStateData</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.421">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.418">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                            throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
 <div class="block">The user-level code of the procedure may have some state to
@@ -954,7 +935,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>deserializeStateData</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.435">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.432">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                              throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
 <div class="block">Called on store load to allow the user to decode the previously serialized
@@ -975,7 +956,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringClassDetails</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.449">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.446">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">Procedure</a></code></span></div>
 <div class="block">Extend the toString() information with the procedure details
  e.g. className and parameters</div>
@@ -993,7 +974,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentRegion</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.461">getParentRegion</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.458">getParentRegion</a>()</pre>
 </li>
 </ul>
 <a name="getTableOperationType--">
@@ -1002,7 +983,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableOperationType</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.466">getTableOperationType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.463">getTableOperationType</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableOperationType--">TableProcedureInterface</a></code></span></div>
 <div class="block">Given an operation type we can take decisions about what to do with pending operations.
  e.g. if we get a delete and we have some table operation pending (e.g. add column)
@@ -1023,7 +1004,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedureMetrics</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.471">getProcedureMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProce [...]
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.468">getProcedureMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProce [...]
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">Procedure</a></code></span></div>
 <div class="block">Override this method to provide procedure specific counters for submitted count, failed
  count and time histogram.</div>
@@ -1043,7 +1024,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitRow</h4>
-<pre>private&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.475">getSplitRow</a>()</pre>
+<pre>private&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.472">getSplitRow</a>()</pre>
 </li>
 </ul>
 <a name="prepareSplitRegion-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
@@ -1052,7 +1033,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareSplitRegion</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.486">prepareSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.483">prepareSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                            throws <a href="https://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">Prepare to Split region.</div>
 <dl>
@@ -1069,7 +1050,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preSplitRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.555">preSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.552">preSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                      throws <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Action before splitting region in a table.</div>
@@ -1088,7 +1069,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>postRollBackSplitRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.577">postRollBackSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.574">postRollBackSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                               throws <a href="https://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">Action after rollback a split table region action.</div>
 <dl>
@@ -1105,7 +1086,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>openParentRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.587">openParentRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.584">openParentRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                        throws <a href="https://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">Rollback close parent region</div>
 <dl>
@@ -1120,7 +1101,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createDaughterRegions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.597">createDaughterRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.594">createDaughterRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                            throws <a href="https://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 daughter regions</div>
 <dl>
@@ -1135,7 +1116,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStoreFiles</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoo [...]
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoo [...]
                                               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs)
                                        throws <a href="https://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 Split directory</div>
@@ -1153,7 +1134,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>assertReferenceFileCount</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.743">assertReferenceFileCount</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.740">assertReferenceFileCount</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                       int&nbsp;expectedReferenceFileCount,
                                       org.apache.hadoop.fs.Path&nbsp;dir)
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1169,7 +1150,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStoreFile</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.751">splitStoreFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionF [...]
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.748">splitStoreFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionF [...]
                                                                                  byte[]&nbsp;family,
                                                                                  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;sf)
                                                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1185,7 +1166,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preSplitRegionBeforeMETA</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.802">preSplitRegionBeforeMETA</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.799">preSplitRegionBeforeMETA</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                                throws <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Post split region actions before the Point-of-No-Return step</div>
@@ -1204,7 +1185,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMeta</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.825">updateMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.822">updateMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                  throws <a href="https://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 daughter regions to META</div>
 <dl>
@@ -1221,7 +1202,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preSplitRegionAfterMETA</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.834">preSplitRegionAfterMETA</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.831">preSplitRegionAfterMETA</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                               throws <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Pre split region actions after the Point-of-No-Return step</div>
@@ -1240,7 +1221,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>postSplitRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.846">postSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.843">postSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                       throws <a href="https://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">Post split region actions</div>
 <dl>
@@ -1257,7 +1238,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentRegionServerName</h4>
-<pre>private&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/assignment/SplitTableRegionProcedure.html#line.853">getParentRegionServerName</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>private&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/assignment/SplitTableRegionProcedure.html#line.850">getParentRegionServerName</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 </li>
 </ul>
 <a name="createUnassignProcedures-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
@@ -1266,7 +1247,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createUnassignProcedures</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.858">createUnassignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoo [...]
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.855">createUnassignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoo [...]
                                                         throws <a href="https://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>
@@ -1280,7 +1261,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createAssignProcedures</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.864">createAssignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop. [...]
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.861">createAssignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop. [...]
                                                       throws <a href="https://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>
@@ -1294,7 +1275,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionReplication</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.873">getRegionReplication</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.870">getRegionReplication</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                           throws <a href="https://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>
@@ -1308,7 +1289,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMaxSequenceIdFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.878">writeMaxSequenceIdFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.875">writeMaxSequenceIdFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                              throws <a href="https://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>
@@ -1316,28 +1297,13 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 </dl>
 </li>
 </ul>
-<a name="isTraceEnabled--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>isTraceEnabled</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.895">isTraceEnabled</a>()</pre>
-<div class="block">The procedure could be restarted from a different machine. If the variable is null, we need to
- retrieve it.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>traceEnabled</dd>
-</dl>
-</li>
-</ul>
 <a name="abort-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>abort</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.903">abort</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.888">abort</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">Procedure</a></code></span></div>
 <div class="block">The abort() call is asynchronous and each procedure must decide how to deal
  with it, if they want to be abortable. The simplest implementation
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 b7d1cf4..bae6298 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/class-use/ServerListener.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/class-use/ServerListener.html
@@ -190,10 +190,6 @@
 <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>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index 0ea5ad0..1f68e77 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -359,12 +359,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<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/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/ServerManager.ServerLiveState.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">ServerManager.ServerLiveState</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/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/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/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
index b03869a..e3aa4c7 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -206,10 +206,6 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#tableDescriptor">tableDescriptor</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#traceEnabled">traceEnabled</a></span></code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.procedure2.StateMachineProcedure">
@@ -357,12 +353,6 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 </td>
 </tr>
 <tr id="i12" class="altColor">
-<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#isTraceEnabled--">isTraceEnabled</a></span>()</code>
-<div class="block">The procedure could be restarted from a different machine.</div>
-</td>
-</tr>
-<tr id="i13" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#moveTempMobDirectoryToHBaseRoot-org.apache.hadoop.hbase.master.MasterFileSystem-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.fs.Path-">moveTempMobDirectoryToHBaseRoot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSyst [...]
                                <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
@@ -370,43 +360,43 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <div class="block">Move table temp mob directory to the hbase root location</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#postCloneSnapshot-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">postCloneSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action after cloning from snapshot.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#preCloneSnapshot-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">preCloneSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before cloning from snapshot.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#prepareClone-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareClone</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before any real action of cloning from snapshot.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#restoreSnapshotAcl-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">restoreSnapshotAcl</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState-">rollbackState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure [...]
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;state)</code>
 <div class="block">called to perform the rollback of the specified state</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>
 <div class="block">The user-level code of the procedure may have some state to
  persist (e.g.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</code>
 <div class="block">Extend the toString() information with the procedure details
@@ -513,21 +503,12 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <a name="monitorStatus">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>monitorStatus</h4>
 <pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.79">monitorStatus</a></pre>
 </li>
 </ul>
-<a name="traceEnabled">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>traceEnabled</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.81">traceEnabled</a></pre>
-</li>
-</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -542,7 +523,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>CloneSnapshotProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.86">CloneSnapshotProcedure</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.84">CloneSnapshotProcedure</a>()</pre>
 <div class="block">Constructor (for failover)</div>
 </li>
 </ul>
@@ -552,7 +533,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>CloneSnapshotProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.89">CloneSnapshotProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.87">CloneSnapshotProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                               <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                               org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</pre>
 </li>
@@ -563,7 +544,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CloneSnapshotProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.100">CloneSnapshotProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.98">CloneSnapshotProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                               <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                               org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
                               boolean&nbsp;restoreAcl)</pre>
@@ -590,7 +571,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getMonitorStatus</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.114">getMonitorStatus</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.112">getMonitorStatus</a>()</pre>
 <div class="block">Set up monitor status if it is not created.</div>
 </li>
 </ul>
@@ -600,7 +581,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshotAcl</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.122">restoreSnapshotAcl</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.120">restoreSnapshotAcl</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                          throws <a href="https://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>
@@ -614,7 +595,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>executeFromState</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.131">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">Mas [...]
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.129">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">Mas [...]
                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;state)
                                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
@@ -637,7 +618,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>rollbackState</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.209">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.205">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;state)
                       throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
@@ -657,7 +638,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>isRollbackSupported</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.222">isRollbackSupported</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;state)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.218">isRollbackSupported</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">StateMachineProcedure</a></code></span></div>
 <div class="block">Used by the default implementation of abort() to know if the current state can be aborted
  and rollback can be triggered.</div>
@@ -673,7 +654,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.232">getState</a>(int&nbsp;stateId)</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.228">getState</a>(int&nbsp;stateId)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">StateMachineProcedure</a></code></span></div>
 <div class="block">Convert an ordinal (or state id) to an Enum (or more descriptive) state object.</div>
 <dl>
@@ -692,7 +673,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getStateId</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.237">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;state)</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.233">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">StateMachineProcedure</a></code></span></div>
 <div class="block">Convert the Enum (or more descriptive) state object to an ordinal (or state id).</div>
 <dl>
@@ -711,7 +692,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitialState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.242">getInitialState</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.238">getInitialState</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">StateMachineProcedure</a></code></span></div>
 <div class="block">Return the initial state object that will be used for the first call to executeFromState().</div>
 <dl>
@@ -728,7 +709,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableName</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.247">getTableName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.243">getTableName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableName--">getTableName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface</a></code></dd>
@@ -745,7 +726,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableOperationType</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.252">getTableOperationType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.248">getTableOperationType</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableOperationType--">TableProcedureInterface</a></code></span></div>
 <div class="block">Given an operation type we can take decisions about what to do with pending operations.
  e.g. if we get a delete and we have some table operation pending (e.g. add column)
@@ -766,7 +747,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringClassDetails</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.257">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.253">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">Procedure</a></code></span></div>
 <div class="block">Extend the toString() information with the procedure details
  e.g. className and parameters</div>
@@ -784,7 +765,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>serializeStateData</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.267">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.263">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                            throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
 <div class="block">The user-level code of the procedure may have some state to
@@ -806,7 +787,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>deserializeStateData</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.299">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.295">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                              throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
 <div class="block">Called on store load to allow the user to decode the previously serialized
@@ -827,7 +808,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareClone</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.336">prepareClone</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.332">prepareClone</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                    throws <a href="https://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">Action before any real action of cloning from snapshot.</div>
 <dl>
@@ -844,7 +825,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preCloneSnapshot</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.349">preCloneSnapshot</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.345">preCloneSnapshot</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                        throws <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Action before cloning from snapshot.</div>
@@ -863,7 +844,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>postCloneSnapshot</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.377">postCloneSnapshot</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.373">postCloneSnapshot</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                         throws <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Action after cloning from snapshot.</div>
@@ -882,7 +863,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createFilesystemLayout</h4>
-<pre>private&nbsp;<a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.392">createFilesystemLayout</a>(<a href="../../../../../../org/apache/ha [...]
+<pre>private&nbsp;<a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.388">createFilesystemLayout</a>(<a href="../../../../../../org/apache/ha [...]
                                                 <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                                                 <a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;newRegions)
                                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -901,7 +882,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createFsLayout</h4>
-<pre>private&nbsp;<a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.453">createFsLayout</a>(<a href="../../../../../../org/apache/hadoop/hba [...]
+<pre>private&nbsp;<a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.449">createFsLayout</a>(<a href="../../../../../../org/apache/hadoop/hba [...]
                                         <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                                         <a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;newRegions,
                                         <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.CreateHdfsRegions.html" title="interface in org.apache.hadoop.hbase.master.procedure">CreateTableProcedure.CreateHdfsRegions</a>&nbsp;hdfsRegionHandler)
@@ -921,7 +902,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>moveTempMobDirectoryToHBaseRoot</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.489">moveTempMobDirectoryToHBaseRoot</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;mfs,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.485">moveTempMobDirectoryToHBaseRoot</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;mfs,
                                              <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                                              org.apache.hadoop.fs.Path&nbsp;tempMobTableDir)
                                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -939,10 +920,10 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <a name="addRegionsToMeta-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>addRegionsToMeta</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.511">addRegionsToMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.507">addRegionsToMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                        throws <a href="https://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 regions to hbase:meta table.</div>
 <dl>
@@ -953,21 +934,6 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 </dl>
 </li>
 </ul>
-<a name="isTraceEnabled--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>isTraceEnabled</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#line.527">isTraceEnabled</a>()</pre>
-<div class="block">The procedure could be restarted from a different machine. If the variable is null, we need to
- retrieve it.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>traceEnabled</dd>
-</dl>
-</li>
-</ul>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
index db25af5..bdcca6e 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":9,"i18":9};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":9,"i17":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -186,10 +186,6 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#tableName">tableName</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#traceEnabled">traceEnabled</a></span></code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.procedure2.StateMachineProcedure">
@@ -317,60 +313,54 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 </td>
 </tr>
 <tr id="i10" class="altColor">
-<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#isTraceEnabled--">isTraceEnabled</a></span>()</code>
-<div class="block">The procedure could be restarted from a different machine.</div>
-</td>
-</tr>
-<tr id="i11" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#postEnable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState-">postEnable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterPr [...]
           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</code>
 <div class="block">Action after enabling table.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#preEnable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState-">preEnable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProc [...]
          org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</code>
 <div class="block">Action before enabling table.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#prepareEnable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareEnable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before any real action of enabling table.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState-">rollbackState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">Ma [...]
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</code>
 <div class="block">called to perform the rollback of the specified state</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#runCoprocessorAction-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState-">runCoprocessorAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master [...]
                     org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</code>
 <div class="block">Coprocessor Action.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>
 <div class="block">The user-level code of the procedure may have some state to
  persist (e.g.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>protected static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#setTableStateToEnabled-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.TableName-">setTableStateToEnabled</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                       <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Mark table state to Enabled</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>protected static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#setTableStateToEnabling-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.TableName-">setTableStateToEnabling</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                        <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -432,21 +422,12 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <a name="tableName">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>tableName</h4>
 <pre>private&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/master/procedure/EnableTableProcedure.html#line.53">tableName</a></pre>
 </li>
 </ul>
-<a name="traceEnabled">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>traceEnabled</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.55">traceEnabled</a></pre>
-</li>
-</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -461,7 +442,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>EnableTableProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.57">EnableTableProcedure</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.55">EnableTableProcedure</a>()</pre>
 </li>
 </ul>
 <a name="EnableTableProcedure-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.TableName-">
@@ -470,7 +451,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>EnableTableProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.65">EnableTableProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.63">EnableTableProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Constructor</div>
 <dl>
@@ -486,7 +467,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EnableTableProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.74">EnableTableProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.72">EnableTableProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                             <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/master/procedure/ProcedurePrepareLatch.html" title="class in org.apache.hadoop.hbase.master.procedure">ProcedurePrepareLatch</a>&nbsp;syncLatch)</pre>
 <div class="block">Constructor</div>
@@ -511,7 +492,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>executeFromState</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.81">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">Master [...]
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.79">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">Master [...]
                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)
                                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
@@ -534,7 +515,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumberOfReplicasFromMeta</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.193">getNumberOfReplicasFromMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;connection,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.189">getNumberOfReplicasFromMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;connection,
                                         int&nbsp;regionReplicaCount,
                                         <a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionsOfTable)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -550,7 +531,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionFromMeta</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.208">getRegionFromMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;connection,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.204">getRegionFromMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;connection,
                                  <a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionsOfTable)
                           throws <a href="https://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>
@@ -565,7 +546,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>rollbackState</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.219">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.215">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)
                       throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
@@ -585,7 +566,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>isRollbackSupported</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.238">isRollbackSupported</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.234">isRollbackSupported</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">StateMachineProcedure</a></code></span></div>
 <div class="block">Used by the default implementation of abort() to know if the current state can be aborted
  and rollback can be triggered.</div>
@@ -601,7 +582,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.249">getState</a>(int&nbsp;stateId)</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.245">getState</a>(int&nbsp;stateId)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">StateMachineProcedure</a></code></span></div>
 <div class="block">Convert an ordinal (or state id) to an Enum (or more descriptive) state object.</div>
 <dl>
@@ -620,7 +601,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getStateId</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.254">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.250">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">StateMachineProcedure</a></code></span></div>
 <div class="block">Convert the Enum (or more descriptive) state object to an ordinal (or state id).</div>
 <dl>
@@ -639,7 +620,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitialState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.259">getInitialState</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.255">getInitialState</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">StateMachineProcedure</a></code></span></div>
 <div class="block">Return the initial state object that will be used for the first call to executeFromState().</div>
 <dl>
@@ -656,7 +637,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>serializeStateData</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.264">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.260">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                            throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
 <div class="block">The user-level code of the procedure may have some state to
@@ -678,7 +659,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>deserializeStateData</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.278">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.274">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                              throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
 <div class="block">Called on store load to allow the user to decode the previously serialized
@@ -699,7 +680,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableName</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.288">getTableName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.284">getTableName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableName--">getTableName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface</a></code></dd>
@@ -716,7 +697,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableOperationType</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.293">getTableOperationType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.289">getTableOperationType</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableOperationType--">TableProcedureInterface</a></code></span></div>
 <div class="block">Given an operation type we can take decisions about what to do with pending operations.
  e.g. if we get a delete and we have some table operation pending (e.g. add column)
@@ -737,7 +718,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareEnable</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.305">prepareEnable</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.301">prepareEnable</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                        throws <a href="https://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">Action before any real action of enabling table. Set the exception in the procedure instead
  of throwing it.  This approach is to deal with backward compatible with 1.0.</div>
@@ -757,7 +738,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preEnable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.344">preEnable</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.340">preEnable</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)
                 throws <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -778,7 +759,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>setTableStateToEnabling</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.355">setTableStateToEnabling</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.351">setTableStateToEnabling</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                                        throws <a href="https://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">Mark table state to Enabling</div>
@@ -797,7 +778,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>setTableStateToEnabled</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.370">setTableStateToEnabled</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.366">setTableStateToEnabled</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                              <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                                       throws <a href="https://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">Mark table state to Enabled</div>
@@ -815,7 +796,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>postEnable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.387">postEnable</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.383">postEnable</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)
                  throws <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -830,28 +811,13 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 </dl>
 </li>
 </ul>
-<a name="isTraceEnabled--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>isTraceEnabled</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.397">isTraceEnabled</a>()</pre>
-<div class="block">The procedure could be restarted from a different machine. If the variable is null, we need to
- retrieve it.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>traceEnabled</dd>
-</dl>
-</li>
-</ul>
 <a name="runCoprocessorAction-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>runCoprocessorAction</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.411">runCoprocessorAction</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#line.395">runCoprocessorAction</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)
                            throws <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
index 0e8e784..9a4caeb 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -214,10 +214,6 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#snapshot">snapshot</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#traceEnabled">traceEnabled</a></span></code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.procedure2.StateMachineProcedure">
@@ -365,55 +361,49 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 </td>
 </tr>
 <tr id="i12" class="altColor">
-<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#isTraceEnabled--">isTraceEnabled</a></span>()</code>
-<div class="block">The procedure could be restarted from a different machine.</div>
-</td>
-</tr>
-<tr id="i13" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#prepareRestore-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareRestore</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before any real action of restoring from snapshot.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#restoreSnapshot-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">restoreSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Execute the on-disk Restore</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#restoreSnapshotAcl-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">restoreSnapshotAcl</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState-">rollbackState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.proce [...]
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;state)</code>
 <div class="block">called to perform the rollback of the specified state</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>
 <div class="block">The user-level code of the procedure may have some state to
  persist (e.g.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</code>
 <div class="block">Extend the toString() information with the procedure details
  e.g.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#updateMETA-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">updateMETA</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Apply changes to hbase:meta</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#updateTableDescriptor-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">updateTableDescriptor</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Update descriptor</div>
@@ -537,21 +527,12 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <a name="monitorStatus">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>monitorStatus</h4>
 <pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.78">monitorStatus</a></pre>
 </li>
 </ul>
-<a name="traceEnabled">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>traceEnabled</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.80">traceEnabled</a></pre>
-</li>
-</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -566,7 +547,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>RestoreSnapshotProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.85">RestoreSnapshotProcedure</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.83">RestoreSnapshotProcedure</a>()</pre>
 <div class="block">Constructor (for failover)</div>
 </li>
 </ul>
@@ -576,7 +557,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>RestoreSnapshotProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.88">RestoreSnapshotProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.86">RestoreSnapshotProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                 <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                                 org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)
                          throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
@@ -592,7 +573,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RestoreSnapshotProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.100">RestoreSnapshotProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.98">RestoreSnapshotProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                 <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                                 org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
                                 boolean&nbsp;restoreAcl)
@@ -623,7 +604,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getMonitorStatus</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.121">getMonitorStatus</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.119">getMonitorStatus</a>()</pre>
 <div class="block">Set up monitor status if it is not created.</div>
 </li>
 </ul>
@@ -633,7 +614,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>executeFromState</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.130">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">M [...]
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.128">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">M [...]
                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;state)
                                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
@@ -656,7 +637,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>rollbackState</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.176">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.172">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;state)
                       throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
@@ -676,7 +657,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>isRollbackSupported</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.188">isRollbackSupported</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;state)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.184">isRollbackSupported</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">StateMachineProcedure</a></code></span></div>
 <div class="block">Used by the default implementation of abort() to know if the current state can be aborted
  and rollback can be triggered.</div>
@@ -692,7 +673,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.198">getState</a>(int&nbsp;stateId)</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.194">getState</a>(int&nbsp;stateId)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">StateMachineProcedure</a></code></span></div>
 <div class="block">Convert an ordinal (or state id) to an Enum (or more descriptive) state object.</div>
 <dl>
@@ -711,7 +692,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getStateId</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.203">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;state)</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.199">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">StateMachineProcedure</a></code></span></div>
 <div class="block">Convert the Enum (or more descriptive) state object to an ordinal (or state id).</div>
 <dl>
@@ -730,7 +711,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitialState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.208">getInitialState</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.204">getInitialState</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">StateMachineProcedure</a></code></span></div>
 <div class="block">Return the initial state object that will be used for the first call to executeFromState().</div>
 <dl>
@@ -747,7 +728,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableName</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.213">getTableName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.209">getTableName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableName--">getTableName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface</a></code></dd>
@@ -764,7 +745,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableOperationType</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.218">getTableOperationType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.214">getTableOperationType</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableOperationType--">TableProcedureInterface</a></code></span></div>
 <div class="block">Given an operation type we can take decisions about what to do with pending operations.
  e.g. if we get a delete and we have some table operation pending (e.g. add column)
@@ -785,7 +766,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.223">abort</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.219">abort</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">Procedure</a></code></span></div>
 <div class="block">The abort() call is asynchronous and each procedure must decide how to deal
  with it, if they want to be abortable. The simplest implementation
@@ -808,7 +789,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringClassDetails</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.229">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.225">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">Procedure</a></code></span></div>
 <div class="block">Extend the toString() information with the procedure details
  e.g. className and parameters</div>
@@ -826,7 +807,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>serializeStateData</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.239">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.235">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                            throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
 <div class="block">The user-level code of the procedure may have some state to
@@ -848,7 +829,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>deserializeStateData</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.282">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.278">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                              throws <a href="https://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 class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
 <div class="block">Called on store load to allow the user to decode the previously serialized
@@ -869,7 +850,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareRestore</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.334">prepareRestore</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.330">prepareRestore</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                      throws <a href="https://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">Action before any real action of restoring from snapshot.</div>
 <dl>
@@ -886,7 +867,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>updateTableDescriptor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.374">updateTableDescriptor</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.370">updateTableDescriptor</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                             throws <a href="https://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">Update descriptor</div>
 <dl>
@@ -903,7 +884,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.383">restoreSnapshot</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.379">restoreSnapshot</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                       throws <a href="https://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">Execute the on-disk Restore</div>
 <dl>
@@ -920,7 +901,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMETA</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.423">updateMETA</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.419">updateMETA</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                  throws <a href="https://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">Apply changes to hbase:meta</div>
 <dl>
@@ -937,7 +918,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteRegionsFromInMemoryStates</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.492">deleteRegionsFromInMemoryStates</a>(<a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionInfos,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.488">deleteRegionsFromInMemoryStates</a>(<a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionInfos,
                                              <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                              int&nbsp;regionReplication)</pre>
 <div class="block">Delete regions from in-memory states</div>
@@ -955,7 +936,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>addRegionsToInMemoryStates</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.524">addRegionsToInMemoryStates</a>(<a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionInfos,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.520">addRegionsToInMemoryStates</a>(<a href="https://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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionInfos,
                                         <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                         int&nbsp;regionReplication)</pre>
 <div class="block">Add regions to in-memory states</div>
@@ -970,10 +951,10 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <a name="restoreSnapshotAcl-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>restoreSnapshotAcl</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.543">restoreSnapshotAcl</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.539">restoreSnapshotAcl</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                          throws <a href="https://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>
@@ -981,21 +962,6 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 </dl>
 </li>
 </ul>
-<a name="isTraceEnabled--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>isTraceEnabled</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#line.558">isTraceEnabled</a>()</pre>
-<div class="block">The procedure could be restarted from a different machine. If the variable is null, we need to
- retrieve it.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>traceEnabled</dd>
-</dl>
-</li>
-</ul>
 </li>
 </ul>
 </li>
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 633b7c4..b0c994a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -218,8 +218,8 @@
 <ul>
 <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/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</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>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index ed4b8df..e9bbb1d 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -424,19 +424,19 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</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/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/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/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/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/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/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</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/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/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/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</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/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/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</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/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</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/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/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 0d7f55c..d6062b6 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -216,11 +216,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<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/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/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/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/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index db76bda..e074192 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -240,12 +240,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</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/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>
 <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/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/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/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 38b384e..e8b43ff 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -715,20 +715,20 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/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/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/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/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/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/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/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/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/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/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</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/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/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/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>
-<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/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/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/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>
 </ul>
 </li>
 </ul>
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 dc05e9f..1d583d6 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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</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>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index 8657be6..d570ad8 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -247,10 +247,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.RollRequestReason.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALActionsListener.RollRequestReason</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.RollRequestReason.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALActionsListener.RollRequestReason</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
 </ul>
 </li>
 </ul>
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 3aa879d..7d70035 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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <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>
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
deleted file mode 100644
index 31e55a2..0000000
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
+++ /dev/null
@@ -1,436 +0,0 @@
-<!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="https://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="https://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="https://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.707">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a>
-extends <a href="https://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="https://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="https://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="https://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="https://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="https://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="https://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="https://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> [...]
-</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="https://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="https://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="https://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="https://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="htt [...]
-</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="https://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="https://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="https://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="https://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 hre [...]
-</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.708">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.709">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.711">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.717">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.722">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.726">run</a>()</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="https://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="https://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="https://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="https://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.759">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;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
index 4165307..ba59c0e 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.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.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.767">RSGroupInfoManagerImpl.RSGroupStartupWorker</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.679">RSGroupInfoManagerImpl.RSGroupStartupWorker</a>
 extends <a href="https://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="https://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.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.768">LOG</a></pre>
+<pre>private final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.680">LOG</a></pre>
 </li>
 </ul>
 <a name="online">
@@ -264,7 +264,7 @@ extends <a href="https://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.769">online</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.681">online</a></pre>
 </li>
 </ul>
 </li>
@@ -281,7 +281,7 @@ extends <a href="https://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.771">RSGroupStartupWorker</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.683">RSGroupStartupWorker</a>()</pre>
 </li>
 </ul>
 </li>
@@ -298,7 +298,7 @@ extends <a href="https://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.777">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.689">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://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="https://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="https://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.785">waitForGroupTableOnline</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.697">waitForGroupTableOnline</a>()</pre>
 </li>
 </ul>
 <a name="createRSGroupTable--">
@@ -322,7 +322,7 @@ extends <a href="https://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.812">createRSGroupTable</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.724">createRSGroupTable</a>()
                          throws <a href="https://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="https://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.845">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.757">isOnline</a>()</pre>
 </li>
 </ul>
 </li>
@@ -367,7 +367,7 @@ extends <a href="https://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.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.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">
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
index 9f836bf..d426d25 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.654">RSGroupInfoManagerImpl.ServerEventsListenerThread</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.626">RSGroupInfoManagerImpl.ServerEventsListenerThread</a>
 extends <a href="https://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.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.655">LOG</a></pre>
+<pre>private final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.627">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.656">changed</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.628">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.658">ServerEventsListenerThread</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.630">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.663">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.635">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.668">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.640">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.672">serverChanged</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.644">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.678">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.650">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://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="https://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>
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
index 2ed8776..3d49e9a 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":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":9,"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,"i29":10,"i30":10,"i31":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":9,"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,"i29":10,"i30":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.FailedOpenUpdaterThread.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.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.html" target="_top">Frames</a></li>
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-final class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.107">RSGroupInfoManagerImpl</a>
+final class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.103">RSGroupInfoManagerImpl</a>
 extends <a href="https://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 use of an HBase table as the
@@ -155,13 +155,9 @@ 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.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">
+<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>updateDefaultServers(SortedSet)</code></a> to update list of known
@@ -188,44 +184,40 @@ 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.slf4j.Logger</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="rowColor">
+<tr class="altColor">
 <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="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="https://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="https://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="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</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="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="https://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="https://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="rowColor">
+<tr class="altColor">
 <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="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="https://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="https://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/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</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>
@@ -431,10 +423,6 @@ 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="https://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;& [...]
 </tr>
-<tr id="i31" class="rowColor">
-<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">
@@ -463,7 +451,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.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.108">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.104">LOG</a></pre>
 </li>
 </ul>
 <a name="RSGROUP_TABLE_DESC">
@@ -472,7 +460,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/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.111">RSGROUP_TABLE_DESC</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.107">RSGROUP_TABLE_DESC</a></pre>
 <div class="block">Table descriptor for <code>hbase:rsgroup</code> catalog table</div>
 </li>
 </ul>
@@ -482,7 +470,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="https://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="https://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/apac [...]
+<pre>private volatile&nbsp;<a href="https://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="https://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/apac [...]
 </li>
 </ul>
 <a name="tableMap">
@@ -491,7 +479,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="https://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="https://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/rsgr [...]
+<pre>private volatile&nbsp;<a href="https://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="https://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/rsgr [...]
 </li>
 </ul>
 <a name="masterServices">
@@ -500,7 +488,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.131">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.127">masterServices</a></pre>
 </li>
 </ul>
 <a name="conn">
@@ -509,7 +497,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/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.132">conn</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.128">conn</a></pre>
 </li>
 </ul>
 <a name="watcher">
@@ -518,7 +506,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/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.133">watcher</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.129">watcher</a></pre>
 </li>
 </ul>
 <a name="rsGroupStartupWorker">
@@ -527,7 +515,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.134">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.130">rsGroupStartupWorker</a></pre>
 </li>
 </ul>
 <a name="prevRSGroups">
@@ -536,25 +524,16 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>prevRSGroups</h4>
-<pre>private&nbsp;<a href="https://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="https://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">prevRSGroups</a></pre>
+<pre>private&nbsp;<a href="https://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="https://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.132">prevRSGroups</a></pre>
 </li>
 </ul>
 <a name="serverEventsListenerThread">
 <!--   -->
 </a>
-<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.137">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.139">failedOpenUpdaterThread</a></pre>
+<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.133">serverEventsListenerThread</a></pre>
 </li>
 </ul>
 </li>
@@ -571,7 +550,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.141">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.136">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="https://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>
@@ -593,7 +572,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.149">init</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.144">init</a>()
            throws <a href="https://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>
@@ -607,7 +586,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.158">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.150">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="https://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>
@@ -621,7 +600,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.164">start</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.156">start</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#start--">start</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a></code></dd>
@@ -634,7 +613,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.170">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.162">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="https://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>
@@ -652,7 +631,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.181">getRSGroupInfo</a>(<a href="https://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.173">getRSGroupInfo</a>(<a href="https://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>
@@ -666,7 +645,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineServers</h4>
-<pre>private static&nbsp;<a href="https://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.193">getOnlineServers</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.ht [...]
+<pre>private static&nbsp;<a href="https://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.185">getOnlineServers</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.ht [...]
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>master</code> - the master to get online servers for</dd>
@@ -681,7 +660,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>moveServers</h4>
-<pre>public&nbsp;<a href="https://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.206">moveServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=tru [...]
+<pre>public&nbsp;<a href="https://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.198">moveServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=tru [...]
                                 <a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -707,7 +686,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.236">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.228">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="https://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>
@@ -725,7 +704,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.246">getRSGroup</a>(<a href="https://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.238">getRSGroup</a>(<a href="https://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>
@@ -740,7 +719,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupOfTable</h4>
-<pre>public&nbsp;<a href="https://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.251">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="https://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.243">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>
@@ -755,7 +734,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.256">moveTables</a>(<a href="https://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.248">moveTables</a>(<a href="https://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="https://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="https://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>
@@ -777,7 +756,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.289">removeRSGroup</a>(<a href="https://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.281">removeRSGroup</a>(<a href="https://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="https://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>
@@ -795,7 +774,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>listRSGroups</h4>
-<pre>public&nbsp;<a href="https://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.300">listRSGroups</a>()</pre>
+<pre>public&nbsp;<a href="https://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.292">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>
@@ -810,7 +789,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.305">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.297">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>
@@ -827,7 +806,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.310">moveServersAndTables</a>(<a href="https://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.302">moveServersAndTables</a>(<a href="https://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="https://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="https://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="https://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)
@@ -853,7 +832,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>removeServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.335">removeServers</a>(<a href="https://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.327">removeServers</a>(<a href="https://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)
                    throws <a href="https://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#removeServers-java.util.Set-">RSGroupInfoManager</a></code></span></div>
 <div class="block">Remove decommissioned servers from rsgroup</div>
@@ -873,7 +852,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>retrieveGroupListFromGroupTable</h4>
-<pre><a href="https://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.360">retrieveGroupListFromGroupTable</a>()
+<pre><a href="https://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.352">retrieveGroupListFromGroupTable</a>()
                                            throws <a href="https://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>
@@ -887,7 +866,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>retrieveGroupListFromZookeeper</h4>
-<pre><a href="https://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.377">retrieveGroupListFromZookeeper</a>()
+<pre><a href="https://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.369">retrieveGroupListFromZookeeper</a>()
                                           throws <a href="https://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>
@@ -901,7 +880,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.406">refresh</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.398">refresh</a>()
              throws <a href="https://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>
@@ -919,7 +898,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.414">refresh</a>(boolean&nbsp;forceOnline)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.406">refresh</a>(boolean&nbsp;forceOnline)
               throws <a href="https://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>
@@ -935,7 +914,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>flushConfigTable</h4>
-<pre>private&nbsp;<a href="https://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="https://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/ [...]
+<pre>private&nbsp;<a href="https://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="https://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/ [...]
                                         throws <a href="https://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>
@@ -949,7 +928,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.485">flushConfig</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.477">flushConfig</a>()
                   throws <a href="https://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>
@@ -963,7 +942,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.489">flushConfig</a>(<a href="https://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="https://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/RSGroupI [...]
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.481">flushConfig</a>(<a href="https://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="https://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/RSGroupI [...]
                   throws <a href="https://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>
@@ -977,7 +956,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.564">resetRSGroupAndTableMaps</a>(<a href="https://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="https://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/rsg [...]
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.556">resetRSGroupAndTableMaps</a>(<a href="https://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="https://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/rsg [...]
                                       <a href="https://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="https://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>
 </li>
@@ -988,7 +967,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.575">updateCacheOfRSGroups</a>(<a href="https://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="https://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.567">updateCacheOfRSGroups</a>(<a href="https://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="https://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>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1002,7 +981,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineRS</h4>
-<pre>private&nbsp;<a href="https://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.581">getOnlineRS</a>()
+<pre>private&nbsp;<a href="https://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.573">getOnlineRS</a>()
                               throws <a href="https://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>
@@ -1016,7 +995,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getDefaultServers</h4>
-<pre>private&nbsp;<a href="https://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.598">getDefaultServers</a>()
+<pre>private&nbsp;<a href="https://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.590">getDefaultServers</a>()
                                       throws <a href="https://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>
@@ -1030,7 +1009,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.620">updateDefaultServers</a>(<a href="https://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.612">updateDefaultServers</a>(<a href="https://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="https://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>
@@ -1038,22 +1017,13 @@ 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.629">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.850">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.762">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-">
@@ -1062,7 +1032,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.854">multiMutate</a>(<a href="https://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.766">multiMutate</a>(<a href="https://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="https://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>
@@ -1076,7 +1046,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.884">checkGroupName</a>(<a href="https://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.796">checkGroupName</a>(<a href="https://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>
@@ -1113,7 +1083,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.FailedOpenUpdaterThread.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.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.html" target="_top">Frames</a></li>
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
deleted file mode 100644
index 3fde69d..0000000
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/class-use/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<!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;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-summary.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-summary.html
index 046469e..bead136 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-summary.html
@@ -147,14 +147,14 @@
  persistence store for the group information.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupMajorCompactionTTL.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupMajorCompactionTTL</a></td>
 <td class="colLast">
 <div class="block">This script takes an rsgroup as argument and compacts part/all of regions of that table
  based on the table's TTL.</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>
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-tree.html
index 174e0d0..6601add 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-tree.html
@@ -108,7 +108,6 @@
 <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="https://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="https://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>
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-use.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-use.html
index 8a1c156..22ee33f 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/package-use.html
@@ -149,12 +149,9 @@
 </td>
 </tr>
 <tr class="rowColor">
-<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">
+<tr class="altColor">
 <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>
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 4acc920..f9cc9c1 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -163,11 +163,11 @@
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.HDFSAclOperation.OperationType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.OperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType</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/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</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>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</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/SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType</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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index 25eb637..3f42ad7 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -192,9 +192,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index c4e6dcd..2d9b08d 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -211,9 +211,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <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/ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ImplType</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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index be6afe8..8ec1023 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -540,13 +540,13 @@
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <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/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/HbckErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HbckErrorReporter.ERROR_CODE</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/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/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/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/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/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/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/HbckErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HbckErrorReporter.ERROR_CODE</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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index 509eb11..2b04a85 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -3765,7 +3765,6 @@
 <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>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index 6b131de..8bff8ef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,9 +16,9 @@
 <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 = "56980fb097494af05805db09b1c2f442d139da81";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "090c55f3ff40dea807dc7e67240f19dcafb3865f";<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 = "Wed Aug 28 14:35:58 UTC 2019";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Fri Aug 30 14:35:14 UTC 2019";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://jenkins-websites-he-de.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
 <span class="sourceLineNo">015</span>  public static final String srcChecksum = "(stdin)=";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
index ef6e748..4dea096 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
@@ -820,1966 +820,1962 @@
 <span class="sourceLineNo">812</span><a name="line.812"></a>
 <span class="sourceLineNo">813</span>    RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.813"></a>
 <span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>    if (request.getRegionCount() != 2) {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      throw new ServiceException(new DoNotRetryIOException(<a name="line.816"></a>
-<span class="sourceLineNo">817</span>        "Only support merging 2 regions but " + request.getRegionCount() + " region passed"));<a name="line.817"></a>
-<span class="sourceLineNo">818</span>    }<a name="line.818"></a>
-<span class="sourceLineNo">819</span>    RegionInfo[] regionsToMerge = new RegionInfo[request.getRegionCount()];<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    for (int i = 0; i &lt; request.getRegionCount(); i++) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>      final byte[] encodedNameOfRegion = request.getRegion(i).getValue().toByteArray();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      if (request.getRegion(i).getType() != RegionSpecifierType.ENCODED_REGION_NAME) {<a name="line.822"></a>
-<span class="sourceLineNo">823</span>        LOG.warn("MergeRegions specifier type: expected: "<a name="line.823"></a>
-<span class="sourceLineNo">824</span>          + RegionSpecifierType.ENCODED_REGION_NAME + " actual: region " + i + " ="<a name="line.824"></a>
-<span class="sourceLineNo">825</span>          + request.getRegion(i).getType());<a name="line.825"></a>
-<span class="sourceLineNo">826</span>      }<a name="line.826"></a>
-<span class="sourceLineNo">827</span>      RegionState regionState = regionStates.getRegionState(Bytes.toString(encodedNameOfRegion));<a name="line.827"></a>
-<span class="sourceLineNo">828</span>      if (regionState == null) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>        throw new ServiceException(<a name="line.829"></a>
-<span class="sourceLineNo">830</span>          new UnknownRegionException(Bytes.toStringBinary(encodedNameOfRegion)));<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      }<a name="line.831"></a>
-<span class="sourceLineNo">832</span>      regionsToMerge[i] = regionState.getRegion();<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>    try {<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      long procId = master.mergeRegions(<a name="line.836"></a>
-<span class="sourceLineNo">837</span>        regionsToMerge,<a name="line.837"></a>
-<span class="sourceLineNo">838</span>        request.getForcible(),<a name="line.838"></a>
-<span class="sourceLineNo">839</span>        request.getNonceGroup(),<a name="line.839"></a>
-<span class="sourceLineNo">840</span>        request.getNonce());<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      return MergeTableRegionsResponse.newBuilder().setProcId(procId).build();<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    } catch (IOException ioe) {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      throw new ServiceException(ioe);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>    }<a name="line.844"></a>
-<span class="sourceLineNo">845</span>  }<a name="line.845"></a>
-<span class="sourceLineNo">846</span><a name="line.846"></a>
-<span class="sourceLineNo">847</span>  @Override<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  public SplitTableRegionResponse splitRegion(final RpcController controller,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final SplitTableRegionRequest request) throws ServiceException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    try {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      long procId = master.splitRegion(<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        ProtobufUtil.toRegionInfo(request.getRegionInfo()),<a name="line.852"></a>
-<span class="sourceLineNo">853</span>        request.hasSplitRow() ? request.getSplitRow().toByteArray() : null,<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        request.getNonceGroup(),<a name="line.854"></a>
-<span class="sourceLineNo">855</span>        request.getNonce());<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      return SplitTableRegionResponse.newBuilder().setProcId(procId).build();<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    } catch (IOException ie) {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      throw new ServiceException(ie);<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>  @Override<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    rpcPreCheck("execMasterService");<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    try {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      ServerRpcController execController = new ServerRpcController();<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      ClientProtos.CoprocessorServiceCall call = request.getCall();<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      String serviceName = call.getServiceName();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      String methodName = call.getMethodName();<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        throw new UnknownProtocolException(null,<a name="line.872"></a>
-<span class="sourceLineNo">873</span>          "No registered Master Coprocessor Endpoint found for " + serviceName +<a name="line.873"></a>
-<span class="sourceLineNo">874</span>          ". Has it been enabled?");<a name="line.874"></a>
-<span class="sourceLineNo">875</span>      }<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>      com.google.protobuf.Service service = master.coprocessorServiceHandlers.get(serviceName);<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.878"></a>
-<span class="sourceLineNo">879</span>      com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.879"></a>
-<span class="sourceLineNo">880</span>          CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.880"></a>
-<span class="sourceLineNo">881</span><a name="line.881"></a>
-<span class="sourceLineNo">882</span>      com.google.protobuf.Message execRequest =<a name="line.882"></a>
-<span class="sourceLineNo">883</span>          CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      final com.google.protobuf.Message.Builder responseBuilder =<a name="line.884"></a>
-<span class="sourceLineNo">885</span>          service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      service.callMethod(methodDesc, execController, execRequest,<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        (message) -&gt; {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>          if (message != null) {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>            responseBuilder.mergeFrom(message);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>          }<a name="line.890"></a>
-<span class="sourceLineNo">891</span>        });<a name="line.891"></a>
-<span class="sourceLineNo">892</span>      com.google.protobuf.Message execResult = responseBuilder.build();<a name="line.892"></a>
-<span class="sourceLineNo">893</span>      if (execController.getFailedOn() != null) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>        throw execController.getFailedOn();<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      return CoprocessorRpcUtils.getResponse(execResult, HConstants.EMPTY_BYTE_ARRAY);<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    } catch (IOException ie) {<a name="line.897"></a>
-<span class="sourceLineNo">898</span>      throw new ServiceException(ie);<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>  /**<a name="line.902"></a>
-<span class="sourceLineNo">903</span>   * Triggers an asynchronous attempt to run a distributed procedure.<a name="line.903"></a>
-<span class="sourceLineNo">904</span>   * {@inheritDoc}<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   */<a name="line.905"></a>
-<span class="sourceLineNo">906</span>  @Override<a name="line.906"></a>
-<span class="sourceLineNo">907</span>  public ExecProcedureResponse execProcedure(RpcController controller,<a name="line.907"></a>
-<span class="sourceLineNo">908</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>    try {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      master.checkInitialized();<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      ProcedureDescription desc = request.getProcedure();<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(<a name="line.912"></a>
-<span class="sourceLineNo">913</span>        desc.getSignature());<a name="line.913"></a>
-<span class="sourceLineNo">914</span>      if (mpm == null) {<a name="line.914"></a>
-<span class="sourceLineNo">915</span>        throw new ServiceException(new DoNotRetryIOException("The procedure is not registered: "<a name="line.915"></a>
-<span class="sourceLineNo">916</span>          + desc.getSignature()));<a name="line.916"></a>
-<span class="sourceLineNo">917</span>      }<a name="line.917"></a>
-<span class="sourceLineNo">918</span>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: " + desc.getSignature());<a name="line.918"></a>
-<span class="sourceLineNo">919</span>      mpm.checkPermissions(desc, getAccessChecker(), RpcServer.getRequestUser().orElse(null));<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      mpm.execProcedure(desc);<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      // send back the max amount of time the client should wait for the procedure<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      // to complete<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      long waitTime = SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME;<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      return ExecProcedureResponse.newBuilder().setExpectedTimeout(<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        waitTime).build();<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    } catch (ForeignException e) {<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      throw new ServiceException(e.getCause());<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    } catch (IOException e) {<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      throw new ServiceException(e);<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><a name="line.932"></a>
-<span class="sourceLineNo">933</span>  /**<a name="line.933"></a>
-<span class="sourceLineNo">934</span>   * Triggers a synchronous attempt to run a distributed procedure and sets<a name="line.934"></a>
-<span class="sourceLineNo">935</span>   * return data in response.<a name="line.935"></a>
-<span class="sourceLineNo">936</span>   * {@inheritDoc}<a name="line.936"></a>
-<span class="sourceLineNo">937</span>   */<a name="line.937"></a>
-<span class="sourceLineNo">938</span>  @Override<a name="line.938"></a>
-<span class="sourceLineNo">939</span>  public ExecProcedureResponse execProcedureWithRet(RpcController controller,<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>    rpcPreCheck("execProcedureWithRet");<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    try {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      ProcedureDescription desc = request.getProcedure();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>      MasterProcedureManager mpm =<a name="line.944"></a>
-<span class="sourceLineNo">945</span>        master.getMasterProcedureManagerHost().getProcedureManager(desc.getSignature());<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      if (mpm == null) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>        throw new ServiceException("The procedure is not registered: " + desc.getSignature());<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      }<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: " + desc.getSignature());<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      byte[] data = mpm.execProcedureWithRet(desc);<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      ExecProcedureResponse.Builder builder = ExecProcedureResponse.newBuilder();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      // set return data if available<a name="line.952"></a>
-<span class="sourceLineNo">953</span>      if (data != null) {<a name="line.953"></a>
-<span class="sourceLineNo">954</span>        builder.setReturnData(UnsafeByteOperations.unsafeWrap(data));<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      }<a name="line.955"></a>
-<span class="sourceLineNo">956</span>      return builder.build();<a name="line.956"></a>
-<span class="sourceLineNo">957</span>    } catch (IOException e) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>      throw new ServiceException(e);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    }<a name="line.959"></a>
-<span class="sourceLineNo">960</span>  }<a name="line.960"></a>
-<span class="sourceLineNo">961</span><a name="line.961"></a>
-<span class="sourceLineNo">962</span>  @Override<a name="line.962"></a>
-<span class="sourceLineNo">963</span>  public GetClusterStatusResponse getClusterStatus(RpcController controller,<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      GetClusterStatusRequest req) throws ServiceException {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>    GetClusterStatusResponse.Builder response = GetClusterStatusResponse.newBuilder();<a name="line.965"></a>
-<span class="sourceLineNo">966</span>    try {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      master.checkInitialized();<a name="line.967"></a>
-<span class="sourceLineNo">968</span>      response.setClusterStatus(ClusterMetricsBuilder.toClusterStatus(<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        master.getClusterMetrics(ClusterMetricsBuilder.toOptions(req.getOptionsList()))));<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    } catch (IOException e) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>      throw new ServiceException(e);<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    }<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    return response.build();<a name="line.973"></a>
-<span class="sourceLineNo">974</span>  }<a name="line.974"></a>
-<span class="sourceLineNo">975</span><a name="line.975"></a>
-<span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * List the currently available/stored snapshots. Any in-progress snapshots are ignored<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   */<a name="line.978"></a>
-<span class="sourceLineNo">979</span>  @Override<a name="line.979"></a>
-<span class="sourceLineNo">980</span>  public GetCompletedSnapshotsResponse getCompletedSnapshots(RpcController controller,<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      GetCompletedSnapshotsRequest request) throws ServiceException {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    try {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      master.checkInitialized();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      GetCompletedSnapshotsResponse.Builder builder = GetCompletedSnapshotsResponse.newBuilder();<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      List&lt;SnapshotDescription&gt; snapshots = master.snapshotManager.getCompletedSnapshots();<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>      // convert to protobuf<a name="line.987"></a>
-<span class="sourceLineNo">988</span>      for (SnapshotDescription snapshot : snapshots) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>        builder.addSnapshots(snapshot);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>      }<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      return builder.build();<a name="line.991"></a>
-<span class="sourceLineNo">992</span>    } catch (IOException e) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>      throw new ServiceException(e);<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><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  @Override<a name="line.997"></a>
-<span class="sourceLineNo">998</span>  public ListNamespacesResponse listNamespaces(<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      RpcController controller, ListNamespacesRequest request)<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      throws ServiceException {<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    try {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>      return ListNamespacesResponse.newBuilder()<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>        .addAllNamespaceName(master.listNamespaces())<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        .build();<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      throw new ServiceException(e);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    }<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  @Override<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>  public GetNamespaceDescriptorResponse getNamespaceDescriptor(<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      RpcController controller, GetNamespaceDescriptorRequest request)<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>      throws ServiceException {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    try {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      return GetNamespaceDescriptorResponse.newBuilder()<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        .setNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>            master.getNamespace(request.getNamespaceName())))<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        .build();<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    } catch (IOException e) {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      throw new ServiceException(e);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>  }<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>   * Get the number of regions of the table that have been updated by the alter.<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>   *<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>   * @return Pair indicating the number of regions updated Pair.getFirst is the<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>   *         regions that are yet to be updated Pair.getSecond is the total number<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   *         of regions of the table<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * @throws ServiceException<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   */<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>  @Override<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>  public GetSchemaAlterStatusResponse getSchemaAlterStatus(<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      RpcController controller, GetSchemaAlterStatusRequest req) throws ServiceException {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    // TODO: currently, we query using the table name on the client side. this<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    // may overlap with other table operations or the table operation may<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>    // have completed before querying this API. We need to refactor to a<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>    // transaction system in the future to avoid these ambiguities.<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    TableName tableName = ProtobufUtil.toTableName(req.getTableName());<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span><a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    try {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      master.checkInitialized();<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      Pair&lt;Integer,Integer&gt; pair = master.getAssignmentManager().getReopenStatus(tableName);<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      GetSchemaAlterStatusResponse.Builder ret = GetSchemaAlterStatusResponse.newBuilder();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>      ret.setYetToUpdateRegions(pair.getFirst());<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      ret.setTotalRegions(pair.getSecond());<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      return ret.build();<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    } catch (IOException ioe) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      throw new ServiceException(ioe);<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>  }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>  /**<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>   * Get list of TableDescriptors for requested tables.<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>   * @param c Unused (set to null).<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>   * @param req GetTableDescriptorsRequest that contains:<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>   * - tableNames: requested tables, or if empty, all are requested<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>   * @return GetTableDescriptorsResponse<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>   * @throws ServiceException<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>   */<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>  @Override<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public GetTableDescriptorsResponse getTableDescriptors(RpcController c,<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>      GetTableDescriptorsRequest req) throws ServiceException {<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>    try {<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      master.checkInitialized();<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span><a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>      List&lt;TableName&gt; tableNameList = null;<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      if (req.getTableNamesCount() &gt; 0) {<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        tableNameList = new ArrayList&lt;TableName&gt;(req.getTableNamesCount());<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>        for (HBaseProtos.TableName tableNamePB: req.getTableNamesList()) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>          tableNameList.add(ProtobufUtil.toTableName(tableNamePB));<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>        }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      }<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span><a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      List&lt;TableDescriptor&gt; descriptors = master.listTableDescriptors(namespace, regex,<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>          tableNameList, req.getIncludeSysTables());<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span><a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      GetTableDescriptorsResponse.Builder builder = GetTableDescriptorsResponse.newBuilder();<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>      if (descriptors != null &amp;&amp; descriptors.size() &gt; 0) {<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>        // Add the table descriptors to the response<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        for (TableDescriptor htd: descriptors) {<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>          builder.addTableSchema(ProtobufUtil.toTableSchema(htd));<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        }<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      }<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      return builder.build();<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    } catch (IOException ioe) {<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      throw new ServiceException(ioe);<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  /**<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>   * Get list of userspace table names<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>   * @param controller Unused (set to null).<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>   * @param req GetTableNamesRequest<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>   * @return GetTableNamesResponse<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>   * @throws ServiceException<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>   */<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  @Override<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  public GetTableNamesResponse getTableNames(RpcController controller,<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>      GetTableNamesRequest req) throws ServiceException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    try {<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>      master.checkServiceStarted();<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span><a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>      List&lt;TableName&gt; tableNames = master.listTableNames(namespace, regex,<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>          req.getIncludeSysTables());<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      GetTableNamesResponse.Builder builder = GetTableNamesResponse.newBuilder();<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>      if (tableNames != null &amp;&amp; tableNames.size() &gt; 0) {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>        // Add the table names to the response<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>        for (TableName table: tableNames) {<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>          builder.addTableNames(ProtobufUtil.toProtoTableName(table));<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>        }<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      }<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>      return builder.build();<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    } catch (IOException e) {<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>      throw new ServiceException(e);<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>  }<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span><a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  @Override<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>  public GetTableStateResponse getTableState(RpcController controller,<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>      GetTableStateRequest request) throws ServiceException {<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>    try {<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>      master.checkServiceStarted();<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>      TableState ts = master.getTableStateManager().getTableState(tableName);<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>      GetTableStateResponse.Builder builder = GetTableStateResponse.newBuilder();<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>      builder.setTableState(ts.convert());<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>      return builder.build();<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    } catch (IOException e) {<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>      throw new ServiceException(e);<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    }<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  @Override<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>  public IsCatalogJanitorEnabledResponse isCatalogJanitorEnabled(RpcController c,<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      IsCatalogJanitorEnabledRequest req) throws ServiceException {<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>    return IsCatalogJanitorEnabledResponse.newBuilder().setValue(<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      master.isCatalogJanitorEnabled()).build();<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>  }<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span><a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>  @Override<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>  public IsCleanerChoreEnabledResponse isCleanerChoreEnabled(RpcController c,<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>                                                             IsCleanerChoreEnabledRequest req)<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>    throws ServiceException {<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>    return IsCleanerChoreEnabledResponse.newBuilder().setValue(master.isCleanerChoreEnabled())<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>                                        .build();<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>  }<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span><a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>  @Override<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  public IsMasterRunningResponse isMasterRunning(RpcController c,<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>      IsMasterRunningRequest req) throws ServiceException {<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>    try {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      master.checkServiceStarted();<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>      return IsMasterRunningResponse.newBuilder().setIsMasterRunning(<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>        !master.isStopped()).build();<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } catch (IOException e) {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      throw new ServiceException(e);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Checks if the specified procedure is done.<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @return true if the procedure is done, false if the procedure is in the process of completing<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @throws ServiceException if invalid procedure or failed procedure with progress failure reason.<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   */<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  @Override<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>  public IsProcedureDoneResponse isProcedureDone(RpcController controller,<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>      IsProcedureDoneRequest request) throws ServiceException {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    try {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      master.checkInitialized();<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      ProcedureDescription desc = request.getProcedure();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>      MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>        desc.getSignature());<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      if (mpm == null) {<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>        throw new ServiceException("The procedure is not registered: "<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>          + desc.getSignature());<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>      }<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      LOG.debug("Checking to see if procedure from request:"<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        + desc.getSignature() + " is done");<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span><a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>      IsProcedureDoneResponse.Builder builder =<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>        IsProcedureDoneResponse.newBuilder();<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>      boolean done = mpm.isProcedureDone(desc);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>      builder.setDone(done);<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>      return builder.build();<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>    } catch (ForeignException e) {<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      throw new ServiceException(e.getCause());<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>    } catch (IOException e) {<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>      throw new ServiceException(e);<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>    }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>  }<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span><a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>  /**<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>   * Checks if the specified snapshot is done.<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>   * @return true if the snapshot is in file system ready to use,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>   *   false if the snapshot is in the process of completing<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>   * @throws ServiceException wrapping UnknownSnapshotException if invalid snapshot, or<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>   *  a wrapped HBaseSnapshotException with progress failure reason.<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   */<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>  @Override<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>  public IsSnapshotDoneResponse isSnapshotDone(RpcController controller,<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      IsSnapshotDoneRequest request) throws ServiceException {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    LOG.debug("Checking to see if snapshot from request:" +<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      ClientSnapshotDescriptionUtils.toString(request.getSnapshot()) + " is done");<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    try {<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      master.checkInitialized();<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      IsSnapshotDoneResponse.Builder builder = IsSnapshotDoneResponse.newBuilder();<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      boolean done = master.snapshotManager.isSnapshotDone(request.getSnapshot());<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>      builder.setDone(done);<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      return builder.build();<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>    } catch (ForeignException e) {<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      throw new ServiceException(e.getCause());<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    } catch (IOException e) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      throw new ServiceException(e);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  @Override<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  public GetProcedureResultResponse getProcedureResult(RpcController controller,<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      GetProcedureResultRequest request) throws ServiceException {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>    LOG.debug("Checking to see if procedure is done pid=" + request.getProcId());<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    try {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>      master.checkInitialized();<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>      GetProcedureResultResponse.Builder builder = GetProcedureResultResponse.newBuilder();<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>      long procId = request.getProcId();<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      ProcedureExecutor&lt;?&gt; executor = master.getMasterProcedureExecutor();<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      Procedure&lt;?&gt; result = executor.getResultOrProcedure(procId);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      if (result != null) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        builder.setSubmittedTime(result.getSubmittedTime());<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        builder.setLastUpdate(result.getLastUpdate());<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        if (executor.isFinished(procId)) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          builder.setState(GetProcedureResultResponse.State.FINISHED);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>          if (result.isFailed()) {<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>            IOException exception =<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>                MasterProcedureUtil.unwrapRemoteIOException(result);<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>            builder.setException(ForeignExceptionUtil.toProtoForeignException(exception));<a name="line.1241"></a>
+<span class="sourceLineNo">815</span>    RegionInfo[] regionsToMerge = new RegionInfo[request.getRegionCount()];<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    for (int i = 0; i &lt; request.getRegionCount(); i++) {<a name="line.816"></a>
+<span class="sourceLineNo">817</span>      final byte[] encodedNameOfRegion = request.getRegion(i).getValue().toByteArray();<a name="line.817"></a>
+<span class="sourceLineNo">818</span>      if (request.getRegion(i).getType() != RegionSpecifierType.ENCODED_REGION_NAME) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        LOG.warn("MergeRegions specifier type: expected: "<a name="line.819"></a>
+<span class="sourceLineNo">820</span>          + RegionSpecifierType.ENCODED_REGION_NAME + " actual: region " + i + " ="<a name="line.820"></a>
+<span class="sourceLineNo">821</span>          + request.getRegion(i).getType());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>      }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>      RegionState regionState = regionStates.getRegionState(Bytes.toString(encodedNameOfRegion));<a name="line.823"></a>
+<span class="sourceLineNo">824</span>      if (regionState == null) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>        throw new ServiceException(<a name="line.825"></a>
+<span class="sourceLineNo">826</span>          new UnknownRegionException(Bytes.toStringBinary(encodedNameOfRegion)));<a name="line.826"></a>
+<span class="sourceLineNo">827</span>      }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>      regionsToMerge[i] = regionState.getRegion();<a name="line.828"></a>
+<span class="sourceLineNo">829</span>    }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>    try {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      long procId = master.mergeRegions(<a name="line.832"></a>
+<span class="sourceLineNo">833</span>        regionsToMerge,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>        request.getForcible(),<a name="line.834"></a>
+<span class="sourceLineNo">835</span>        request.getNonceGroup(),<a name="line.835"></a>
+<span class="sourceLineNo">836</span>        request.getNonce());<a name="line.836"></a>
+<span class="sourceLineNo">837</span>      return MergeTableRegionsResponse.newBuilder().setProcId(procId).build();<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    } catch (IOException ioe) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>      throw new ServiceException(ioe);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>  public SplitTableRegionResponse splitRegion(final RpcController controller,<a name="line.844"></a>
+<span class="sourceLineNo">845</span>      final SplitTableRegionRequest request) throws ServiceException {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    try {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      long procId = master.splitRegion(<a name="line.847"></a>
+<span class="sourceLineNo">848</span>        ProtobufUtil.toRegionInfo(request.getRegionInfo()),<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        request.hasSplitRow() ? request.getSplitRow().toByteArray() : null,<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        request.getNonceGroup(),<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        request.getNonce());<a name="line.851"></a>
+<span class="sourceLineNo">852</span>      return SplitTableRegionResponse.newBuilder().setProcId(procId).build();<a name="line.852"></a>
+<span class="sourceLineNo">853</span>    } catch (IOException ie) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      throw new ServiceException(ie);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  @Override<a name="line.858"></a>
+<span class="sourceLineNo">859</span>  public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    rpcPreCheck("execMasterService");<a name="line.861"></a>
+<span class="sourceLineNo">862</span>    try {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>      ServerRpcController execController = new ServerRpcController();<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      ClientProtos.CoprocessorServiceCall call = request.getCall();<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      String serviceName = call.getServiceName();<a name="line.865"></a>
+<span class="sourceLineNo">866</span>      String methodName = call.getMethodName();<a name="line.866"></a>
+<span class="sourceLineNo">867</span>      if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        throw new UnknownProtocolException(null,<a name="line.868"></a>
+<span class="sourceLineNo">869</span>          "No registered Master Coprocessor Endpoint found for " + serviceName +<a name="line.869"></a>
+<span class="sourceLineNo">870</span>          ". Has it been enabled?");<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>      com.google.protobuf.Service service = master.coprocessorServiceHandlers.get(serviceName);<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.874"></a>
+<span class="sourceLineNo">875</span>      com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.875"></a>
+<span class="sourceLineNo">876</span>          CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>      com.google.protobuf.Message execRequest =<a name="line.878"></a>
+<span class="sourceLineNo">879</span>          CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.879"></a>
+<span class="sourceLineNo">880</span>      final com.google.protobuf.Message.Builder responseBuilder =<a name="line.880"></a>
+<span class="sourceLineNo">881</span>          service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.881"></a>
+<span class="sourceLineNo">882</span>      service.callMethod(methodDesc, execController, execRequest,<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        (message) -&gt; {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>          if (message != null) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>            responseBuilder.mergeFrom(message);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>          }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>        });<a name="line.887"></a>
+<span class="sourceLineNo">888</span>      com.google.protobuf.Message execResult = responseBuilder.build();<a name="line.888"></a>
+<span class="sourceLineNo">889</span>      if (execController.getFailedOn() != null) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        throw execController.getFailedOn();<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      }<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      return CoprocessorRpcUtils.getResponse(execResult, HConstants.EMPTY_BYTE_ARRAY);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    } catch (IOException ie) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>      throw new ServiceException(ie);<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>  }<a name="line.896"></a>
+<span class="sourceLineNo">897</span><a name="line.897"></a>
+<span class="sourceLineNo">898</span>  /**<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Triggers an asynchronous attempt to run a distributed procedure.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * {@inheritDoc}<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   */<a name="line.901"></a>
+<span class="sourceLineNo">902</span>  @Override<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public ExecProcedureResponse execProcedure(RpcController controller,<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    try {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>      master.checkInitialized();<a name="line.906"></a>
+<span class="sourceLineNo">907</span>      ProcedureDescription desc = request.getProcedure();<a name="line.907"></a>
+<span class="sourceLineNo">908</span>      MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        desc.getSignature());<a name="line.909"></a>
+<span class="sourceLineNo">910</span>      if (mpm == null) {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        throw new ServiceException(new DoNotRetryIOException("The procedure is not registered: "<a name="line.911"></a>
+<span class="sourceLineNo">912</span>          + desc.getSignature()));<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: " + desc.getSignature());<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      mpm.checkPermissions(desc, getAccessChecker(), RpcServer.getRequestUser().orElse(null));<a name="line.915"></a>
+<span class="sourceLineNo">916</span>      mpm.execProcedure(desc);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>      // send back the max amount of time the client should wait for the procedure<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      // to complete<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      long waitTime = SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME;<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return ExecProcedureResponse.newBuilder().setExpectedTimeout(<a name="line.920"></a>
+<span class="sourceLineNo">921</span>        waitTime).build();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>    } catch (ForeignException e) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>      throw new ServiceException(e.getCause());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>    } catch (IOException e) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      throw new ServiceException(e);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>  }<a name="line.927"></a>
+<span class="sourceLineNo">928</span><a name="line.928"></a>
+<span class="sourceLineNo">929</span>  /**<a name="line.929"></a>
+<span class="sourceLineNo">930</span>   * Triggers a synchronous attempt to run a distributed procedure and sets<a name="line.930"></a>
+<span class="sourceLineNo">931</span>   * return data in response.<a name="line.931"></a>
+<span class="sourceLineNo">932</span>   * {@inheritDoc}<a name="line.932"></a>
+<span class="sourceLineNo">933</span>   */<a name="line.933"></a>
+<span class="sourceLineNo">934</span>  @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>  public ExecProcedureResponse execProcedureWithRet(RpcController controller,<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    rpcPreCheck("execProcedureWithRet");<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    try {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>      ProcedureDescription desc = request.getProcedure();<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      MasterProcedureManager mpm =<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        master.getMasterProcedureManagerHost().getProcedureManager(desc.getSignature());<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      if (mpm == null) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        throw new ServiceException("The procedure is not registered: " + desc.getSignature());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: " + desc.getSignature());<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      byte[] data = mpm.execProcedureWithRet(desc);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>      ExecProcedureResponse.Builder builder = ExecProcedureResponse.newBuilder();<a name="line.947"></a>
+<span class="sourceLineNo">948</span>      // set return data if available<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      if (data != null) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        builder.setReturnData(UnsafeByteOperations.unsafeWrap(data));<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      return builder.build();<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    } catch (IOException e) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      throw new ServiceException(e);<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>  @Override<a name="line.958"></a>
+<span class="sourceLineNo">959</span>  public GetClusterStatusResponse getClusterStatus(RpcController controller,<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      GetClusterStatusRequest req) throws ServiceException {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    GetClusterStatusResponse.Builder response = GetClusterStatusResponse.newBuilder();<a name="line.961"></a>
+<span class="sourceLineNo">962</span>    try {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>      master.checkInitialized();<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      response.setClusterStatus(ClusterMetricsBuilder.toClusterStatus(<a name="line.964"></a>
+<span class="sourceLineNo">965</span>        master.getClusterMetrics(ClusterMetricsBuilder.toOptions(req.getOptionsList()))));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    } catch (IOException e) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      throw new ServiceException(e);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    return response.build();<a name="line.969"></a>
+<span class="sourceLineNo">970</span>  }<a name="line.970"></a>
+<span class="sourceLineNo">971</span><a name="line.971"></a>
+<span class="sourceLineNo">972</span>  /**<a name="line.972"></a>
+<span class="sourceLineNo">973</span>   * List the currently available/stored snapshots. Any in-progress snapshots are ignored<a name="line.973"></a>
+<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
+<span class="sourceLineNo">975</span>  @Override<a name="line.975"></a>
+<span class="sourceLineNo">976</span>  public GetCompletedSnapshotsResponse getCompletedSnapshots(RpcController controller,<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      GetCompletedSnapshotsRequest request) throws ServiceException {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    try {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      master.checkInitialized();<a name="line.979"></a>
+<span class="sourceLineNo">980</span>      GetCompletedSnapshotsResponse.Builder builder = GetCompletedSnapshotsResponse.newBuilder();<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      List&lt;SnapshotDescription&gt; snapshots = master.snapshotManager.getCompletedSnapshots();<a name="line.981"></a>
+<span class="sourceLineNo">982</span><a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // convert to protobuf<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      for (SnapshotDescription snapshot : snapshots) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        builder.addSnapshots(snapshot);<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      return builder.build();<a name="line.987"></a>
+<span class="sourceLineNo">988</span>    } catch (IOException e) {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      throw new ServiceException(e);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span>  }<a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>  @Override<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  public ListNamespacesResponse listNamespaces(<a name="line.994"></a>
+<span class="sourceLineNo">995</span>      RpcController controller, ListNamespacesRequest request)<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      throws ServiceException {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    try {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>      return ListNamespacesResponse.newBuilder()<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        .addAllNamespaceName(master.listNamespaces())<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>        .build();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    } catch (IOException e) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>      throw new ServiceException(e);<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><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>  @Override<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>  public GetNamespaceDescriptorResponse getNamespaceDescriptor(<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>      RpcController controller, GetNamespaceDescriptorRequest request)<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      throws ServiceException {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>    try {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      return GetNamespaceDescriptorResponse.newBuilder()<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        .setNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            master.getNamespace(request.getNamespaceName())))<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        .build();<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    } catch (IOException e) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      throw new ServiceException(e);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>  }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span><a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>  /**<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>   * Get the number of regions of the table that have been updated by the alter.<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>   *<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>   * @return Pair indicating the number of regions updated Pair.getFirst is the<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>   *         regions that are yet to be updated Pair.getSecond is the total number<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>   *         of regions of the table<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>   * @throws ServiceException<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>   */<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  @Override<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>  public GetSchemaAlterStatusResponse getSchemaAlterStatus(<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      RpcController controller, GetSchemaAlterStatusRequest req) throws ServiceException {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>    // TODO: currently, we query using the table name on the client side. this<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>    // may overlap with other table operations or the table operation may<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    // have completed before querying this API. We need to refactor to a<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    // transaction system in the future to avoid these ambiguities.<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    TableName tableName = ProtobufUtil.toTableName(req.getTableName());<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    try {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      master.checkInitialized();<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>      Pair&lt;Integer,Integer&gt; pair = master.getAssignmentManager().getReopenStatus(tableName);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      GetSchemaAlterStatusResponse.Builder ret = GetSchemaAlterStatusResponse.newBuilder();<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      ret.setYetToUpdateRegions(pair.getFirst());<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>      ret.setTotalRegions(pair.getSecond());<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>      return ret.build();<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    } catch (IOException ioe) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>      throw new ServiceException(ioe);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>    }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>  }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span><a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>  /**<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>   * Get list of TableDescriptors for requested tables.<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>   * @param c Unused (set to null).<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>   * @param req GetTableDescriptorsRequest that contains:<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>   * - tableNames: requested tables, or if empty, all are requested<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>   * @return GetTableDescriptorsResponse<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>   * @throws ServiceException<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>   */<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  @Override<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>  public GetTableDescriptorsResponse getTableDescriptors(RpcController c,<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      GetTableDescriptorsRequest req) throws ServiceException {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>    try {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>      master.checkInitialized();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span><a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      List&lt;TableName&gt; tableNameList = null;<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (req.getTableNamesCount() &gt; 0) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        tableNameList = new ArrayList&lt;TableName&gt;(req.getTableNamesCount());<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        for (HBaseProtos.TableName tableNamePB: req.getTableNamesList()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>          tableNameList.add(ProtobufUtil.toTableName(tableNamePB));<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>        }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      List&lt;TableDescriptor&gt; descriptors = master.listTableDescriptors(namespace, regex,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>          tableNameList, req.getIncludeSysTables());<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      GetTableDescriptorsResponse.Builder builder = GetTableDescriptorsResponse.newBuilder();<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>      if (descriptors != null &amp;&amp; descriptors.size() &gt; 0) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>        // Add the table descriptors to the response<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>        for (TableDescriptor htd: descriptors) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>          builder.addTableSchema(ProtobufUtil.toTableSchema(htd));<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      }<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      return builder.build();<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>    } catch (IOException ioe) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      throw new ServiceException(ioe);<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Get list of userspace table names<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param controller Unused (set to null).<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param req GetTableNamesRequest<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return GetTableNamesResponse<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   * @throws ServiceException<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>   */<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>  @Override<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public GetTableNamesResponse getTableNames(RpcController controller,<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      GetTableNamesRequest req) throws ServiceException {<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    try {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>      master.checkServiceStarted();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      List&lt;TableName&gt; tableNames = master.listTableNames(namespace, regex,<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>          req.getIncludeSysTables());<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>      GetTableNamesResponse.Builder builder = GetTableNamesResponse.newBuilder();<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      if (tableNames != null &amp;&amp; tableNames.size() &gt; 0) {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>        // Add the table names to the response<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>        for (TableName table: tableNames) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>          builder.addTableNames(ProtobufUtil.toProtoTableName(table));<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>      }<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>      return builder.build();<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    } catch (IOException e) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      throw new ServiceException(e);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    }<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>  }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>  @Override<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  public GetTableStateResponse getTableState(RpcController controller,<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>      GetTableStateRequest request) throws ServiceException {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>    try {<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>      master.checkServiceStarted();<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>      TableState ts = master.getTableStateManager().getTableState(tableName);<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      GetTableStateResponse.Builder builder = GetTableStateResponse.newBuilder();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      builder.setTableState(ts.convert());<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      return builder.build();<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    } catch (IOException e) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      throw new ServiceException(e);<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span><a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>  @Override<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>  public IsCatalogJanitorEnabledResponse isCatalogJanitorEnabled(RpcController c,<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>      IsCatalogJanitorEnabledRequest req) throws ServiceException {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return IsCatalogJanitorEnabledResponse.newBuilder().setValue(<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>      master.isCatalogJanitorEnabled()).build();<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>  }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span><a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>  @Override<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  public IsCleanerChoreEnabledResponse isCleanerChoreEnabled(RpcController c,<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                                             IsCleanerChoreEnabledRequest req)<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    throws ServiceException {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    return IsCleanerChoreEnabledResponse.newBuilder().setValue(master.isCleanerChoreEnabled())<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        .build();<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>  }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span><a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>  @Override<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  public IsMasterRunningResponse isMasterRunning(RpcController c,<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      IsMasterRunningRequest req) throws ServiceException {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    try {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>      master.checkServiceStarted();<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      return IsMasterRunningResponse.newBuilder().setIsMasterRunning(<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        !master.isStopped()).build();<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    } catch (IOException e) {<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>      throw new ServiceException(e);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span><a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>  /**<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * Checks if the specified procedure is done.<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   * @return true if the procedure is done, false if the procedure is in the process of completing<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>   * @throws ServiceException if invalid procedure or failed procedure with progress failure reason.<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>   */<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>  @Override<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  public IsProcedureDoneResponse isProcedureDone(RpcController controller,<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>      IsProcedureDoneRequest request) throws ServiceException {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    try {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>      master.checkInitialized();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>      ProcedureDescription desc = request.getProcedure();<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>      MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>        desc.getSignature());<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>      if (mpm == null) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>        throw new ServiceException("The procedure is not registered: "<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>          + desc.getSignature());<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>      }<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>      LOG.debug("Checking to see if procedure from request:"<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>        + desc.getSignature() + " is done");<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>      IsProcedureDoneResponse.Builder builder =<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>        IsProcedureDoneResponse.newBuilder();<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      boolean done = mpm.isProcedureDone(desc);<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>      builder.setDone(done);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>      return builder.build();<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>    } catch (ForeignException e) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>      throw new ServiceException(e.getCause());<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>    } catch (IOException e) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>      throw new ServiceException(e);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>    }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>  }<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span><a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>  /**<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>   * Checks if the specified snapshot is done.<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>   * @return true if the snapshot is in file system ready to use,<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>   *   false if the snapshot is in the process of completing<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>   * @throws ServiceException wrapping UnknownSnapshotException if invalid snapshot, or<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>   *  a wrapped HBaseSnapshotException with progress failure reason.<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>   */<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>  @Override<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>  public IsSnapshotDoneResponse isSnapshotDone(RpcController controller,<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>      IsSnapshotDoneRequest request) throws ServiceException {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>    LOG.debug("Checking to see if snapshot from request:" +<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>      ClientSnapshotDescriptionUtils.toString(request.getSnapshot()) + " is done");<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    try {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>      master.checkInitialized();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      IsSnapshotDoneResponse.Builder builder = IsSnapshotDoneResponse.newBuilder();<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>      boolean done = master.snapshotManager.isSnapshotDone(request.getSnapshot());<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      builder.setDone(done);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      return builder.build();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    } catch (ForeignException e) {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>      throw new ServiceException(e.getCause());<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    } catch (IOException e) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      throw new ServiceException(e);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>    }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>  }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  @Override<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>  public GetProcedureResultResponse getProcedureResult(RpcController controller,<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      GetProcedureResultRequest request) throws ServiceException {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    LOG.debug("Checking to see if procedure is done pid=" + request.getProcId());<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    try {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      master.checkInitialized();<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      GetProcedureResultResponse.Builder builder = GetProcedureResultResponse.newBuilder();<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      long procId = request.getProcId();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>      ProcedureExecutor&lt;?&gt; executor = master.getMasterProcedureExecutor();<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>      Procedure&lt;?&gt; result = executor.getResultOrProcedure(procId);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>      if (result != null) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>        builder.setSubmittedTime(result.getSubmittedTime());<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>        builder.setLastUpdate(result.getLastUpdate());<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>        if (executor.isFinished(procId)) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>          builder.setState(GetProcedureResultResponse.State.FINISHED);<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>          if (result.isFailed()) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>            IOException exception =<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                MasterProcedureUtil.unwrapRemoteIOException(result);<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>            builder.setException(ForeignExceptionUtil.toProtoForeignException(exception));<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>          }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>          byte[] resultData = result.getResult();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>          if (resultData != null) {<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>            builder.setResult(UnsafeByteOperations.unsafeWrap(resultData));<a name="line.1241"></a>
 <span class="sourceLineNo">1242</span>          }<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>          byte[] resultData = result.getResult();<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          if (resultData != null) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>            builder.setResult(UnsafeByteOperations.unsafeWrap(resultData));<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>          }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          master.getMasterProcedureExecutor().removeResult(request.getProcId());<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } else {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          builder.setState(GetProcedureResultResponse.State.RUNNING);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      } else {<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>        builder.setState(GetProcedureResultResponse.State.NOT_FOUND);<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>      }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>      return builder.build();<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>    } catch (IOException e) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>      throw new ServiceException(e);<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>    }<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span><a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  @Override<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>  public AbortProcedureResponse abortProcedure(<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      RpcController rpcController, AbortProcedureRequest request) throws ServiceException {<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>    try {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>      AbortProcedureResponse.Builder response = AbortProcedureResponse.newBuilder();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      boolean abortResult =<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>          master.abortProcedure(request.getProcId(), request.getMayInterruptIfRunning());<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>      response.setIsProcedureAborted(abortResult);<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>      return response.build();<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    } catch (IOException e) {<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>      throw new ServiceException(e);<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    }<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  }<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span><a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>  @Override<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  public ListNamespaceDescriptorsResponse listNamespaceDescriptors(RpcController c,<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>      ListNamespaceDescriptorsRequest request) throws ServiceException {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    try {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      ListNamespaceDescriptorsResponse.Builder response =<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        ListNamespaceDescriptorsResponse.newBuilder();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      for(NamespaceDescriptor ns: master.getNamespaces()) {<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        response.addNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(ns));<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      }<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>      return response.build();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    } catch (IOException e) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>      throw new ServiceException(e);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>    }<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  }<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span><a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  @Override<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  public GetProceduresResponse getProcedures(<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      RpcController rpcController,<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>      GetProceduresRequest request) throws ServiceException {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    try {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>      final GetProceduresResponse.Builder response = GetProceduresResponse.newBuilder();<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>      for (Procedure&lt;?&gt; p: master.getProcedures()) {<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>        response.addProcedure(ProcedureUtil.convertToProtoProcedure(p));<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>      }<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      return response.build();<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    } catch (IOException e) {<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>      throw new ServiceException(e);<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>    }<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  }<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span><a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>  @Override<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  public GetLocksResponse getLocks(<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      RpcController controller,<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      GetLocksRequest request) throws ServiceException {<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>    try {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      final GetLocksResponse.Builder builder = GetLocksResponse.newBuilder();<a name="line.1309"></a>
+<span class="sourceLineNo">1243</span>          master.getMasterProcedureExecutor().removeResult(request.getProcId());<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>        } else {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>          builder.setState(GetProcedureResultResponse.State.RUNNING);<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>      } else {<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>        builder.setState(GetProcedureResultResponse.State.NOT_FOUND);<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>      return builder.build();<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    } catch (IOException e) {<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>      throw new ServiceException(e);<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>    }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  }<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  @Override<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>  public AbortProcedureResponse abortProcedure(<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>      RpcController rpcController, AbortProcedureRequest request) throws ServiceException {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    try {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>      AbortProcedureResponse.Builder response = AbortProcedureResponse.newBuilder();<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      boolean abortResult =<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>          master.abortProcedure(request.getProcId(), request.getMayInterruptIfRunning());<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      response.setIsProcedureAborted(abortResult);<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>      return response.build();<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    } catch (IOException e) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>      throw new ServiceException(e);<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  @Override<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  public ListNamespaceDescriptorsResponse listNamespaceDescriptors(RpcController c,<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>      ListNamespaceDescriptorsRequest request) throws ServiceException {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>    try {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>      ListNamespaceDescriptorsResponse.Builder response =<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>        ListNamespaceDescriptorsResponse.newBuilder();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>      for(NamespaceDescriptor ns: master.getNamespaces()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>        response.addNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(ns));<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>      }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>      return response.build();<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    } catch (IOException e) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>      throw new ServiceException(e);<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>    }<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  }<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>  @Override<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public GetProceduresResponse getProcedures(<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>      RpcController rpcController,<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      GetProceduresRequest request) throws ServiceException {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    try {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>      final GetProceduresResponse.Builder response = GetProceduresResponse.newBuilder();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>      for (Procedure&lt;?&gt; p: master.getProcedures()) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>        response.addProcedure(ProcedureUtil.convertToProtoProcedure(p));<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>      }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>      return response.build();<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    } catch (IOException e) {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>      throw new ServiceException(e);<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>    }<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span><a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>  @Override<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  public GetLocksResponse getLocks(<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>      RpcController controller,<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>      GetLocksRequest request) throws ServiceException {<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>    try {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>      final GetLocksResponse.Builder builder = GetLocksResponse.newBuilder();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span><a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>      for (LockedResource lockedResource: master.getLocks()) {<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>        builder.addLock(ProcedureUtil.convertToProtoLockedResource(lockedResource));<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>      }<a name="line.1309"></a>
 <span class="sourceLineNo">1310</span><a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      for (LockedResource lockedResource: master.getLocks()) {<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>        builder.addLock(ProcedureUtil.convertToProtoLockedResource(lockedResource));<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>      }<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span><a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return builder.build();<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    } catch (IOException e) {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>      throw new ServiceException(e);<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    }<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>  }<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span><a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>  @Override<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  public ListTableDescriptorsByNamespaceResponse listTableDescriptorsByNamespace(RpcController c,<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      ListTableDescriptorsByNamespaceRequest request) throws ServiceException {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>    try {<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      ListTableDescriptorsByNamespaceResponse.Builder b =<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          ListTableDescriptorsByNamespaceResponse.newBuilder();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>      for (TableDescriptor htd : master<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>          .listTableDescriptorsByNamespace(request.getNamespaceName())) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        b.addTableSchema(ProtobufUtil.toTableSchema(htd));<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      }<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>      return b.build();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>    } catch (IOException e) {<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>      throw new ServiceException(e);<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>    }<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span><a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  @Override<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>  public ListTableNamesByNamespaceResponse listTableNamesByNamespace(RpcController c,<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>      ListTableNamesByNamespaceRequest request) throws ServiceException {<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>    try {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>      ListTableNamesByNamespaceResponse.Builder b =<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        ListTableNamesByNamespaceResponse.newBuilder();<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      for (TableName tableName: master.listTableNamesByNamespace(request.getNamespaceName())) {<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        b.addTableName(ProtobufUtil.toProtoTableName(tableName));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>      return b.build();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>    } catch (IOException e) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>      throw new ServiceException(e);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>    }<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  }<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span><a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  @Override<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>  public ModifyColumnResponse modifyColumn(RpcController controller,<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      ModifyColumnRequest req) throws ServiceException {<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>    try {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      long procId = master.modifyColumn(<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>        ProtobufUtil.toColumnFamilyDescriptor(req.getColumnFamilies()),<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>        req.getNonceGroup(),<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>        req.getNonce());<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      if (procId == -1) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>        // This mean operation was not performed in server, so do not set any procId<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>        return ModifyColumnResponse.newBuilder().build();<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      } else {<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>        return ModifyColumnResponse.newBuilder().setProcId(procId).build();<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>      }<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    } catch (IOException ioe) {<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>      throw new ServiceException(ioe);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>    }<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  }<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span><a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>  @Override<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>  public ModifyNamespaceResponse modifyNamespace(RpcController controller,<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>      ModifyNamespaceRequest request) throws ServiceException {<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>    try {<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>      long procId = master.modifyNamespace(<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>        ProtobufUtil.toNamespaceDescriptor(request.getNamespaceDescriptor()),<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>        request.getNonceGroup(),<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>        request.getNonce());<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      return ModifyNamespaceResponse.newBuilder().setProcId(procId).build();<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>    } catch (IOException e) {<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>      throw new ServiceException(e);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>    }<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>  }<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span><a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>  @Override<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>  public ModifyTableResponse modifyTable(RpcController controller,<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>      ModifyTableRequest req) throws ServiceException {<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>    try {<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>      long procId = master.modifyTable(<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>        ProtobufUtil.toTableDescriptor(req.getTableSchema()),<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>        req.getNonceGroup(),<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>        req.getNonce());<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>      return ModifyTableResponse.newBuilder().setProcId(procId).build();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    } catch (IOException ioe) {<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>      throw new ServiceException(ioe);<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>  }<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span><a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  @Override<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>  public MoveRegionResponse moveRegion(RpcController controller,<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      MoveRegionRequest req) throws ServiceException {<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>    final byte [] encodedRegionName = req.getRegion().getValue().toByteArray();<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>    RegionSpecifierType type = req.getRegion().getType();<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    final byte [] destServerName = (req.hasDestServerName())?<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>      Bytes.toBytes(ProtobufUtil.toServerName(req.getDestServerName()).getServerName()):null;<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>    MoveRegionResponse mrr = MoveRegionResponse.newBuilder().build();<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span><a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>    if (type != RegionSpecifierType.ENCODED_REGION_NAME) {<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      LOG.warn("moveRegion specifier type: expected: " + RegionSpecifierType.ENCODED_REGION_NAME<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>        + " actual: " + type);<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    }<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span><a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>    try {<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>      master.checkInitialized();<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>      master.move(encodedRegionName, destServerName);<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>    } catch (IOException ioe) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>      throw new ServiceException(ioe);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    return mrr;<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  }<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span><a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>  /**<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>   * Offline specified region from master's in-memory state. It will not attempt to<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>   * reassign the region as in unassign.<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>   *<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>   * This is a special method that should be used by experts or hbck.<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>   *<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>   */<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>  @Override<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  public OfflineRegionResponse offlineRegion(RpcController controller,<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>      OfflineRegionRequest request) throws ServiceException {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    try {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      master.checkInitialized();<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span><a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>      final RegionSpecifierType type = request.getRegion().getType();<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>      if (type != RegionSpecifierType.REGION_NAME) {<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>        LOG.warn("moveRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>          + " actual: " + type);<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>      }<a name="line.1441"></a>
+<span class="sourceLineNo">1311</span>      return builder.build();<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>    } catch (IOException e) {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>      throw new ServiceException(e);<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>    }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span><a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  public ListTableDescriptorsByNamespaceResponse listTableDescriptorsByNamespace(RpcController c,<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>      ListTableDescriptorsByNamespaceRequest request) throws ServiceException {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    try {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>      ListTableDescriptorsByNamespaceResponse.Builder b =<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>          ListTableDescriptorsByNamespaceResponse.newBuilder();<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>      for (TableDescriptor htd : master<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>          .listTableDescriptorsByNamespace(request.getNamespaceName())) {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>        b.addTableSchema(ProtobufUtil.toTableSchema(htd));<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>      }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>      return b.build();<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>    } catch (IOException e) {<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>      throw new ServiceException(e);<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>    }<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  }<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  @Override<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>  public ListTableNamesByNamespaceResponse listTableNamesByNamespace(RpcController c,<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>      ListTableNamesByNamespaceRequest request) throws ServiceException {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>    try {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>      ListTableNamesByNamespaceResponse.Builder b =<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>        ListTableNamesByNamespaceResponse.newBuilder();<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>      for (TableName tableName: master.listTableNamesByNamespace(request.getNamespaceName())) {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>        b.addTableName(ProtobufUtil.toProtoTableName(tableName));<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>      }<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>      return b.build();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>    } catch (IOException e) {<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>      throw new ServiceException(e);<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    }<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span><a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  @Override<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>  public ModifyColumnResponse modifyColumn(RpcController controller,<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>      ModifyColumnRequest req) throws ServiceException {<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>    try {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>      long procId = master.modifyColumn(<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>        ProtobufUtil.toColumnFamilyDescriptor(req.getColumnFamilies()),<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        req.getNonceGroup(),<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>        req.getNonce());<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>      if (procId == -1) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>        // This mean operation was not performed in server, so do not set any procId<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>        return ModifyColumnResponse.newBuilder().build();<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>      } else {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>        return ModifyColumnResponse.newBuilder().setProcId(procId).build();<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>      }<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>    } catch (IOException ioe) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      throw new ServiceException(ioe);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>  }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  @Override<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>  public ModifyNamespaceResponse modifyNamespace(RpcController controller,<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>      ModifyNamespaceRequest request) throws ServiceException {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>    try {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>      long procId = master.modifyNamespace(<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        ProtobufUtil.toNamespaceDescriptor(request.getNamespaceDescriptor()),<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>        request.getNonceGroup(),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        request.getNonce());<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>      return ModifyNamespaceResponse.newBuilder().setProcId(procId).build();<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    } catch (IOException e) {<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>      throw new ServiceException(e);<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>    }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>  }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>  @Override<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>  public ModifyTableResponse modifyTable(RpcController controller,<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>      ModifyTableRequest req) throws ServiceException {<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>    try {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>      long procId = master.modifyTable(<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>        ProtobufUtil.toTableDescriptor(req.getTableSchema()),<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>        req.getNonceGroup(),<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>        req.getNonce());<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>      return ModifyTableResponse.newBuilder().setProcId(procId).build();<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>    } catch (IOException ioe) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>      throw new ServiceException(ioe);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>    }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>  }<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span><a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>  @Override<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>  public MoveRegionResponse moveRegion(RpcController controller,<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>      MoveRegionRequest req) throws ServiceException {<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    final byte [] encodedRegionName = req.getRegion().getValue().toByteArray();<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>    RegionSpecifierType type = req.getRegion().getType();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>    final byte [] destServerName = (req.hasDestServerName())?<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>      Bytes.toBytes(ProtobufUtil.toServerName(req.getDestServerName()).getServerName()):null;<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>    MoveRegionResponse mrr = MoveRegionResponse.newBuilder().build();<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span><a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    if (type != RegionSpecifierType.ENCODED_REGION_NAME) {<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>      LOG.warn("moveRegion specifier type: expected: " + RegionSpecifierType.ENCODED_REGION_NAME<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>        + " actual: " + type);<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>    }<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    try {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      master.checkInitialized();<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>      master.move(encodedRegionName, destServerName);<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>    } catch (IOException ioe) {<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>      throw new ServiceException(ioe);<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    return mrr;<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>  }<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span><a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>  /**<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>   * Offline specified region from master's in-memory state. It will not attempt to<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>   * reassign the region as in unassign.<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>   *<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>   * This is a special method that should be used by experts or hbck.<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>   *<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>   */<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>  public OfflineRegionResponse offlineRegion(RpcController controller,<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>      OfflineRegionRequest request) throws ServiceException {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>    try {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>      master.checkInitialized();<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span><a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>      final RegionSpecifierType type = request.getRegion().getType();<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>      if (type != RegionSpecifierType.REGION_NAME) {<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>        LOG.warn("moveRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>          + " actual: " + type);<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>      }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span><a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>      final byte[] regionName = request.getRegion().getValue().toByteArray();<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>      final RegionInfo hri = master.getAssignmentManager().getRegionInfo(regionName);<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>      if (hri == null) throw new UnknownRegionException(Bytes.toStringBinary(regionName));<a name="line.1441"></a>
 <span class="sourceLineNo">1442</span><a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>      final byte[] regionName = request.getRegion().getValue().toByteArray();<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      final RegionInfo hri = master.getAssignmentManager().getRegionInfo(regionName);<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      if (hri == null) throw new UnknownRegionException(Bytes.toStringBinary(regionName));<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span><a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      if (master.cpHost != null) {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>        master.cpHost.preRegionOffline(hri);<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>      }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>      LOG.info(master.getClientIdAuditPrefix() + " offline " + hri.getRegionNameAsString());<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>      master.getAssignmentManager().offlineRegion(hri);<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>      if (master.cpHost != null) {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>        master.cpHost.postRegionOffline(hri);<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>      }<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>    } catch (IOException ioe) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      throw new ServiceException(ioe);<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>    }<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>    return OfflineRegionResponse.newBuilder().build();<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>  }<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span><a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>  /**<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * Execute Restore/Clone snapshot operation.<a name="line.1462"></a>
+<span class="sourceLineNo">1443</span>      if (master.cpHost != null) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>        master.cpHost.preRegionOffline(hri);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>      LOG.info(master.getClientIdAuditPrefix() + " offline " + hri.getRegionNameAsString());<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>      master.getAssignmentManager().offlineRegion(hri);<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>      if (master.cpHost != null) {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>        master.cpHost.postRegionOffline(hri);<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>      }<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>    } catch (IOException ioe) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>      throw new ServiceException(ioe);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>    }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>    return OfflineRegionResponse.newBuilder().build();<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span><a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>  /**<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>   * Execute Restore/Clone snapshot operation.<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>   *<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>   * &lt;p&gt;If the specified table exists a "Restore" is executed, replacing the table<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * schema and directory data with the content of the snapshot.<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * The table must be disabled, or a UnsupportedOperationException will be thrown.<a name="line.1462"></a>
 <span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * &lt;p&gt;If the specified table exists a "Restore" is executed, replacing the table<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * schema and directory data with the content of the snapshot.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   * The table must be disabled, or a UnsupportedOperationException will be thrown.<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>   *<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>   * &lt;p&gt;If the table doesn't exist a "Clone" is executed, a new table is created<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>   * using the schema at the time of the snapshot, and the content of the snapshot.<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>   * &lt;p&gt;The restore/clone operation does not require copying HFiles. Since HFiles<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>   * are immutable the table can point to and use the same files as the original one.<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>   */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  @Override<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>  public RestoreSnapshotResponse restoreSnapshot(RpcController controller,<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>      RestoreSnapshotRequest request) throws ServiceException {<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>    try {<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>      long procId = master.restoreSnapshot(request.getSnapshot(), request.getNonceGroup(),<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>        request.getNonce(), request.getRestoreACL());<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>      return RestoreSnapshotResponse.newBuilder().setProcId(procId).build();<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>    } catch (ForeignException e) {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>      throw new ServiceException(e.getCause());<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>    } catch (IOException e) {<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>      throw new ServiceException(e);<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>    }<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>  }<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span><a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>  @Override<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public RunCatalogScanResponse runCatalogScan(RpcController c,<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>      RunCatalogScanRequest req) throws ServiceException {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>    rpcPreCheck("runCatalogScan");<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>    try {<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>      return ResponseConverter.buildRunCatalogScanResponse(<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>          this.master.catalogJanitorChore.scan());<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>    } catch (IOException ioe) {<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>      throw new ServiceException(ioe);<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>    }<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>  }<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span><a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>  @Override<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>  public RunCleanerChoreResponse runCleanerChore(RpcController c, RunCleanerChoreRequest req)<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>    throws ServiceException {<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>    rpcPreCheck("runCleanerChore");<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>    boolean result = master.getHFileCleaner().runCleaner() &amp;&amp; master.getLogCleaner().runCleaner();<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>    return ResponseConverter.buildRunCleanerChoreResponse(result);<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>  }<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span><a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  @Override<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>  public SetBalancerRunningResponse setBalancerRunning(RpcController c,<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      SetBalancerRunningRequest req) throws ServiceException {<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    try {<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      master.checkInitialized();<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>      boolean prevValue = (req.getSynchronous())?<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>        synchronousBalanceSwitch(req.getOn()) : master.balanceSwitch(req.getOn());<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>      return SetBalancerRunningResponse.newBuilder().setPrevBalanceValue(prevValue).build();<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    } catch (IOException ioe) {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      throw new ServiceException(ioe);<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>    }<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>  }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span><a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>  @Override<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>  public ShutdownResponse shutdown(RpcController controller,<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      ShutdownRequest request) throws ServiceException {<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>    LOG.info(master.getClientIdAuditPrefix() + " shutdown");<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      master.shutdown();<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>    } catch (IOException e) {<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      LOG.error("Exception occurred in HMaster.shutdown()", e);<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      throw new ServiceException(e);<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    }<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    return ShutdownResponse.newBuilder().build();<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span><a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Triggers an asynchronous attempt to take a snapshot.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * {@inheritDoc}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @Override<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public SnapshotResponse snapshot(RpcController controller,<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      SnapshotRequest request) throws ServiceException {<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    try {<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>      master.checkInitialized();<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      master.snapshotManager.checkSnapshotSupport();<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span><a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      LOG.info(master.getClientIdAuditPrefix() + " snapshot request for:" +<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>        ClientSnapshotDescriptionUtils.toString(request.getSnapshot()));<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      // get the snapshot information<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      SnapshotDescription snapshot = SnapshotDescriptionUtils.validate(<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>        request.getSnapshot(), master.getConfiguration());<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      master.snapshotManager.takeSnapshot(snapshot);<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span><a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      // send back the max amount of time the client should wait for the snapshot to complete<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      long waitTime = SnapshotDescriptionUtils.getMaxMasterTimeout(master.getConfiguration(),<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>        snapshot.getType(), SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME);<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      return SnapshotResponse.newBuilder().setExpectedTimeout(waitTime).build();<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    } catch (ForeignException e) {<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      throw new ServiceException(e.getCause());<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    } catch (IOException e) {<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      throw new ServiceException(e);<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  }<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span><a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>  @Override<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>  public StopMasterResponse stopMaster(RpcController controller,<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      StopMasterRequest request) throws ServiceException {<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    LOG.info(master.getClientIdAuditPrefix() + " stop");<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    try {<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      master.stopMaster();<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    } catch (IOException e) {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      LOG.error("Exception occurred while stopping master", e);<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      throw new ServiceException(e);<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>    }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>    return StopMasterResponse.newBuilder().build();<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>  }<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span><a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>  @Override<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>  public IsInMaintenanceModeResponse isMasterInMaintenanceMode(<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      final RpcController controller,<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>      final IsInMaintenanceModeRequest request) throws ServiceException {<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>    IsInMaintenanceModeResponse.Builder response = IsInMaintenanceModeResponse.newBuilder();<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    response.setInMaintenanceMode(master.isInMaintenanceMode());<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>    return response.build();<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>  }<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span><a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>  @Override<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>  public UnassignRegionResponse unassignRegion(RpcController controller,<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>      UnassignRegionRequest req) throws ServiceException {<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>    try {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>      final byte [] regionName = req.getRegion().getValue().toByteArray();<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>      RegionSpecifierType type = req.getRegion().getType();<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      final boolean force = req.getForce();<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>      UnassignRegionResponse urr = UnassignRegionResponse.newBuilder().build();<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span><a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>      master.checkInitialized();<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>      if (type != RegionSpecifierType.REGION_NAME) {<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>        LOG.warn("unassignRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>          + " actual: " + type);<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      }<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      Pair&lt;RegionInfo, ServerName&gt; pair =<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        MetaTableAccessor.getRegion(master.getConnection(), regionName);<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>      if (Bytes.equals(RegionInfoBuilder.FIRST_META_REGIONINFO.getRegionName(), regionName)) {<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>        pair = new Pair&lt;&gt;(RegionInfoBuilder.FIRST_META_REGIONINFO,<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>          MetaTableLocator.getMetaRegionLocation(master.getZooKeeper()));<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      }<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (pair == null) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        throw new UnknownRegionException(Bytes.toString(regionName));<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>      }<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span><a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>      RegionInfo hri = pair.getFirst();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>      if (master.cpHost != null) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>        master.cpHost.preUnassign(hri, force);<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>      }<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>      LOG.debug(master.getClientIdAuditPrefix() + " unassign " + hri.getRegionNameAsString()<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>          + " in current location if it is online and reassign.force=" + force);<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>      master.getAssignmentManager().unassign(hri);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>      if (master.cpHost != null) {<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>        master.cpHost.postUnassign(hri, force);<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      }<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span><a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      return urr;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    } catch (IOException ioe) {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>      throw new ServiceException(ioe);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>  }<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span><a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>  @Override<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  public ReportRegionStateTransitionResponse reportRegionStateTransition(RpcController c,<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>      ReportRegionStateTransitionRequest req) throws ServiceException {<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>    try {<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>      master.checkServiceStarted();<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>      return master.getAssignmentManager().reportRegionStateTransition(req);<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>    } catch (IOException ioe) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>      throw new ServiceException(ioe);<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>    }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>  }<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span><a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>  @Override<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>  public SetQuotaResponse setQuota(RpcController c, SetQuotaRequest req)<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      throws ServiceException {<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>    try {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      master.checkInitialized();<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      return master.getMasterQuotaManager().setQuota(req);<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>    } catch (Exception e) {<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>      throw new ServiceException(e);<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>    }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>  }<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span><a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>  @Override<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>  public MajorCompactionTimestampResponse getLastMajorCompactionTimestamp(RpcController controller,<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      MajorCompactionTimestampRequest request) throws ServiceException {<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>    MajorCompactionTimestampResponse.Builder response =<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>        MajorCompactionTimestampResponse.newBuilder();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>    try {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>      master.checkInitialized();<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>      response.setCompactionTimestamp(master.getLastMajorCompactionTimestamp(ProtobufUtil<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>          .toTableName(request.getTableName())));<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>    } catch (IOException e) {<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>      throw new ServiceException(e);<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>    }<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>    return response.build();<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>  }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span><a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>  @Override<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>  public MajorCompactionTimestampResponse getLastMajorCompactionTimestampForRegion(<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>      RpcController controller, MajorCompactionTimestampForRegionRequest request)<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>      throws ServiceException {<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    MajorCompactionTimestampResponse.Builder response =<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>        MajorCompactionTimestampResponse.newBuilder();<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>    try {<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>      master.checkInitialized();<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>      response.setCompactionTimestamp(master.getLastMajorCompactionTimestampForRegion(request<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>          .getRegion().getValue().toByteArray()));<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>    } catch (IOException e) {<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>      throw new ServiceException(e);<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>    }<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>    return response.build();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span><a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>  /**<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>   * Compact a region on the master.<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>   *<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>   * @param controller the RPC controller<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>   * @param request the request<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>   * @throws ServiceException<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>   */<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>  @Override<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>  public CompactRegionResponse compactRegion(final RpcController controller,<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>    final CompactRegionRequest request) throws ServiceException {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>    try {<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>      master.checkInitialized();<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      byte[] regionName = request.getRegion().getValue().toByteArray();<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>      TableName tableName = RegionInfo.getTable(regionName);<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      // if the region is a mob region, do the mob file compaction.<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (MobUtils.isMobRegionName(tableName, regionName)) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        checkHFileFormatVersionForMob();<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>        return compactMob(request, tableName);<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>      } else {<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>        return super.compactRegion(controller, request);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      }<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    } catch (IOException ie) {<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      throw new ServiceException(ie);<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    }<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>  }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span><a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>  /**<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>   * check configured hfile format version before to do compaction<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>   * @throws IOException throw IOException<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>   */<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>  private void checkHFileFormatVersionForMob() throws IOException {<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>    if (HFile.getFormatVersion(master.getConfiguration()) &lt; HFile.MIN_FORMAT_VERSION_WITH_TAGS) {<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      LOG.error("A minimum HFile version of " + HFile.MIN_FORMAT_VERSION_WITH_TAGS<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>          + " is required for MOB compaction. Compaction will not run.");<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      throw new IOException("A minimum HFile version of " + HFile.MIN_FORMAT_VERSION_WITH_TAGS<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>          + " is required for MOB feature. Consider setting " + HFile.FORMAT_VERSION_KEY<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>          + " accordingly.");<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>    }<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>  }<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span><a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>  @Override<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>  public GetRegionInfoResponse getRegionInfo(final RpcController controller,<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>    final GetRegionInfoRequest request) throws ServiceException {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    byte[] regionName = request.getRegion().getValue().toByteArray();<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    TableName tableName = RegionInfo.getTable(regionName);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>    if (MobUtils.isMobRegionName(tableName, regionName)) {<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>      // a dummy region info contains the compaction state.<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>      RegionInfo mobRegionInfo = MobUtils.getMobRegionInfo(tableName);<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>      GetRegionInfoResponse.Builder builder = GetRegionInfoResponse.newBuilder();<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>      builder.setRegionInfo(ProtobufUtil.toRegionInfo(mobRegionInfo));<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>      if (request.hasCompactionState() &amp;&amp; request.getCompactionState()) {<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>        builder.setCompactionState(master.getMobCompactionState(tableName));<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>      }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      return builder.build();<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    } else {<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>      return super.getRegionInfo(controller, request);<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>    }<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span><a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>  /**<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>   * Compacts the mob files in the current table.<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>   * @param request the request.<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>   * @param tableName the current table name.<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>   * @return The response of the mob file compaction.<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>   * @throws IOException<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>   */<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>  private CompactRegionResponse compactMob(final CompactRegionRequest request,<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    TableName tableName) throws IOException {<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>    if (!master.getTableStateManager().isTableState(tableName, TableState.State.ENABLED)) {<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      throw new DoNotRetryIOException("Table " + tableName + " is not enabled");<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>    boolean allFiles = false;<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    List&lt;ColumnFamilyDescriptor&gt; compactedColumns = new ArrayList&lt;&gt;();<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>    ColumnFamilyDescriptor[] hcds = master.getTableDescriptors().get(tableName).getColumnFamilies();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    byte[] family = null;<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>    if (request.hasFamily()) {<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      family = request.getFamily().toByteArray();<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>      for (ColumnFamilyDescriptor hcd : hcds) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>        if (Bytes.equals(family, hcd.getName())) {<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          if (!hcd.isMobEnabled()) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>            LOG.error("Column family " + hcd.getNameAsString() + " is not a mob column family");<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>            throw new DoNotRetryIOException("Column family " + hcd.getNameAsString()<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>                    + " is not a mob column family");<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>          }<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>          compactedColumns.add(hcd);<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        }<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>    } else {<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      for (ColumnFamilyDescriptor hcd : hcds) {<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>        if (hcd.isMobEnabled()) {<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>          compactedColumns.add(hcd);<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        }<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>      }<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>    }<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>    if (compactedColumns.isEmpty()) {<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>      LOG.error("No mob column families are assigned in the mob compaction");<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>      throw new DoNotRetryIOException(<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>              "No mob column families are assigned in the mob compaction");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>    }<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>    if (request.hasMajor() &amp;&amp; request.getMajor()) {<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>      allFiles = true;<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>    }<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>    String familyLogMsg = (family != null) ? Bytes.toString(family) : "";<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>    if (LOG.isTraceEnabled()) {<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>      LOG.trace("User-triggered mob compaction requested for table: "<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>              + tableName.getNameAsString() + " for column family: " + familyLogMsg);<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>    }<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>    master.requestMobCompaction(tableName, compactedColumns, allFiles);<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    return CompactRegionResponse.newBuilder().build();<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span><a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>  @Override<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>  public IsBalancerEnabledResponse isBalancerEnabled(RpcController controller,<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>      IsBalancerEnabledRequest request) throws ServiceException {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>    IsBalancerEnabledResponse.Builder response = IsBalancerEnabledResponse.newBuilder();<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>    response.setEnabled(master.isBalancerOn());<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return response.build();<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  @Override<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>  public SetSplitOrMergeEnabledResponse setSplitOrMergeEnabled(RpcController controller,<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>    SetSplitOrMergeEnabledRequest request) throws ServiceException {<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    SetSplitOrMergeEnabledResponse.Builder response = SetSplitOrMergeEnabledResponse.newBuilder();<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>    try {<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>      master.checkInitialized();<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>      boolean newValue = request.getEnabled();<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>      for (MasterProtos.MasterSwitchType masterSwitchType: request.getSwitchTypesList()) {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>        MasterSwitchType switchType = convert(masterSwitchType);<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>        boolean oldValue = master.isSplitOrMergeEnabled(switchType);<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>        response.addPrevValue(oldValue);<a name="line.1810"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;If the table doesn't exist a "Clone" is executed, a new table is created<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * using the schema at the time of the snapshot, and the content of the snapshot.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * &lt;p&gt;The restore/clone operation does not require copying HFiles. Since HFiles<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * are immutable the table can point to and use the same files as the original one.<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   */<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>  @Override<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>  public RestoreSnapshotResponse restoreSnapshot(RpcController controller,<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>      RestoreSnapshotRequest request) throws ServiceException {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>    try {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>      long procId = master.restoreSnapshot(request.getSnapshot(), request.getNonceGroup(),<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>        request.getNonce(), request.getRestoreACL());<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>      return RestoreSnapshotResponse.newBuilder().setProcId(procId).build();<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    } catch (ForeignException e) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>      throw new ServiceException(e.getCause());<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>    } catch (IOException e) {<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>      throw new ServiceException(e);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>    }<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span><a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>  @Override<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  public RunCatalogScanResponse runCatalogScan(RpcController c,<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>      RunCatalogScanRequest req) throws ServiceException {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>    rpcPreCheck("runCatalogScan");<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>    try {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>      return ResponseConverter.buildRunCatalogScanResponse(<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>          this.master.catalogJanitorChore.scan());<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>    } catch (IOException ioe) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      throw new ServiceException(ioe);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span><a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>  @Override<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>  public RunCleanerChoreResponse runCleanerChore(RpcController c, RunCleanerChoreRequest req)<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>    throws ServiceException {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>    rpcPreCheck("runCleanerChore");<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>    boolean result = master.getHFileCleaner().runCleaner() &amp;&amp; master.getLogCleaner().runCleaner();<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>    return ResponseConverter.buildRunCleanerChoreResponse(result);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>  }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span><a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>  @Override<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>  public SetBalancerRunningResponse setBalancerRunning(RpcController c,<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>      SetBalancerRunningRequest req) throws ServiceException {<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>    try {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>      master.checkInitialized();<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>      boolean prevValue = (req.getSynchronous())?<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>        synchronousBalanceSwitch(req.getOn()) : master.balanceSwitch(req.getOn());<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>      return SetBalancerRunningResponse.newBuilder().setPrevBalanceValue(prevValue).build();<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>    } catch (IOException ioe) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>      throw new ServiceException(ioe);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>    }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>  }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span><a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  @Override<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>  public ShutdownResponse shutdown(RpcController controller,<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>      ShutdownRequest request) throws ServiceException {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    LOG.info(master.getClientIdAuditPrefix() + " shutdown");<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>    try {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>      master.shutdown();<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>    } catch (IOException e) {<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>      LOG.error("Exception occurred in HMaster.shutdown()", e);<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>      throw new ServiceException(e);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>    }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>    return ShutdownResponse.newBuilder().build();<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>  }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span><a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>  /**<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>   * Triggers an asynchronous attempt to take a snapshot.<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>   * {@inheritDoc}<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>   */<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  @Override<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>  public SnapshotResponse snapshot(RpcController controller,<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>      SnapshotRequest request) throws ServiceException {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>    try {<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>      master.checkInitialized();<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>      master.snapshotManager.checkSnapshotSupport();<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span><a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>      LOG.info(master.getClientIdAuditPrefix() + " snapshot request for:" +<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>        ClientSnapshotDescriptionUtils.toString(request.getSnapshot()));<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>      // get the snapshot information<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>      SnapshotDescription snapshot = SnapshotDescriptionUtils.validate(<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>        request.getSnapshot(), master.getConfiguration());<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>      master.snapshotManager.takeSnapshot(snapshot);<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span><a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>      // send back the max amount of time the client should wait for the snapshot to complete<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>      long waitTime = SnapshotDescriptionUtils.getMaxMasterTimeout(master.getConfiguration(),<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        snapshot.getType(), SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME);<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>      return SnapshotResponse.newBuilder().setExpectedTimeout(waitTime).build();<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>    } catch (ForeignException e) {<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>      throw new ServiceException(e.getCause());<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>    } catch (IOException e) {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>      throw new ServiceException(e);<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>  }<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span><a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>  @Override<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>  public StopMasterResponse stopMaster(RpcController controller,<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>      StopMasterRequest request) throws ServiceException {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    LOG.info(master.getClientIdAuditPrefix() + " stop");<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>    try {<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      master.stopMaster();<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    } catch (IOException e) {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>      LOG.error("Exception occurred while stopping master", e);<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>      throw new ServiceException(e);<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    }<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>    return StopMasterResponse.newBuilder().build();<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>  }<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span><a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>  @Override<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>  public IsInMaintenanceModeResponse isMasterInMaintenanceMode(<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      final RpcController controller,<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>      final IsInMaintenanceModeRequest request) throws ServiceException {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    IsInMaintenanceModeResponse.Builder response = IsInMaintenanceModeResponse.newBuilder();<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    response.setInMaintenanceMode(master.isInMaintenanceMode());<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    return response.build();<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>  }<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span><a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>  @Override<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>  public UnassignRegionResponse unassignRegion(RpcController controller,<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>      UnassignRegionRequest req) throws ServiceException {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>    try {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>      final byte [] regionName = req.getRegion().getValue().toByteArray();<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>      RegionSpecifierType type = req.getRegion().getType();<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      final boolean force = req.getForce();<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>      UnassignRegionResponse urr = UnassignRegionResponse.newBuilder().build();<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>      master.checkInitialized();<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>      if (type != RegionSpecifierType.REGION_NAME) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>        LOG.warn("unassignRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>          + " actual: " + type);<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>      }<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      Pair&lt;RegionInfo, ServerName&gt; pair =<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        MetaTableAccessor.getRegion(master.getConnection(), regionName);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>      if (Bytes.equals(RegionInfoBuilder.FIRST_META_REGIONINFO.getRegionName(), regionName)) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>        pair = new Pair&lt;&gt;(RegionInfoBuilder.FIRST_META_REGIONINFO,<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>          MetaTableLocator.getMetaRegionLocation(master.getZooKeeper()));<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      }<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>      if (pair == null) {<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>        throw new UnknownRegionException(Bytes.toString(regionName));<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>      }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>      RegionInfo hri = pair.getFirst();<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>      if (master.cpHost != null) {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>        master.cpHost.preUnassign(hri, force);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>      }<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>      LOG.debug(master.getClientIdAuditPrefix() + " unassign " + hri.getRegionNameAsString()<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>          + " in current location if it is online and reassign.force=" + force);<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      master.getAssignmentManager().unassign(hri);<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      if (master.cpHost != null) {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>        master.cpHost.postUnassign(hri, force);<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      }<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span><a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>      return urr;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>    } catch (IOException ioe) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>      throw new ServiceException(ioe);<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>    }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>  }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span><a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>  @Override<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>  public ReportRegionStateTransitionResponse reportRegionStateTransition(RpcController c,<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>      ReportRegionStateTransitionRequest req) throws ServiceException {<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>    try {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>      master.checkServiceStarted();<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>      return master.getAssignmentManager().reportRegionStateTransition(req);<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>    } catch (IOException ioe) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>      throw new ServiceException(ioe);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>    }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>  }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span><a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>  @Override<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>  public SetQuotaResponse setQuota(RpcController c, SetQuotaRequest req)<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      throws ServiceException {<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>    try {<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>      master.checkInitialized();<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>      return master.getMasterQuotaManager().setQuota(req);<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>    } catch (Exception e) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>      throw new ServiceException(e);<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>    }<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>  }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span><a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>  @Override<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>  public MajorCompactionTimestampResponse getLastMajorCompactionTimestamp(RpcController controller,<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>      MajorCompactionTimestampRequest request) throws ServiceException {<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>    MajorCompactionTimestampResponse.Builder response =<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>        MajorCompactionTimestampResponse.newBuilder();<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>    try {<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>      master.checkInitialized();<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      response.setCompactionTimestamp(master.getLastMajorCompactionTimestamp(ProtobufUtil<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>          .toTableName(request.getTableName())));<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>    } catch (IOException e) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>      throw new ServiceException(e);<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>    }<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>    return response.build();<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>  }<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>  @Override<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>  public MajorCompactionTimestampResponse getLastMajorCompactionTimestampForRegion(<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>      RpcController controller, MajorCompactionTimestampForRegionRequest request)<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>      throws ServiceException {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>    MajorCompactionTimestampResponse.Builder response =<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>        MajorCompactionTimestampResponse.newBuilder();<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>    try {<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>      master.checkInitialized();<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>      response.setCompactionTimestamp(master.getLastMajorCompactionTimestampForRegion(request<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>          .getRegion().getValue().toByteArray()));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>    } catch (IOException e) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>      throw new ServiceException(e);<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>    }<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>    return response.build();<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>  }<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span><a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>  /**<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>   * Compact a region on the master.<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>   *<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>   * @param controller the RPC controller<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>   * @param request the request<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>   * @throws ServiceException<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>   */<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>  @Override<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>  public CompactRegionResponse compactRegion(final RpcController controller,<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>    final CompactRegionRequest request) throws ServiceException {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    try {<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>      master.checkInitialized();<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>      byte[] regionName = request.getRegion().getValue().toByteArray();<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>      TableName tableName = RegionInfo.getTable(regionName);<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>      // if the region is a mob region, do the mob file compaction.<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>      if (MobUtils.isMobRegionName(tableName, regionName)) {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        checkHFileFormatVersionForMob();<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>        return compactMob(request, tableName);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>      } else {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>        return super.compactRegion(controller, request);<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>      }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>    } catch (IOException ie) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>      throw new ServiceException(ie);<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>    }<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>  }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span><a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>  /**<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>   * check configured hfile format version before to do compaction<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>   * @throws IOException throw IOException<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>   */<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>  private void checkHFileFormatVersionForMob() throws IOException {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>    if (HFile.getFormatVersion(master.getConfiguration()) &lt; HFile.MIN_FORMAT_VERSION_WITH_TAGS) {<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      LOG.error("A minimum HFile version of " + HFile.MIN_FORMAT_VERSION_WITH_TAGS<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>          + " is required for MOB compaction. Compaction will not run.");<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>      throw new IOException("A minimum HFile version of " + HFile.MIN_FORMAT_VERSION_WITH_TAGS<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>          + " is required for MOB feature. Consider setting " + HFile.FORMAT_VERSION_KEY<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          + " accordingly.");<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>    }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>  }<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span><a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>  @Override<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>  public GetRegionInfoResponse getRegionInfo(final RpcController controller,<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>    final GetRegionInfoRequest request) throws ServiceException {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>    byte[] regionName = request.getRegion().getValue().toByteArray();<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>    TableName tableName = RegionInfo.getTable(regionName);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>    if (MobUtils.isMobRegionName(tableName, regionName)) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      // a dummy region info contains the compaction state.<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      RegionInfo mobRegionInfo = MobUtils.getMobRegionInfo(tableName);<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      GetRegionInfoResponse.Builder builder = GetRegionInfoResponse.newBuilder();<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      builder.setRegionInfo(ProtobufUtil.toRegionInfo(mobRegionInfo));<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>      if (request.hasCompactionState() &amp;&amp; request.getCompactionState()) {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>        builder.setCompactionState(master.getMobCompactionState(tableName));<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>      }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>      return builder.build();<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>    } else {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>      return super.getRegionInfo(controller, request);<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    }<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>  }<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span><a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>  /**<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>   * Compacts the mob files in the current table.<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>   * @param request the request.<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>   * @param tableName the current table name.<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>   * @return The response of the mob file compaction.<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>   * @throws IOException<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>   */<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>  private CompactRegionResponse compactMob(final CompactRegionRequest request,<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>    TableName tableName) throws IOException {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>    if (!master.getTableStateManager().isTableState(tableName, TableState.State.ENABLED)) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>      throw new DoNotRetryIOException("Table " + tableName + " is not enabled");<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>    }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>    boolean allFiles = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>    List&lt;ColumnFamilyDescriptor&gt; compactedColumns = new ArrayList&lt;&gt;();<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>    ColumnFamilyDescriptor[] hcds = master.getTableDescriptors().get(tableName).getColumnFamilies();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>    byte[] family = null;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>    if (request.hasFamily()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>      family = request.getFamily().toByteArray();<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>      for (ColumnFamilyDescriptor hcd : hcds) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>        if (Bytes.equals(family, hcd.getName())) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>          if (!hcd.isMobEnabled()) {<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.error("Column family " + hcd.getNameAsString() + " is not a mob column family");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            throw new DoNotRetryIOException("Column family " + hcd.getNameAsString()<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                    + " is not a mob column family");<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>          }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>          compactedColumns.add(hcd);<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        }<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>      }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>    } else {<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      for (ColumnFamilyDescriptor hcd : hcds) {<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>        if (hcd.isMobEnabled()) {<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>          compactedColumns.add(hcd);<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        }<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>      }<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>    }<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    if (compactedColumns.isEmpty()) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      LOG.error("No mob column families are assigned in the mob compaction");<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      throw new DoNotRetryIOException(<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>              "No mob column families are assigned in the mob compaction");<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>    }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>    if (request.hasMajor() &amp;&amp; request.getMajor()) {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      allFiles = true;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>    }<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>    String familyLogMsg = (family != null) ? Bytes.toString(family) : "";<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>    if (LOG.isTraceEnabled()) {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>      LOG.trace("User-triggered mob compaction requested for table: "<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>              + tableName.getNameAsString() + " for column family: " + familyLogMsg);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>    }<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>    master.requestMobCompaction(tableName, compactedColumns, allFiles);<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>    return CompactRegionResponse.newBuilder().build();<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>  }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span><a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>  @Override<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>  public IsBalancerEnabledResponse isBalancerEnabled(RpcController controller,<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>      IsBalancerEnabledRequest request) throws ServiceException {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>    IsBalancerEnabledResponse.Builder response = IsBalancerEnabledResponse.newBuilder();<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>    response.setEnabled(master.isBalancerOn());<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>    return response.build();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>  }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span><a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>  @Override<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>  public SetSplitOrMergeEnabledResponse setSplitOrMergeEnabled(RpcController controller,<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    SetSplitOrMergeEnabledRequest request) throws ServiceException {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>    SetSplitOrMergeEnabledResponse.Builder response = SetSplitOrMergeEnabledResponse.newBuilder();<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>    try {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>      master.checkInitialized();<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>      boolean newValue = request.getEnabled();<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>      for (MasterProtos.MasterSwitchType masterSwitchType: request.getSwitchTypesList()) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>        MasterSwitchType switchType = convert(masterSwitchType);<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>        boolean oldValue = master.isSplitOrMergeEnabled(switchType);<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>        response.addPrevValue(oldValue);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>        if (master.cpHost != null) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>          master.cpHost.preSetSplitOrMergeEnabled(newValue, switchType);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>        }<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>        master.getSplitOrMergeTracker().setSplitOrMergeEnabled(newValue, switchType);<a name="line.1810"></a>
 <span class="sourceLineNo">1811</span>        if (master.cpHost != null) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>          master.cpHost.preSetSplitOrMergeEnabled(newValue, switchType);<a name="line.1812"></a>
+<span class="sourceLineNo">1812</span>          master.cpHost.postSetSplitOrMergeEnabled(newValue, switchType);<a name="line.1812"></a>
 <span class="sourceLineNo">1813</span>        }<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        master.getSplitOrMergeTracker().setSplitOrMergeEnabled(newValue, switchType);<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>        if (master.cpHost != null) {<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>          master.cpHost.postSetSplitOrMergeEnabled(newValue, switchType);<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        }<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>      }<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>    } catch (IOException e) {<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      throw new ServiceException(e);<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>    } catch (KeeperException e) {<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>      throw new ServiceException(e);<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>    }<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    return response.build();<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>  }<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span><a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>  @Override<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>  public IsSplitOrMergeEnabledResponse isSplitOrMergeEnabled(RpcController controller,<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>    IsSplitOrMergeEnabledRequest request) throws ServiceException {<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>    IsSplitOrMergeEnabledResponse.Builder response = IsSplitOrMergeEnabledResponse.newBuilder();<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>    response.setEnabled(master.isSplitOrMergeEnabled(convert(request.getSwitchType())));<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>    return response.build();<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public NormalizeResponse normalize(RpcController controller,<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>      NormalizeRequest request) throws ServiceException {<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>    rpcPreCheck("normalize");<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>    try {<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>      return NormalizeResponse.newBuilder().setNormalizerRan(master.normalizeRegions()).build();<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>    } catch (IOException ex) {<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>      throw new ServiceException(ex);<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>    }<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>  }<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span><a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>  @Override<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>  public SetNormalizerRunningResponse setNormalizerRunning(RpcController controller,<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>      SetNormalizerRunningRequest request) throws ServiceException {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>    rpcPreCheck("setNormalizerRunning");<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span><a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    // Sets normalizer on/off flag in ZK.<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span>    boolean prevValue = master.getRegionNormalizerTracker().isNormalizerOn();<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    boolean newValue = request.getOn();<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>    try {<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>      master.getRegionNormalizerTracker().setNormalizerOn(newValue);<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    } catch (KeeperException ke) {<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>      LOG.warn("Error flipping normalizer switch", ke);<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span>    }<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>    LOG.info("{} set normalizerSwitch={}", master.getClientIdAuditPrefix(), newValue);<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>    return SetNormalizerRunningResponse.newBuilder().setPrevNormalizerValue(prevValue).build();<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>  }<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span><a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>  @Override<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>  public IsNormalizerEnabledResponse isNormalizerEnabled(RpcController controller,<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>      IsNormalizerEnabledRequest request) throws ServiceException {<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>    IsNormalizerEnabledResponse.Builder response = IsNormalizerEnabledResponse.newBuilder();<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>    response.setEnabled(master.isNormalizerOn());<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>    return response.build();<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>  }<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span><a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>  /**<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>   * Returns the security capabilities in effect on the cluster<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>   */<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span>  @Override<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>  public SecurityCapabilitiesResponse getSecurityCapabilities(RpcController controller,<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>      SecurityCapabilitiesRequest request) throws ServiceException {<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>    SecurityCapabilitiesResponse.Builder response = SecurityCapabilitiesResponse.newBuilder();<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>    try {<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>      master.checkInitialized();<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>      Set&lt;SecurityCapabilitiesResponse.Capability&gt; capabilities = new HashSet&lt;&gt;();<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>      // Authentication<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      if (User.isHBaseSecurityEnabled(master.getConfiguration())) {<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>        capabilities.add(SecurityCapabilitiesResponse.Capability.SECURE_AUTHENTICATION);<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>      } else {<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>        capabilities.add(SecurityCapabilitiesResponse.Capability.SIMPLE_AUTHENTICATION);<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span>      }<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>      // A coprocessor that implements AccessControlService can provide AUTHORIZATION and<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>      // CELL_AUTHORIZATION<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      if (master.cpHost != null &amp;&amp; hasAccessControlServiceCoprocessor(master.cpHost)) {<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span>        if (AccessChecker.isAuthorizationSupported(master.getConfiguration())) {<a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>          capabilities.add(SecurityCapabilitiesResponse.Capability.AUTHORIZATION);<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>        if (AccessController.isCellAuthorizationSupported(master.getConfiguration())) {<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>          capabilities.add(SecurityCapabilitiesResponse.Capability.CELL_AUTHORIZATION);<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>        }<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>      }<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>      // A coprocessor that implements VisibilityLabelsService can provide CELL_VISIBILITY.<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>      if (master.cpHost != null &amp;&amp; hasVisibilityLabelsServiceCoprocessor(master.cpHost)) {<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>        if (VisibilityController.isCellAuthorizationSupported(master.getConfiguration())) {<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>          capabilities.add(SecurityCapabilitiesResponse.Capability.CELL_VISIBILITY);<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>        }<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>      }<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>      response.addAllCapabilities(capabilities);<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    } catch (IOException e) {<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>      throw new ServiceException(e);<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    }<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>    return response.build();<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>  }<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span><a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>  /**<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>   * Determines if there is a MasterCoprocessor deployed which implements<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>   * {@link org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService.Interface}.<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>   */<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>  boolean hasAccessControlServiceCoprocessor(MasterCoprocessorHost cpHost) {<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>    return checkCoprocessorWithService(<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>        cpHost.findCoprocessors(MasterCoprocessor.class), AccessControlService.Interface.class);<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>  }<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span><a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>  /**<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>   * Determines if there is a MasterCoprocessor deployed which implements<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>   * {@link org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface}.<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>   */<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>  boolean hasVisibilityLabelsServiceCoprocessor(MasterCoprocessorHost cpHost) {<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>    return checkCoprocessorWithService(<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>        cpHost.findCoprocessors(MasterCoprocessor.class),<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>        VisibilityLabelsService.Interface.class);<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>  }<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span><a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>  /**<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>   * Determines if there is a coprocessor implementation in the provided argument which extends<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>   * or implements the provided {@code service}.<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>   */<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>  boolean checkCoprocessorWithService(<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>      List&lt;MasterCoprocessor&gt; coprocessorsToCheck, Class&lt;?&gt; service) {<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>    if (coprocessorsToCheck == null || coprocessorsToCheck.isEmpty()) {<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>      return false;<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span>    }<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>    for (MasterCoprocessor cp : coprocessorsToCheck) {<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>      if (service.isAssignableFrom(cp.getClass())) {<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>        return true;<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>      }<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>    }<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>    return false;<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>  }<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span><a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>  private MasterSwitchType convert(MasterProtos.MasterSwitchType switchType) {<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>    switch (switchType) {<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>      case SPLIT:<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>        return MasterSwitchType.SPLIT;<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span>      case MERGE:<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>        return MasterSwitchType.MERGE;<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>      default:<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>        break;<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>    }<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    return null;<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>  }<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span><a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>  @Override<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>  public AddReplicationPeerResponse addReplicationPeer(RpcController controller,<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>      AddReplicationPeerRequest request) throws ServiceException {<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    try {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      long procId = master.addReplicationPeer(request.getPeerId(),<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>        ReplicationPeerConfigUtil.convert(request.getPeerConfig()),<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>        request.getPeerState().getState().equals(ReplicationState.State.ENABLED));<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      return AddReplicationPeerResponse.newBuilder().setProcId(procId).build();<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>    } catch (ReplicationException | IOException e) {<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      throw new ServiceException(e);<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>    }<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>  }<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>  @Override<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>  public RemoveReplicationPeerResponse removeReplicationPeer(RpcController controller,<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>      RemoveReplicationPeerRequest request) throws ServiceException {<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>    try {<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>      long procId = master.removeReplicationPeer(request.getPeerId());<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>      return RemoveReplicationPeerResponse.newBuilder().setProcId(procId).build();<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>    } catch (ReplicationException | IOException e) {<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>      throw new ServiceException(e);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>    }<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>  }<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span><a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>  @Override<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>  public EnableReplicationPeerResponse enableReplicationPeer(RpcController controller,<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      EnableReplicationPeerRequest request) throws ServiceException {<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    try {<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>      long procId = master.enableReplicationPeer(request.getPeerId());<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>      return EnableReplicationPeerResponse.newBuilder().setProcId(procId).build();<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>    } catch (ReplicationException | IOException e) {<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>      throw new ServiceException(e);<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>    }<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span>  }<a name="line.1991"></a>
-<span class="sourceLineNo">1992</span><a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>  @Override<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>  public DisableReplicationPeerResponse disableReplicationPeer(RpcController controller,<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>      DisableReplicationPeerRequest request) throws ServiceException {<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>    try {<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>      long procId = master.disableReplicationPeer(request.getPeerId());<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>      return DisableReplicationPeerResponse.newBuilder().setProcId(procId).build();<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    } catch (ReplicationException | IOException e) {<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>      throw new ServiceException(e);<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>    }<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>  }<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span><a name="line.2003"></a>
-<span class="sourceLineNo">2004</span>  @Override<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>  public GetReplicationPeerConfigResponse getReplicationPeerConfig(RpcController controller,<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>      GetReplicationPeerConfigRequest request) throws ServiceException {<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>    GetReplicationPeerConfigResponse.Builder response = GetReplicationPeerConfigResponse<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>        .newBuilder();<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>    try {<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span>      String peerId = request.getPeerId();<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>      ReplicationPeerConfig peerConfig = master.getReplicationPeerConfig(peerId);<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span>      response.setPeerId(peerId);<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>      response.setPeerConfig(ReplicationPeerConfigUtil.convert(peerConfig));<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>    } catch (ReplicationException | IOException e) {<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>      throw new ServiceException(e);<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>    }<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>    return response.build();<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>  }<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span><a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>  @Override<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>  public UpdateReplicationPeerConfigResponse updateReplicationPeerConfig(RpcController controller,<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span>      UpdateReplicationPeerConfigRequest request) throws ServiceException {<a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>    try {<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>      long procId = master.updateReplicationPeerConfig(request.getPeerId(),<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span>        ReplicationPeerConfigUtil.convert(request.getPeerConfig()));<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>      return UpdateReplicationPeerConfigResponse.newBuilder().setProcId(procId).build();<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>    } catch (ReplicationException | IOException e) {<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>      throw new ServiceException(e);<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>    }<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>  }<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span><a name="line.2031"></a>
-<span class="sourceLineNo">2032</span>  @Override<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>  public TransitReplicationPeerSyncReplicationStateResponse<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>      transitReplicationPeerSyncReplicationState(RpcController controller,<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>          TransitReplicationPeerSyncReplicationStateRequest request) throws ServiceException {<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>    try {<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>      long procId = master.transitReplicationPeerSyncReplicationState(request.getPeerId(),<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span>        ReplicationPeerConfigUtil.toSyncReplicationState(request.getSyncReplicationState()));<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>      return TransitReplicationPeerSyncReplicationStateResponse.newBuilder().setProcId(procId)<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>          .build();<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>    } catch (ReplicationException | IOException e) {<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>      throw new ServiceException(e);<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>    }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span>  }<a name="line.2044"></a>
-<span class="sourceLineNo">2045</span><a name="line.2045"></a>
-<span class="sourceLineNo">2046</span>  @Override<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>  public ListReplicationPeersResponse listReplicationPeers(RpcController controller,<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span>      ListReplicationPeersRequest request) throws ServiceException {<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>    ListReplicationPeersResponse.Builder response = ListReplicationPeersResponse.newBuilder();<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>    try {<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>      List&lt;ReplicationPeerDescription&gt; peers = master<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>          .listReplicationPeers(request.hasRegex() ? request.getRegex() : null);<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span>      for (ReplicationPeerDescription peer : peers) {<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>        response.addPeerDesc(ReplicationPeerConfigUtil.toProtoReplicationPeerDescription(peer));<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>      }<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span>    } catch (ReplicationException | IOException e) {<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>      throw new ServiceException(e);<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>    }<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>    return response.build();<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>  }<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span><a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>  @Override<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>  public ListDecommissionedRegionServersResponse listDecommissionedRegionServers(<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>      RpcController controller, ListDecommissionedRegionServersRequest request)<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>      throws ServiceException {<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>    ListDecommissionedRegionServersResponse.Builder response =<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>        ListDecommissionedRegionServersResponse.newBuilder();<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>    try {<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>      master.checkInitialized();<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      if (master.cpHost != null) {<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>        master.cpHost.preListDecommissionedRegionServers();<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span>      }<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>      List&lt;ServerName&gt; servers = master.listDecommissionedRegionServers();<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>      response.addAllServerName((servers.stream().map(server -&gt; ProtobufUtil.toServerName(server)))<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>          .collect(Collectors.toList()));<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>      if (master.cpHost != null) {<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>        master.cpHost.postListDecommissionedRegionServers();<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span>      }<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>    } catch (IOException io) {<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>      throw new ServiceException(io);<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>    }<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span><a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>    return response.build();<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>  }<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span><a name="line.2085"></a>
-<span class="sourceLineNo">2086</span>  @Override<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>  public DecommissionRegionServersResponse decommissionRegionServers(RpcController controller,<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>      DecommissionRegionServersRequest request) throws ServiceException {<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>    try {<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>      master.checkInitialized();<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>      List&lt;ServerName&gt; servers = request.getServerNameList().stream()<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span>          .map(pbServer -&gt; ProtobufUtil.toServerName(pbServer)).collect(Collectors.toList());<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>      boolean offload = request.getOffload();<a name="line.2093"></a>
+<span class="sourceLineNo">1814</span>      }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>    } catch (IOException e) {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>      throw new ServiceException(e);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>    } catch (KeeperException e) {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>      throw new ServiceException(e);<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>    }<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    return response.build();<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span><a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>  @Override<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>  public IsSplitOrMergeEnabledResponse isSplitOrMergeEnabled(RpcController controller,<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>    IsSplitOrMergeEnabledRequest request) throws ServiceException {<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>    IsSplitOrMergeEnabledResponse.Builder response = IsSplitOrMergeEnabledResponse.newBuilder();<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>    response.setEnabled(master.isSplitOrMergeEnabled(convert(request.getSwitchType())));<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>    return response.build();<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span><a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>  @Override<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>  public NormalizeResponse normalize(RpcController controller,<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>      NormalizeRequest request) throws ServiceException {<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    rpcPreCheck("normalize");<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>    try {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>      return NormalizeResponse.newBuilder().setNormalizerRan(master.normalizeRegions()).build();<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>    } catch (IOException ex) {<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>      throw new ServiceException(ex);<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>    }<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>  }<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span><a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>  @Override<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>  public SetNormalizerRunningResponse setNormalizerRunning(RpcController controller,<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>      SetNormalizerRunningRequest request) throws ServiceException {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    rpcPreCheck("setNormalizerRunning");<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span><a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>    // Sets normalizer on/off flag in ZK.<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>    boolean prevValue = master.getRegionNormalizerTracker().isNormalizerOn();<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>    boolean newValue = request.getOn();<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>    try {<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>      master.getRegionNormalizerTracker().setNormalizerOn(newValue);<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>    } catch (KeeperException ke) {<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>      LOG.warn("Error flipping normalizer switch", ke);<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>    }<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>    LOG.info("{} set normalizerSwitch={}", master.getClientIdAuditPrefix(), newValue);<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>    return SetNormalizerRunningResponse.newBuilder().setPrevNormalizerValue(prevValue).build();<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>  }<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span><a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>  @Override<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>  public IsNormalizerEnabledResponse isNormalizerEnabled(RpcController controller,<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>      IsNormalizerEnabledRequest request) throws ServiceException {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>    IsNormalizerEnabledResponse.Builder response = IsNormalizerEnabledResponse.newBuilder();<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>    response.setEnabled(master.isNormalizerOn());<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>    return response.build();<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>  }<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span><a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>  /**<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>   * Returns the security capabilities in effect on the cluster<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>   */<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>  @Override<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>  public SecurityCapabilitiesResponse getSecurityCapabilities(RpcController controller,<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>      SecurityCapabilitiesRequest request) throws ServiceException {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>    SecurityCapabilitiesResponse.Builder response = SecurityCapabilitiesResponse.newBuilder();<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>    try {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>      master.checkInitialized();<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>      Set&lt;SecurityCapabilitiesResponse.Capability&gt; capabilities = new HashSet&lt;&gt;();<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>      // Authentication<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>      if (User.isHBaseSecurityEnabled(master.getConfiguration())) {<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>        capabilities.add(SecurityCapabilitiesResponse.Capability.SECURE_AUTHENTICATION);<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>      } else {<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>        capabilities.add(SecurityCapabilitiesResponse.Capability.SIMPLE_AUTHENTICATION);<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>      }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>      // A coprocessor that implements AccessControlService can provide AUTHORIZATION and<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>      // CELL_AUTHORIZATION<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>      if (master.cpHost != null &amp;&amp; hasAccessControlServiceCoprocessor(master.cpHost)) {<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>        if (AccessChecker.isAuthorizationSupported(master.getConfiguration())) {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>          capabilities.add(SecurityCapabilitiesResponse.Capability.AUTHORIZATION);<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        }<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>        if (AccessController.isCellAuthorizationSupported(master.getConfiguration())) {<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>          capabilities.add(SecurityCapabilitiesResponse.Capability.CELL_AUTHORIZATION);<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>        }<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>      }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>      // A coprocessor that implements VisibilityLabelsService can provide CELL_VISIBILITY.<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>      if (master.cpHost != null &amp;&amp; hasVisibilityLabelsServiceCoprocessor(master.cpHost)) {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>        if (VisibilityController.isCellAuthorizationSupported(master.getConfiguration())) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>          capabilities.add(SecurityCapabilitiesResponse.Capability.CELL_VISIBILITY);<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>        }<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>      }<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>      response.addAllCapabilities(capabilities);<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>    } catch (IOException e) {<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>      throw new ServiceException(e);<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>    }<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>    return response.build();<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>  }<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span><a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>  /**<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>   * Determines if there is a MasterCoprocessor deployed which implements<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>   * {@link org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService.Interface}.<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>   */<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>  boolean hasAccessControlServiceCoprocessor(MasterCoprocessorHost cpHost) {<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>    return checkCoprocessorWithService(<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>        cpHost.findCoprocessors(MasterCoprocessor.class), AccessControlService.Interface.class);<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>  }<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span><a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>  /**<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>   * Determines if there is a MasterCoprocessor deployed which implements<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>   * {@link org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService.Interface}.<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>   */<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>  boolean hasVisibilityLabelsServiceCoprocessor(MasterCoprocessorHost cpHost) {<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>    return checkCoprocessorWithService(<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>        cpHost.findCoprocessors(MasterCoprocessor.class),<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>        VisibilityLabelsService.Interface.class);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>  }<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span><a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>  /**<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>   * Determines if there is a coprocessor implementation in the provided argument which extends<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>   * or implements the provided {@code service}.<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>   */<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>  boolean checkCoprocessorWithService(<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>      List&lt;MasterCoprocessor&gt; coprocessorsToCheck, Class&lt;?&gt; service) {<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>    if (coprocessorsToCheck == null || coprocessorsToCheck.isEmpty()) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>      return false;<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>    }<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>    for (MasterCoprocessor cp : coprocessorsToCheck) {<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>      if (service.isAssignableFrom(cp.getClass())) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>        return true;<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>      }<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>    }<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>    return false;<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>  }<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span><a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>  private MasterSwitchType convert(MasterProtos.MasterSwitchType switchType) {<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>    switch (switchType) {<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>      case SPLIT:<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>        return MasterSwitchType.SPLIT;<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>      case MERGE:<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>        return MasterSwitchType.MERGE;<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>      default:<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>        break;<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>    }<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>    return null;<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>  }<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span><a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>  @Override<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>  public AddReplicationPeerResponse addReplicationPeer(RpcController controller,<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>      AddReplicationPeerRequest request) throws ServiceException {<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>    try {<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>      long procId = master.addReplicationPeer(request.getPeerId(),<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>        ReplicationPeerConfigUtil.convert(request.getPeerConfig()),<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>        request.getPeerState().getState().equals(ReplicationState.State.ENABLED));<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>      return AddReplicationPeerResponse.newBuilder().setProcId(procId).build();<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>    } catch (ReplicationException | IOException e) {<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>      throw new ServiceException(e);<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>    }<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>  }<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span><a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>  @Override<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>  public RemoveReplicationPeerResponse removeReplicationPeer(RpcController controller,<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>      RemoveReplicationPeerRequest request) throws ServiceException {<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>    try {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>      long procId = master.removeReplicationPeer(request.getPeerId());<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>      return RemoveReplicationPeerResponse.newBuilder().setProcId(procId).build();<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>    } catch (ReplicationException | IOException e) {<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>      throw new ServiceException(e);<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>    }<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>  }<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span><a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>  @Override<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>  public EnableReplicationPeerResponse enableReplicationPeer(RpcController controller,<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>      EnableReplicationPeerRequest request) throws ServiceException {<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>    try {<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>      long procId = master.enableReplicationPeer(request.getPeerId());<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>      return EnableReplicationPeerResponse.newBuilder().setProcId(procId).build();<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>    } catch (ReplicationException | IOException e) {<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>      throw new ServiceException(e);<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>    }<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>  }<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span><a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>  @Override<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>  public DisableReplicationPeerResponse disableReplicationPeer(RpcController controller,<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>      DisableReplicationPeerRequest request) throws ServiceException {<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>    try {<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>      long procId = master.disableReplicationPeer(request.getPeerId());<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>      return DisableReplicationPeerResponse.newBuilder().setProcId(procId).build();<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>    } catch (ReplicationException | IOException e) {<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>      throw new ServiceException(e);<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>    }<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>  }<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span><a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>  @Override<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>  public GetReplicationPeerConfigResponse getReplicationPeerConfig(RpcController controller,<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>      GetReplicationPeerConfigRequest request) throws ServiceException {<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>    GetReplicationPeerConfigResponse.Builder response = GetReplicationPeerConfigResponse<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>        .newBuilder();<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>    try {<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>      String peerId = request.getPeerId();<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>      ReplicationPeerConfig peerConfig = master.getReplicationPeerConfig(peerId);<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>      response.setPeerId(peerId);<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>      response.setPeerConfig(ReplicationPeerConfigUtil.convert(peerConfig));<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>    } catch (ReplicationException | IOException e) {<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>      throw new ServiceException(e);<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>    }<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>    return response.build();<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>  }<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span><a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>  @Override<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>  public UpdateReplicationPeerConfigResponse updateReplicationPeerConfig(RpcController controller,<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>      UpdateReplicationPeerConfigRequest request) throws ServiceException {<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>    try {<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>      long procId = master.updateReplicationPeerConfig(request.getPeerId(),<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>        ReplicationPeerConfigUtil.convert(request.getPeerConfig()));<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>      return UpdateReplicationPeerConfigResponse.newBuilder().setProcId(procId).build();<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>    } catch (ReplicationException | IOException e) {<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>      throw new ServiceException(e);<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>    }<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>  }<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span><a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>  @Override<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>  public TransitReplicationPeerSyncReplicationStateResponse<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>      transitReplicationPeerSyncReplicationState(RpcController controller,<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>          TransitReplicationPeerSyncReplicationStateRequest request) throws ServiceException {<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>    try {<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>      long procId = master.transitReplicationPeerSyncReplicationState(request.getPeerId(),<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>        ReplicationPeerConfigUtil.toSyncReplicationState(request.getSyncReplicationState()));<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>      return TransitReplicationPeerSyncReplicationStateResponse.newBuilder().setProcId(procId)<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>          .build();<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>    } catch (ReplicationException | IOException e) {<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>      throw new ServiceException(e);<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>    }<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>  }<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span><a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>  @Override<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>  public ListReplicationPeersResponse listReplicationPeers(RpcController controller,<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>      ListReplicationPeersRequest request) throws ServiceException {<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>    ListReplicationPeersResponse.Builder response = ListReplicationPeersResponse.newBuilder();<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>    try {<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>      List&lt;ReplicationPeerDescription&gt; peers = master<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>          .listReplicationPeers(request.hasRegex() ? request.getRegex() : null);<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>      for (ReplicationPeerDescription peer : peers) {<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>        response.addPeerDesc(ReplicationPeerConfigUtil.toProtoReplicationPeerDescription(peer));<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>      }<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>    } catch (ReplicationException | IOException e) {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>      throw new ServiceException(e);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>    }<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>    return response.build();<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>  }<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span><a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>  @Override<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>  public ListDecommissionedRegionServersResponse listDecommissionedRegionServers(<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>      RpcController controller, ListDecommissionedRegionServersRequest request)<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>      throws ServiceException {<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>    ListDecommissionedRegionServersResponse.Builder response =<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>        ListDecommissionedRegionServersResponse.newBuilder();<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>    try {<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>      master.checkInitialized();<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>      if (master.cpHost != null) {<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>        master.cpHost.preListDecommissionedRegionServers();<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>      }<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>      List&lt;ServerName&gt; servers = master.listDecommissionedRegionServers();<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>      response.addAllServerName((servers.stream().map(server -&gt; ProtobufUtil.toServerName(server)))<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>          .collect(Collectors.toList()));<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>      if (master.cpHost != null) {<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>        master.cpHost.postListDecommissionedRegionServers();<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>      }<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>    } catch (IOException io) {<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>      throw new ServiceException(io);<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>    }<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span><a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>    return response.build();<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>  }<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span><a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>  @Override<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>  public DecommissionRegionServersResponse decommissionRegionServers(RpcController controller,<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>      DecommissionRegionServersRequest request) throws ServiceException {<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>    try {<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>      master.checkInitialized();<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>      List&lt;ServerName&gt; servers = request.getServerNameList().stream()<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>          .map(pbServer -&gt; ProtobufUtil.toServerName(pbServer)).collect(Collectors.toList());<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>      boolean offload = request.getOffload();<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>      if (master.cpHost != null) {<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>        master.cpHost.preDecommissionRegionServers(servers, offload);<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>      }<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>      master.decommissionRegionServers(servers, offload);<a name="line.2093"></a>
 <span class="sourceLineNo">2094</span>      if (master.cpHost != null) {<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>        master.cpHost.preDecommissionRegionServers(servers, offload);<a name="line.2095"></a>
+<span class="sourceLineNo">2095</span>        master.cpHost.postDecommissionRegionServers(servers, offload);<a name="line.2095"></a>
 <span class="sourceLineNo">2096</span>      }<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>      master.decommissionRegionServers(servers, offload);<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>      if (master.cpHost != null) {<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span>        master.cpHost.postDecommissionRegionServers(servers, offload);<a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>      }<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>    } catch (IOException io) {<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      throw new ServiceException(io);<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    }<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span><a name="line.2104"></a>
-<span class="sourceLineNo">2105</span>    return DecommissionRegionServersResponse.newBuilder().build();<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span>  }<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span><a name="line.2107"></a>
-<span class="sourceLineNo">2108</span>  @Override<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>  public RecommissionRegionServerResponse recommissionRegionServer(RpcController controller,<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>      RecommissionRegionServerRequest request) throws ServiceException {<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>    try {<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span>      master.checkInitialized();<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span>      ServerName server = ProtobufUtil.toServerName(request.getServerName());<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>      List&lt;byte[]&gt; encodedRegionNames = request.getRegionList().stream()<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span>          .map(regionSpecifier -&gt; regionSpecifier.getValue().toByteArray())<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>          .collect(Collectors.toList());<a name="line.2116"></a>
+<span class="sourceLineNo">2097</span>    } catch (IOException io) {<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>      throw new ServiceException(io);<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>    }<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span><a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>    return DecommissionRegionServersResponse.newBuilder().build();<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>  }<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span><a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>  @Override<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>  public RecommissionRegionServerResponse recommissionRegionServer(RpcController controller,<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>      RecommissionRegionServerRequest request) throws ServiceException {<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>    try {<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>      master.checkInitialized();<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>      ServerName server = ProtobufUtil.toServerName(request.getServerName());<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>      List&lt;byte[]&gt; encodedRegionNames = request.getRegionList().stream()<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>          .map(regionSpecifier -&gt; regionSpecifier.getValue().toByteArray())<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>          .collect(Collectors.toList());<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>      if (master.cpHost != null) {<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>        master.cpHost.preRecommissionRegionServer(server, encodedRegionNames);<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>      }<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>      master.recommissionRegionServer(server, encodedRegionNames);<a name="line.2116"></a>
 <span class="sourceLineNo">2117</span>      if (master.cpHost != null) {<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span>        master.cpHost.preRecommissionRegionServer(server, encodedRegionNames);<a name="line.2118"></a>
+<span class="sourceLineNo">2118</span>        master.cpHost.postRecommissionRegionServer(server, encodedRegionNames);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>      }<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>      master.recommissionRegionServer(server, encodedRegionNames);<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>      if (master.cpHost != null) {<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>        master.cpHost.postRecommissionRegionServer(server, encodedRegionNames);<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>      }<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>    } catch (IOException io) {<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>      throw new ServiceException(io);<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>    }<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span><a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>    return RecommissionRegionServerResponse.newBuilder().build();<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>  }<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span><a name="line.2130"></a>
-<span class="sourceLineNo">2131</span>  @Override<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span>  public LockResponse requestLock(RpcController controller, final LockRequest request)<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      throws ServiceException {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>    try {<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>      if (request.getDescription().isEmpty()) {<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>        throw new IllegalArgumentException("Empty description");<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span>      }<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>      NonceProcedureRunnable npr;<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>      LockType type = LockType.valueOf(request.getLockType().name());<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>      if (request.getRegionInfoCount() &gt; 0) {<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>        final RegionInfo[] regionInfos = new RegionInfo[request.getRegionInfoCount()];<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span>        for (int i = 0; i &lt; request.getRegionInfoCount(); ++i) {<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span>          regionInfos[i] = ProtobufUtil.toRegionInfo(request.getRegionInfo(i));<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span>        }<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>        npr = new NonceProcedureRunnable(master, request.getNonceGroup(), request.getNonce()) {<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>          @Override<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>          protected void run() throws IOException {<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>            setProcId(master.getLockManager().remoteLocks().requestRegionsLock(regionInfos,<a name="line.2148"></a>
-<span class="sourceLineNo">2149</span>                request.getDescription(), getNonceKey()));<a name="line.2149"></a>
-<span class="sourceLineNo">2150</span>          }<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span><a name="line.2151"></a>
-<span class="sourceLineNo">2152</span>          @Override<a name="line.2152"></a>
-<span class="sourceLineNo">2153</span>          protected String getDescription() {<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span>            return "RequestLock";<a name="line.2154"></a>
-<span class="sourceLineNo">2155</span>          }<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span>        };<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span>      } else if (request.hasTableName()) {<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span>        final TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.2158"></a>
-<span class="sourceLineNo">2159</span>        npr = new NonceProcedureRunnable(master, request.getNonceGroup(), request.getNonce()) {<a name="line.2159"></a>
-<span class="sourceLineNo">2160</span>          @Override<a name="line.2160"></a>
-<span class="sourceLineNo">2161</span>          protected void run() throws IOException {<a name="line.2161"></a>
-<span class="sourceLineNo">2162</span>            setProcId(master.getLockManager().remoteLocks().requestTableLock(tableName, type,<a name="line.2162"></a>
-<span class="sourceLineNo">2163</span>                request.getDescription(), getNonceKey()));<a name="line.2163"></a>
-<span class="sourceLineNo">2164</span>          }<a name="line.2164"></a>
-<span class="sourceLineNo">2165</span><a name="line.2165"></a>
-<span class="sourceLineNo">2166</span>          @Override<a name="line.2166"></a>
-<span class="sourceLineNo">2167</span>          protected String getDescription() {<a name="line.2167"></a>
-<span class="sourceLineNo">2168</span>            return "RequestLock";<a name="line.2168"></a>
-<span class="sourceLineNo">2169</span>          }<a name="line.2169"></a>
-<span class="sourceLineNo">2170</span>        };<a name="line.2170"></a>
-<span class="sourceLineNo">2171</span>      } else if (request.hasNamespace()) {<a name="line.2171"></a>
-<span class="sourceLineNo">2172</span>        npr = new NonceProcedureRunnable(master, request.getNonceGroup(), request.getNonce()) {<a name="line.2172"></a>
-<span class="sourceLineNo">2173</span>          @Override<a name="line.2173"></a>
-<span class="sourceLineNo">2174</span>          protected void run() throws IOException {<a name="line.2174"></a>
-<span class="sourceLineNo">2175</span>            setProcId(master.getLockManager().remoteLocks().requestNamespaceLock(<a name="line.2175"></a>
-<span class="sourceLineNo">2176</span>                request.getNamespace(), type, request.getDescription(), getNonceKey()));<a name="line.2176"></a>
-<span class="sourceLineNo">2177</span>          }<a name="line.2177"></a>
-<span class="sourceLineNo">2178</span><a name="line.2178"></a>
-<span class="sourceLineNo">2179</span>          @Override<a name="line.2179"></a>
-<span class="sourceLineNo">2180</span>          protected String getDescription() {<a name="line.2180"></a>
-<span class="sourceLineNo">2181</span>            return "RequestLock";<a name="line.2181"></a>
-<span class="sourceLineNo">2182</span>          }<a name="line.2182"></a>
-<span class="sourceLineNo">2183</span>        };<a name="line.2183"></a>
-<span class="sourceLineNo">2184</span>      } else {<a name="line.2184"></a>
-<span class="sourceLineNo">2185</span>        throw new IllegalArgumentException("one of table/namespace/region should be specified");<a name="line.2185"></a>
-<span class="sourceLineNo">2186</span>      }<a name="line.2186"></a>
-<span class="sourceLineNo">2187</span>      long procId = MasterProcedureUtil.submitProcedure(npr);<a name="line.2187"></a>
-<span class="sourceLineNo">2188</span>      return LockResponse.newBuilder().setProcId(procId).build();<a name="line.2188"></a>
-<span class="sourceLineNo">2189</span>    } catch (IllegalArgumentException e) {<a name="line.2189"></a>
-<span class="sourceLineNo">2190</span>      LOG.warn("Exception when queuing lock", e);<a name="line.2190"></a>
-<span class="sourceLineNo">2191</span>      throw new ServiceException(new DoNotRetryIOException(e));<a name="line.2191"></a>
-<span class="sourceLineNo">2192</span>    } catch (IOException e) {<a name="line.2192"></a>
-<span class="sourceLineNo">2193</span>      LOG.warn("Exception when queuing lock", e);<a name="line.2193"></a>
-<span class="sourceLineNo">2194</span>      throw new ServiceException(e);<a name="line.2194"></a>
-<span class="sourceLineNo">2195</span>    }<a name="line.2195"></a>
-<span class="sourceLineNo">2196</span>  }<a name="line.2196"></a>
-<span class="sourceLineNo">2197</span><a name="line.2197"></a>
-<span class="sourceLineNo">2198</span>  /**<a name="line.2198"></a>
-<span class="sourceLineNo">2199</span>   * @return LOCKED, if procedure is found and it has the lock; else UNLOCKED.<a name="line.2199"></a>
-<span class="sourceLineNo">2200</span>   * @throws ServiceException if given proc id is found but it is not a LockProcedure.<a name="line.2200"></a>
-<span class="sourceLineNo">2201</span>   */<a name="line.2201"></a>
-<span class="sourceLineNo">2202</span>  @Override<a name="line.2202"></a>
-<span class="sourceLineNo">2203</span>  public LockHeartbeatResponse lockHeartbeat(RpcController controller, LockHeartbeatRequest request)<a name="line.2203"></a>
-<span class="sourceLineNo">2204</span>      throws ServiceException {<a name="line.2204"></a>
-<span class="sourceLineNo">2205</span>    try {<a name="line.2205"></a>
-<span class="sourceLineNo">2206</span>      if (master.getLockManager().remoteLocks().lockHeartbeat(request.getProcId(),<a name="line.2206"></a>
-<span class="sourceLineNo">2207</span>          request.getKeepAlive())) {<a name="line.2207"></a>
-<span class="sourceLineNo">2208</span>        return LockHeartbeatResponse.newBuilder().setTimeoutMs(<a name="line.2208"></a>
-<span class="sourceLineNo">2209</span>            master.getConfiguration().getInt(LockProcedure.REMOTE_LOCKS_TIMEOUT_MS_CONF,<a name="line.2209"></a>
-<span class="sourceLineNo">2210</span>                LockProcedure.DEFAULT_REMOTE_LOCKS_TIMEOUT_MS))<a name="line.2210"></a>
-<span class="sourceLineNo">2211</span>            .setLockStatus(LockHeartbeatResponse.LockStatus.LOCKED).build();<a name="line.2211"></a>
-<span class="sourceLineNo">2212</span>      } else {<a name="line.2212"></a>
-<span class="sourceLineNo">2213</span>        return LockHeartbeatResponse.newBuilder()<a name="line.2213"></a>
-<span class="sourceLineNo">2214</span>            .setLockStatus(LockHeartbeatResponse.LockStatus.UNLOCKED).build();<a name="line.2214"></a>
-<span class="sourceLineNo">2215</span>      }<a name="line.2215"></a>
-<span class="sourceLineNo">2216</span>    } catch (IOException e) {<a name="line.2216"></a>
-<span class="sourceLineNo">2217</span>      throw new ServiceException(e);<a name="line.2217"></a>
-<span class="sourceLineNo">2218</span>    }<a name="line.2218"></a>
-<span class="sourceLineNo">2219</span>  }<a name="line.2219"></a>
-<span class="sourceLineNo">2220</span><a name="line.2220"></a>
-<span class="sourceLineNo">2221</span>  @Override<a name="line.2221"></a>
-<span class="sourceLineNo">2222</span>  public RegionSpaceUseReportResponse reportRegionSpaceUse(RpcController controller,<a name="line.2222"></a>
-<span class="sourceLineNo">2223</span>      RegionSpaceUseReportRequest request) throws ServiceException {<a name="line.2223"></a>
-<span class="sourceLineNo">2224</span>    try {<a name="line.2224"></a>
-<span class="sourceLineNo">2225</span>      master.checkInitialized();<a name="line.2225"></a>
-<span class="sourceLineNo">2226</span>      if (!QuotaUtil.isQuotaEnabled(master.getConfiguration())) {<a name="line.2226"></a>
-<span class="sourceLineNo">2227</span>        return RegionSpaceUseReportResponse.newBuilder().build();<a name="line.2227"></a>
-<span class="sourceLineNo">2228</span>      }<a name="line.2228"></a>
-<span class="sourceLineNo">2229</span>      MasterQuotaManager quotaManager = this.master.getMasterQuotaManager();<a name="line.2229"></a>
-<span class="sourceLineNo">2230</span>      if (quotaManager != null) {<a name="line.2230"></a>
-<span class="sourceLineNo">2231</span>        final long now = EnvironmentEdgeManager.currentTime();<a name="line.2231"></a>
-<span class="sourceLineNo">2232</span>        for (RegionSpaceUse report : request.getSpaceUseList()) {<a name="line.2232"></a>
-<span class="sourceLineNo">2233</span>          quotaManager.addRegionSize(ProtobufUtil.toRegionInfo(report.getRegionInfo()),<a name="line.2233"></a>
-<span class="sourceLineNo">2234</span>            report.getRegionSize(), now);<a name="line.2234"></a>
-<span class="sourceLineNo">2235</span>        }<a name="line.2235"></a>
-<span class="sourceLineNo">2236</span>      } else {<a name="line.2236"></a>
-<span class="sourceLineNo">2237</span>        LOG.debug(<a name="line.2237"></a>
-<span class="sourceLineNo">2238</span>          "Received region space usage report but HMaster is not ready to process it, skipping");<a name="line.2238"></a>
-<span class="sourceLineNo">2239</span>      }<a name="line.2239"></a>
-<span class="sourceLineNo">2240</span>      return RegionSpaceUseReportResponse.newBuilder().build();<a name="line.2240"></a>
-<span class="sourceLineNo">2241</span>    } catch (Exception e) {<a name="line.2241"></a>
-<span class="sourceLineNo">2242</span>      throw new ServiceException(e);<a name="line.2242"></a>
-<span class="sourceLineNo">2243</span>    }<a name="line.2243"></a>
-<span class="sourceLineNo">2244</span>  }<a name="line.2244"></a>
-<span class="sourceLineNo">2245</span><a name="line.2245"></a>
-<span class="sourceLineNo">2246</span>  @Override<a name="line.2246"></a>
-<span class="sourceLineNo">2247</span>  public GetSpaceQuotaRegionSizesResponse getSpaceQuotaRegionSizes(<a name="line.2247"></a>
-<span class="sourceLineNo">2248</span>      RpcController controller, GetSpaceQuotaRegionSizesRequest request) throws ServiceException {<a name="line.2248"></a>
-<span class="sourceLineNo">2249</span>    try {<a name="line.2249"></a>
-<span class="sourceLineNo">2250</span>      master.checkInitialized();<a name="line.2250"></a>
-<span class="sourceLineNo">2251</span>      MasterQuotaManager quotaManager = this.master.getMasterQuotaManager();<a name="line.2251"></a>
-<span class="sourceLineNo">2252</span>      GetSpaceQuotaRegionSizesResponse.Builder builder =<a name="line.2252"></a>
-<span class="sourceLineNo">2253</span>          GetSpaceQuotaRegionSizesResponse.newBuilder();<a name="line.2253"></a>
-<span class="sourceLineNo">2254</span>      if (quotaManager != null) {<a name="line.2254"></a>
-<span class="sourceLineNo">2255</span>        Map&lt;RegionInfo,Long&gt; regionSizes = quotaManager.snapshotRegionSizes();<a name="line.2255"></a>
-<span class="sourceLineNo">2256</span>        Map&lt;TableName,Long&gt; regionSizesByTable = new HashMap&lt;&gt;();<a name="line.2256"></a>
-<span class="sourceLineNo">2257</span>        // Translate hregioninfo+long -&gt; tablename+long<a name="line.2257"></a>
-<span class="sourceLineNo">2258</span>        for (Entry&lt;RegionInfo,Long&gt; entry : regionSizes.entrySet()) {<a name="line.2258"></a>
-<span class="sourceLineNo">2259</span>          final TableName tableName = entry.getKey().getTable();<a name="line.2259"></a>
-<span class="sourceLineNo">2260</span>          Long prevSize = regionSizesByTable.get(tableName);<a name="line.2260"></a>
-<span class="sourceLineNo">2261</span>          if (prevSize == null) {<a name="line.2261"></a>
-<span class="sourceLineNo">2262</span>            prevSize = 0L;<a name="line.2262"></a>
-<span class="sourceLineNo">2263</span>          }<a name="line.2263"></a>
-<span class="sourceLineNo">2264</span>          regionSizesByTable.put(tableName, prevSize + entry.getValue());<a name="line.2264"></a>
-<span class="sourceLineNo">2265</span>        }<a name="line.2265"></a>
-<span class="sourceLineNo">2266</span>        // Serialize them into the protobuf<a name="line.2266"></a>
-<span class="sourceLineNo">2267</span>        for (Entry&lt;TableName,Long&gt; tableSize : regionSizesByTable.entrySet()) {<a name="line.2267"></a>
-<span class="sourceLineNo">2268</span>          builder.addSizes(RegionSizes.newBuilder()<a name="line.2268"></a>
-<span class="sourceLineNo">2269</span>              .setTableName(ProtobufUtil.toProtoTableName(tableSize.getKey()))<a name="line.2269"></a>
-<span class="sourceLineNo">2270</span>              .setSize(tableSize.getValue()).build());<a name="line.2270"></a>
-<span class="sourceLineNo">2271</span>        }<a name="line.2271"></a>
-<span class="sourceLineNo">2272</span>        return builder.build();<a name="line.2272"></a>
-<span class="sourceLineNo">2273</span>      } else {<a name="line.2273"></a>
-<span class="sourceLineNo">2274</span>        LOG.debug(<a name="line.2274"></a>
-<span class="sourceLineNo">2275</span>          "Received space quota region size report but HMaster is not ready to process it, skipping");<a name="line.2275"></a>
-<span class="sourceLineNo">2276</span>      }<a name="line.2276"></a>
-<span class="sourceLineNo">2277</span>      return builder.build();<a name="line.2277"></a>
-<span class="sourceLineNo">2278</span>    } catch (Exception e) {<a name="line.2278"></a>
-<span class="sourceLineNo">2279</span>      throw new ServiceException(e);<a name="line.2279"></a>
-<span class="sourceLineNo">2280</span>    }<a name="line.2280"></a>
-<span class="sourceLineNo">2281</span>  }<a name="line.2281"></a>
-<span class="sourceLineNo">2282</span><a name="line.2282"></a>
-<span class="sourceLineNo">2283</span>  @Override<a name="line.2283"></a>
-<span class="sourceLineNo">2284</span>  public GetQuotaStatesResponse getQuotaStates(<a name="line.2284"></a>
-<span class="sourceLineNo">2285</span>      RpcController controller, GetQuotaStatesRequest request) throws ServiceException {<a name="line.2285"></a>
-<span class="sourceLineNo">2286</span>    try {<a name="line.2286"></a>
-<span class="sourceLineNo">2287</span>      master.checkInitialized();<a name="line.2287"></a>
-<span class="sourceLineNo">2288</span>      QuotaObserverChore quotaChore = this.master.getQuotaObserverChore();<a name="line.2288"></a>
-<span class="sourceLineNo">2289</span>      GetQuotaStatesResponse.Builder builder = GetQuotaStatesResponse.newBuilder();<a name="line.2289"></a>
-<span class="sourceLineNo">2290</span>      if (quotaChore != null) {<a name="line.2290"></a>
-<span class="sourceLineNo">2291</span>        // The "current" view of all tables with quotas<a name="line.2291"></a>
-<span class="sourceLineNo">2292</span>        Map&lt;TableName, SpaceQuotaSnapshot&gt; tableSnapshots = quotaChore.getTableQuotaSnapshots();<a name="line.2292"></a>
-<span class="sourceLineNo">2293</span>        for (Entry&lt;TableName, SpaceQuotaSnapshot&gt; entry : tableSnapshots.entrySet()) {<a name="line.2293"></a>
-<span class="sourceLineNo">2294</span>          builder.addTableSnapshots(<a name="line.2294"></a>
-<span class="sourceLineNo">2295</span>              TableQuotaSnapshot.newBuilder()<a name="line.2295"></a>
-<span class="sourceLineNo">2296</span>                  .setTableName(ProtobufUtil.toProtoTableName(entry.getKey()))<a name="line.2296"></a>
-<span class="sourceLineNo">2297</span>                  .setSnapshot(SpaceQuotaSnapshot.toProtoSnapshot(entry.getValue())).build());<a name="line.2297"></a>
-<span class="sourceLineNo">2298</span>        }<a name="line.2298"></a>
-<span class="sourceLineNo">2299</span>        // The "current" view of all namespaces with quotas<a name="line.2299"></a>
-<span class="sourceLineNo">2300</span>        Map&lt;String, SpaceQuotaSnapshot&gt; nsSnapshots = quotaChore.getNamespaceQuotaSnapshots();<a name="line.2300"></a>
-<span class="sourceLineNo">2301</span>        for (Entry&lt;String, SpaceQuotaSnapshot&gt; entry : nsSnapshots.entrySet()) {<a name="line.2301"></a>
-<span class="sourceLineNo">2302</span>          builder.addNsSnapshots(<a name="line.2302"></a>
-<span class="sourceLineNo">2303</span>              NamespaceQuotaSnapshot.newBuilder()<a name="line.2303"></a>
-<span class="sourceLineNo">2304</span>                  .setNamespace(entry.getKey())<a name="line.2304"></a>
-<span class="sourceLineNo">2305</span>                  .setSnapshot(SpaceQuotaSnapshot.toProtoSnapshot(entry.getValue())).build());<a name="line.2305"></a>
-<span class="sourceLineNo">2306</span>        }<a name="line.2306"></a>
-<span class="sourceLineNo">2307</span>        return builder.build();<a name="line.2307"></a>
-<span class="sourceLineNo">2308</span>      }<a name="line.2308"></a>
-<span class="sourceLineNo">2309</span>      return builder.build();<a name="line.2309"></a>
-<span class="sourceLineNo">2310</span>    } catch (Exception e) {<a name="line.2310"></a>
-<span class="sourceLineNo">2311</span>      throw new ServiceException(e);<a name="line.2311"></a>
-<span class="sourceLineNo">2312</span>    }<a name="line.2312"></a>
-<span class="sourceLineNo">2313</span>  }<a name="line.2313"></a>
-<span class="sourceLineNo">2314</span><a name="line.2314"></a>
-<span class="sourceLineNo">2315</span>  @Override<a name="line.2315"></a>
-<span class="sourceLineNo">2316</span>  public ClearDeadServersResponse clearDeadServers(RpcController controller,<a name="line.2316"></a>
-<span class="sourceLineNo">2317</span>      ClearDeadServersRequest request) throws ServiceException {<a name="line.2317"></a>
-<span class="sourceLineNo">2318</span>    LOG.debug(master.getClientIdAuditPrefix() + " clear dead region servers.");<a name="line.2318"></a>
-<span class="sourceLineNo">2319</span>    ClearDeadServersResponse.Builder response = ClearDeadServersResponse.newBuilder();<a name="line.2319"></a>
-<span class="sourceLineNo">2320</span>    try {<a name="line.2320"></a>
-<span class="sourceLineNo">2321</span>      master.checkInitialized();<a name="line.2321"></a>
-<span class="sourceLineNo">2322</span>      if (master.cpHost != null) {<a name="line.2322"></a>
-<span class="sourceLineNo">2323</span>        master.cpHost.preClearDeadServers();<a name="line.2323"></a>
-<span class="sourceLineNo">2324</span>      }<a name="line.2324"></a>
-<span class="sourceLineNo">2325</span><a name="line.2325"></a>
-<span class="sourceLineNo">2326</span>      if (master.getServerManager().areDeadServersInProgress()) {<a name="line.2326"></a>
-<span class="sourceLineNo">2327</span>        LOG.debug("Some dead server is still under processing, won't clear the dead server list");<a name="line.2327"></a>
-<span class="sourceLineNo">2328</span>        response.addAllServerName(request.getServerNameList());<a name="line.2328"></a>
-<span class="sourceLineNo">2329</span>      } else {<a name="line.2329"></a>
-<span class="sourceLineNo">2330</span>        for (HBaseProtos.ServerName pbServer : request.getServerNameList()) {<a name="line.2330"></a>
-<span class="sourceLineNo">2331</span>          if (!master.getServerManager().getDeadServers()<a name="line.2331"></a>
-<span class="sourceLineNo">2332</span>                  .removeDeadServer(ProtobufUtil.toServerName(pbServer))) {<a name="line.2332"></a>
-<span class="sourceLineNo">2333</span>            response.addServerName(pbServer);<a name="line.2333"></a>
-<span class="sourceLineNo">2334</span>          }<a name="line.2334"></a>
-<span class="sourceLineNo">2335</span>        }<a name="line.2335"></a>
-<span class="sourceLineNo">2336</span>      }<a name="line.2336"></a>
-<span class="sourceLineNo">2337</span><a name="line.2337"></a>
-<span class="sourceLineNo">2338</span>      if (master.cpHost != null) {<a name="line.2338"></a>
-<span class="sourceLineNo">2339</span>        master.cpHost.postClearDeadServers(<a name="line.2339"></a>
-<span class="sourceLineNo">2340</span>            ProtobufUtil.toServerNameList(request.getServerNameList()),<a name="line.2340"></a>
-<span class="sourceLineNo">2341</span>            ProtobufUtil.toServerNameList(response.getServerNameList()));<a name="line.2341"></a>
-<span class="sourceLineNo">2342</span>      }<a name="line.2342"></a>
-<span class="sourceLineNo">2343</span>    } catch (IOException io) {<a name="line.2343"></a>
-<span class="sourceLineNo">2344</span>      throw new ServiceException(io);<a name="line.2344"></a>
-<span class="sourceLineNo">2345</span>    }<a name="line.2345"></a>
-<span class="sourceLineNo">2346</span>    return response.build();<a name="line.2346"></a>
-<span class="sourceLineNo">2347</span>  }<a name="line.2347"></a>
-<span class="sourceLineNo">2348</span><a name="line.2348"></a>
-<span class="sourceLineNo">2349</span>  @Override<a name="line.2349"></a>
-<span class="sourceLineNo">2350</span>  public ReportProcedureDoneResponse reportProcedureDone(RpcController controller,<a name="line.2350"></a>
-<span class="sourceLineNo">2351</span>      ReportProcedureDoneRequest request) throws ServiceException {<a name="line.2351"></a>
-<span class="sourceLineNo">2352</span>    request.getResultList().forEach(result -&gt; {<a name="line.2352"></a>
-<span class="sourceLineNo">2353</span>      if (result.getStatus() == RemoteProcedureResult.Status.SUCCESS) {<a name="line.2353"></a>
-<span class="sourceLineNo">2354</span>        master.remoteProcedureCompleted(result.getProcId());<a name="line.2354"></a>
-<span class="sourceLineNo">2355</span>      } else {<a name="line.2355"></a>
-<span class="sourceLineNo">2356</span>        master.remoteProcedureFailed(result.getProcId(),<a name="line.2356"></a>
-<span class="sourceLineNo">2357</span>          RemoteProcedureException.fromProto(result.getError()));<a name="line.2357"></a>
-<span class="sourceLineNo">2358</span>      }<a name="line.2358"></a>
-<span class="sourceLineNo">2359</span>    });<a name="line.2359"></a>
-<span class="sourceLineNo">2360</span>    return ReportProcedureDoneResponse.getDefaultInstance();<a name="line.2360"></a>
-<span class="sourceLineNo">2361</span>  }<a name="line.2361"></a>
-<span class="sourceLineNo">2362</span><a name="line.2362"></a>
-<span class="sourceLineNo">2363</span>  @Override<a name="line.2363"></a>
-<span class="sourceLineNo">2364</span>  public FileArchiveNotificationResponse reportFileArchival(RpcController controller,<a name="line.2364"></a>
-<span class="sourceLineNo">2365</span>      FileArchiveNotificationRequest request) throws ServiceException {<a name="line.2365"></a>
-<span class="sourceLineNo">2366</span>    try {<a name="line.2366"></a>
-<span class="sourceLineNo">2367</span>      master.checkInitialized();<a name="line.2367"></a>
-<span class="sourceLineNo">2368</span>      if (!QuotaUtil.isQuotaEnabled(master.getConfiguration())) {<a name="line.2368"></a>
-<span class="sourceLineNo">2369</span>        return FileArchiveNotificationResponse.newBuilder().build();<a name="line.2369"></a>
-<span class="sourceLineNo">2370</span>      }<a name="line.2370"></a>
-<span class="sourceLineNo">2371</span>      master.getMasterQuotaManager().processFileArchivals(request, master.getConnection(),<a name="line.2371"></a>
-<span class="sourceLineNo">2372</span>          master.getConfiguration(), master.getFileSystem());<a name="line.2372"></a>
-<span class="sourceLineNo">2373</span>      return FileArchiveNotificationResponse.newBuilder().build();<a name="line.2373"></a>
-<span class="sourceLineNo">2374</span>    } catch (Exception e) {<a name="line.2374"></a>
-<span class="sourceLineNo">2375</span>      throw new ServiceException(e);<a name="line.2375"></a>
-<span class="sourceLineNo">2376</span>    }<a name="line.2376"></a>
-<span class="sourceLineNo">2377</span>  }<a name="line.2377"></a>
-<span class="sourceLineNo">2378</span> <a name="line.2378"></a>
-<span class="sourceLineNo">2379</span>  // HBCK Services<a name="line.2379"></a>
-<span class="sourceLineNo">2380</span><a name="line.2380"></a>
-<span class="sourceLineNo">2381</span>  @Override<a name="line.2381"></a>
-<span class="sourceLineNo">2382</span>  public RunHbckChoreResponse runHbckChore(RpcController c, RunHbckChoreRequest req)<a name="line.2382"></a>
-<span class="sourceLineNo">2383</span>      throws ServiceException {<a name="line.2383"></a>
-<span class="sourceLineNo">2384</span>    rpcPreCheck("runHbckChore");<a name="line.2384"></a>
-<span class="sourceLineNo">2385</span>    LOG.info("{} request HBCK chore to run", master.getClientIdAuditPrefix());<a name="line.2385"></a>
-<span class="sourceLineNo">2386</span>    HbckChore hbckChore = master.getHbckChore();<a name="line.2386"></a>
-<span class="sourceLineNo">2387</span>    boolean ran = hbckChore.runChore();<a name="line.2387"></a>
-<span class="sourceLineNo">2388</span>    return RunHbckChoreResponse.newBuilder().setRan(ran).build();<a name="line.2388"></a>
-<span class="sourceLineNo">2389</span>  }<a name="line.2389"></a>
-<span class="sourceLineNo">2390</span><a name="line.2390"></a>
-<span class="sourceLineNo">2391</span>  /**<a name="line.2391"></a>
-<span class="sourceLineNo">2392</span>   * Update state of the table in meta only. This is required by hbck in some situations to cleanup<a name="line.2392"></a>
-<span class="sourceLineNo">2393</span>   * stuck assign/ unassign regions procedures for the table.<a name="line.2393"></a>
-<span class="sourceLineNo">2394</span>   *<a name="line.2394"></a>
-<span class="sourceLineNo">2395</span>   * @return previous state of the table<a name="line.2395"></a>
-<span class="sourceLineNo">2396</span>   */<a name="line.2396"></a>
-<span class="sourceLineNo">2397</span>  @Override<a name="line.2397"></a>
-<span class="sourceLineNo">2398</span>  public GetTableStateResponse setTableStateInMeta(RpcController controller,<a name="line.2398"></a>
-<span class="sourceLineNo">2399</span>      SetTableStateInMetaRequest request) throws ServiceException {<a name="line.2399"></a>
-<span class="sourceLineNo">2400</span>    TableName tn = ProtobufUtil.toTableName(request.getTableName());<a name="line.2400"></a>
-<span class="sourceLineNo">2401</span>    try {<a name="line.2401"></a>
-<span class="sourceLineNo">2402</span>      TableState prevState = this.master.getTableStateManager().getTableState(tn);<a name="line.2402"></a>
-<span class="sourceLineNo">2403</span>      TableState newState = TableState.convert(tn, request.getTableState());<a name="line.2403"></a>
-<span class="sourceLineNo">2404</span>      LOG.info("{} set table={} state from {} to {}", master.getClientIdAuditPrefix(),<a name="line.2404"></a>
-<span class="sourceLineNo">2405</span>          tn, prevState.getState(), newState.getState());<a name="line.2405"></a>
-<span class="sourceLineNo">2406</span>      this.master.getTableStateManager().setTableState(tn, newState.getState());<a name="line.2406"></a>
-<span class="sourceLineNo">2407</span>      return GetTableStateResponse.newBuilder().setTableState(prevState.convert()).build();<a name="line.2407"></a>
-<span class="sourceLineNo">2408</span>    } catch (Exception e) {<a name="line.2408"></a>
-<span class="sourceLineNo">2409</span>      throw new ServiceException(e);<a name="line.2409"></a>
-<span class="sourceLineNo">2410</span>    }<a name="line.2410"></a>
-<span class="sourceLineNo">2411</span>  }<a name="line.2411"></a>
-<span class="sourceLineNo">2412</span><a name="line.2412"></a>
-<span class="sourceLineNo">2413</span>  /**<a name="line.2413"></a>
-<span class="sourceLineNo">2414</span>   * Get RegionInfo from Master using content of RegionSpecifier as key.<a name="line.2414"></a>
-<span class="sourceLineNo">2415</span>   * @return RegionInfo found by decoding &lt;code&gt;rs&lt;/code&gt; or null if none found<a name="line.2415"></a>
-<span class="sourceLineNo">2416</span>   */<a name="line.2416"></a>
-<span class="sourceLineNo">2417</span>  private RegionInfo getRegionInfo(HBaseProtos.RegionSpecifier rs) throws UnknownRegionException {<a name="line.2417"></a>
-<span class="sourceLineNo">2418</span>    RegionInfo ri = null;<a name="line.2418"></a>
-<span class="sourceLineNo">2419</span>    switch(rs.getType()) {<a name="line.2419"></a>
-<span class="sourceLineNo">2420</span>      case REGION_NAME:<a name="line.2420"></a>
-<span class="sourceLineNo">2421</span>        final byte[] regionName = rs.getValue().toByteArray();<a name="line.2421"></a>
-<span class="sourceLineNo">2422</span>        ri = this.master.getAssignmentManager().getRegionInfo(regionName);<a name="line.2422"></a>
-<span class="sourceLineNo">2423</span>        break;<a name="line.2423"></a>
-<span class="sourceLineNo">2424</span>      case ENCODED_REGION_NAME:<a name="line.2424"></a>
-<span class="sourceLineNo">2425</span>        String encodedRegionName = Bytes.toString(rs.getValue().toByteArray());<a name="line.2425"></a>
-<span class="sourceLineNo">2426</span>        RegionState regionState = this.master.getAssignmentManager().getRegionStates().<a name="line.2426"></a>
-<span class="sourceLineNo">2427</span>            getRegionState(encodedRegionName);<a name="line.2427"></a>
-<span class="sourceLineNo">2428</span>        ri = regionState == null ?<a name="line.2428"></a>
-<span class="sourceLineNo">2429</span>          this.master.getAssignmentManager().loadRegionFromMeta(encodedRegionName) :<a name="line.2429"></a>
-<span class="sourceLineNo">2430</span>            regionState.getRegion();<a name="line.2430"></a>
-<span class="sourceLineNo">2431</span>        break;<a name="line.2431"></a>
-<span class="sourceLineNo">2432</span>      default:<a name="line.2432"></a>
-<span class="sourceLineNo">2433</span>        break;<a name="line.2433"></a>
-<span class="sourceLineNo">2434</span>    }<a name="line.2434"></a>
-<span class="sourceLineNo">2435</span>    return ri;<a name="line.2435"></a>
-<span class="sourceLineNo">2436</span>  }<a name="line.2436"></a>
-<span class="sourceLineNo">2437</span><a name="line.2437"></a>
-<span class="sourceLineNo">2438</span>  /**<a name="line.2438"></a>
-<span class="sourceLineNo">2439</span>   * A 'raw' version of assign that does bulk and skirts Master state checks (assigns can be made<a name="line.2439"></a>
-<span class="sourceLineNo">2440</span>   * during Master startup). For use by Hbck2.<a name="line.2440"></a>
-<span class="sourceLineNo">2441</span>   */<a name="line.2441"></a>
-<span class="sourceLineNo">2442</span>  @Override<a name="line.2442"></a>
-<span class="sourceLineNo">2443</span>  public MasterProtos.AssignsResponse assigns(RpcController controller,<a name="line.2443"></a>
-<span class="sourceLineNo">2444</span>      MasterProtos.AssignsRequest request)<a name="line.2444"></a>
-<span class="sourceLineNo">2445</span>    throws ServiceException {<a name="line.2445"></a>
-<span class="sourceLineNo">2446</span>    if (this.master.getMasterProcedureExecutor() == null) {<a name="line.2446"></a>
-<span class="sourceLineNo">2447</span>      throw new ServiceException("Master's ProcedureExecutor not initialized; retry later");<a name="line.2447"></a>
-<span class="sourceLineNo">2448</span>    }<a name="line.2448"></a>
-<span class="sourceLineNo">2449</span>    MasterProtos.AssignsResponse.Builder responseBuilder =<a name="line.2449"></a>
-<span class="sourceLineNo">2450</span>        MasterProtos.AssignsResponse.newBuilder();<a name="line.2450"></a>
-<span class="sourceLineNo">2451</span>    try {<a name="line.2451"></a>
-<span class="sourceLineNo">2452</span>      boolean override = request.getOverride();<a name="line.2452"></a>
-<span class="sourceLineNo">2453</span>      LOG.info("{} assigns, override={}", master.getClientIdAuditPrefix(), override);<a name="line.2453"></a>
-<span class="sourceLineNo">2454</span>      for (HBaseProtos.RegionSpecifier rs: request.getRegionList()) {<a name="line.2454"></a>
-<span class="sourceLineNo">2455</span>        RegionInfo ri = getRegionInfo(rs);<a name="line.2455"></a>
-<span class="sourceLineNo">2456</span>        if (ri == null) {<a name="line.2456"></a>
-<span class="sourceLineNo">2457</span>          LOG.info("Unknown={}", rs);<a name="line.2457"></a>
-<span class="sourceLineNo">2458</span>          responseBuilder.addPid(Procedure.NO_PROC_ID);<a name="line.2458"></a>
-<span class="sourceLineNo">2459</span>          continue;<a name="line.2459"></a>
-<span class="sourceLineNo">2460</span>        }<a name="line.2460"></a>
-<span class="sourceLineNo">2461</span>        responseBuilder.addPid(this.master.getMasterProcedureExecutor().submitProcedure(this.master<a name="line.2461"></a>
-<span class="sourceLineNo">2462</span>            .getAssignmentManager().createOneAssignProcedure(ri, override)));<a name="line.2462"></a>
-<span class="sourceLineNo">2463</span>      }<a name="line.2463"></a>
-<span class="sourceLineNo">2464</span>      return responseBuilder.build();<a name="line.2464"></a>
-<span class="sourceLineNo">2465</span>    } catch (IOException ioe) {<a name="line.2465"></a>
-<span class="sourceLineNo">2466</span>      throw new ServiceException(ioe);<a name="line.2466"></a>
-<span class="sourceLineNo">2467</span>    }<a name="line.2467"></a>
-<span class="sourceLineNo">2468</span>  }<a name="line.2468"></a>
-<span class="sourceLineNo">2469</span><a name="line.2469"></a>
-<span class="sourceLineNo">2470</span>  /**<a name="line.2470"></a>
-<span class="sourceLineNo">2471</span>   * A 'raw' version of unassign that does bulk and skirts Master state checks (unassigns can be<a name="line.2471"></a>
-<span class="sourceLineNo">2472</span>   * made during Master startup). For use by Hbck2.<a name="line.2472"></a>
-<span class="sourceLineNo">2473</span>   */<a name="line.2473"></a>
-<span class="sourceLineNo">2474</span>  @Override<a name="line.2474"></a>
-<span class="sourceLineNo">2475</span>  public MasterProtos.UnassignsResponse unassigns(RpcController controller,<a name="line.2475"></a>
-<span class="sourceLineNo">2476</span>      MasterProtos.UnassignsRequest request)<a name="line.2476"></a>
-<span class="sourceLineNo">2477</span>      throws ServiceException {<a name="line.2477"></a>
-<span class="sourceLineNo">2478</span>    if (this.master.getMasterProcedureExecutor() == null) {<a name="line.2478"></a>
-<span class="sourceLineNo">2479</span>      throw new ServiceException("Master's ProcedureExecutor not initialized; retry later");<a name="line.2479"></a>
-<span class="sourceLineNo">2480</span>    }<a name="line.2480"></a>
-<span class="sourceLineNo">2481</span>    MasterProtos.UnassignsResponse.Builder responseBuilder =<a name="line.2481"></a>
-<span class="sourceLineNo">2482</span>        MasterProtos.UnassignsResponse.newBuilder();<a name="line.2482"></a>
-<span class="sourceLineNo">2483</span>    try {<a name="line.2483"></a>
-<span class="sourceLineNo">2484</span>      boolean override = request.getOverride();<a name="line.2484"></a>
-<span class="sourceLineNo">2485</span>      LOG.info("{} unassigns, override={}", master.getClientIdAuditPrefix(), override);<a name="line.2485"></a>
-<span class="sourceLineNo">2486</span>      for (HBaseProtos.RegionSpecifier rs: request.getRegionList()) {<a name="line.2486"></a>
-<span class="sourceLineNo">2487</span>        RegionInfo ri = getRegionInfo(rs);<a name="line.2487"></a>
-<span class="sourceLineNo">2488</span>        if (ri == null) {<a name="line.2488"></a>
-<span class="sourceLineNo">2489</span>          LOG.info("Unknown={}", rs);<a name="line.2489"></a>
-<span class="sourceLineNo">2490</span>          responseBuilder.addPid(Procedure.NO_PROC_ID);<a name="line.2490"></a>
-<span class="sourceLineNo">2491</span>          continue;<a name="line.2491"></a>
-<span class="sourceLineNo">2492</span>        }<a name="line.2492"></a>
-<span class="sourceLineNo">2493</span>        responseBuilder.addPid(this.master.getMasterProcedureExecutor().submitProcedure(this.master<a name="line.2493"></a>
-<span class="sourceLineNo">2494</span>            .getAssignmentManager().createOneUnassignProcedure(ri, override)));<a name="line.2494"></a>
-<span class="sourceLineNo">2495</span>      }<a name="line.2495"></a>
-<span class="sourceLineNo">2496</span>      return responseBuilder.build();<a name="line.2496"></a>
-<span class="sourceLineNo">2497</span>    } catch (IOException ioe) {<a name="line.2497"></a>
-<span class="sourceLineNo">2498</span>      throw new ServiceException(ioe);<a name="line.2498"></a>
-<span class="sourceLineNo">2499</span>    }<a name="line.2499"></a>
-<span class="sourceLineNo">2500</span>  }<a name="line.2500"></a>
-<span class="sourceLineNo">2501</span><a name="line.2501"></a>
-<span class="sourceLineNo">2502</span>  /**<a name="line.2502"></a>
-<span class="sourceLineNo">2503</span>   * Bypass specified procedure to completion. Procedure is marked completed but no actual work<a name="line.2503"></a>
-<span class="sourceLineNo">2504</span>   * is done from the current state/ step onwards. Parents of the procedure are also marked for<a name="line.2504"></a>
-<span class="sourceLineNo">2505</span>   * bypass.<a name="line.2505"></a>
+<span class="sourceLineNo">2120</span>    } catch (IOException io) {<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>      throw new ServiceException(io);<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>    }<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span><a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>    return RecommissionRegionServerResponse.newBuilder().build();<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>  }<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span><a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>  @Override<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>  public LockResponse requestLock(RpcController controller, final LockRequest request)<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>      throws ServiceException {<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>    try {<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>      if (request.getDescription().isEmpty()) {<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>        throw new IllegalArgumentException("Empty description");<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>      }<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>      NonceProcedureRunnable npr;<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>      LockType type = LockType.valueOf(request.getLockType().name());<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>      if (request.getRegionInfoCount() &gt; 0) {<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>        final RegionInfo[] regionInfos = new RegionInfo[request.getRegionInfoCount()];<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>        for (int i = 0; i &lt; request.getRegionInfoCount(); ++i) {<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>          regionInfos[i] = ProtobufUtil.toRegionInfo(request.getRegionInfo(i));<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>        }<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>        npr = new NonceProcedureRunnable(master, request.getNonceGroup(), request.getNonce()) {<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>          @Override<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>          protected void run() throws IOException {<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>            setProcId(master.getLockManager().remoteLocks().requestRegionsLock(regionInfos,<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>                request.getDescription(), getNonceKey()));<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>          }<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span><a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>          @Override<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>          protected String getDescription() {<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>            return "RequestLock";<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>          }<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span>        };<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span>      } else if (request.hasTableName()) {<a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>        final TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>        npr = new NonceProcedureRunnable(master, request.getNonceGroup(), request.getNonce()) {<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>          @Override<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span>          protected void run() throws IOException {<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span>            setProcId(master.getLockManager().remoteLocks().requestTableLock(tableName, type,<a name="line.2158"></a>
+<span class="sourceLineNo">2159</span>                request.getDescription(), getNonceKey()));<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span>          }<a name="line.2160"></a>
+<span class="sourceLineNo">2161</span><a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>          @Override<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>          protected String getDescription() {<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span>            return "RequestLock";<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span>          }<a name="line.2165"></a>
+<span class="sourceLineNo">2166</span>        };<a name="line.2166"></a>
+<span class="sourceLineNo">2167</span>      } else if (request.hasNamespace()) {<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span>        npr = new NonceProcedureRunnable(master, request.getNonceGroup(), request.getNonce()) {<a name="line.2168"></a>
+<span class="sourceLineNo">2169</span>          @Override<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span>          protected void run() throws IOException {<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span>            setProcId(master.getLockManager().remoteLocks().requestNamespaceLock(<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span>                request.getNamespace(), type, request.getDescription(), getNonceKey()));<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span>          }<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span><a name="line.2174"></a>
+<span class="sourceLineNo">2175</span>          @Override<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span>          protected String getDescription() {<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span>            return "RequestLock";<a name="line.2177"></a>
+<span class="sourceLineNo">2178</span>          }<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span>        };<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>      } else {<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span>        throw new IllegalArgumentException("one of table/namespace/region should be specified");<a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>      }<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>      long procId = MasterProcedureUtil.submitProcedure(npr);<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span>      return LockResponse.newBuilder().setProcId(procId).build();<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span>    } catch (IllegalArgumentException e) {<a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>      LOG.warn("Exception when queuing lock", e);<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>      throw new ServiceException(new DoNotRetryIOException(e));<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span>    } catch (IOException e) {<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span>      LOG.warn("Exception when queuing lock", e);<a name="line.2189"></a>
+<span class="sourceLineNo">2190</span>      throw new ServiceException(e);<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span>    }<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span>  }<a name="line.2192"></a>
+<span class="sourceLineNo">2193</span><a name="line.2193"></a>
+<span class="sourceLineNo">2194</span>  /**<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span>   * @return LOCKED, if procedure is found and it has the lock; else UNLOCKED.<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span>   * @throws ServiceException if given proc id is found but it is not a LockProcedure.<a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>   */<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span>  @Override<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>  public LockHeartbeatResponse lockHeartbeat(RpcController controller, LockHeartbeatRequest request)<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span>      throws ServiceException {<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span>    try {<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>      if (master.getLockManager().remoteLocks().lockHeartbeat(request.getProcId(),<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>          request.getKeepAlive())) {<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>        return LockHeartbeatResponse.newBuilder().setTimeoutMs(<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span>            master.getConfiguration().getInt(LockProcedure.REMOTE_LOCKS_TIMEOUT_MS_CONF,<a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>                LockProcedure.DEFAULT_REMOTE_LOCKS_TIMEOUT_MS))<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>            .setLockStatus(LockHeartbeatResponse.LockStatus.LOCKED).build();<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>      } else {<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span>        return LockHeartbeatResponse.newBuilder()<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span>            .setLockStatus(LockHeartbeatResponse.LockStatus.UNLOCKED).build();<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>      }<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>    } catch (IOException e) {<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span>      throw new ServiceException(e);<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span>    }<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span>  }<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span><a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>  @Override<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span>  public RegionSpaceUseReportResponse reportRegionSpaceUse(RpcController controller,<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span>      RegionSpaceUseReportRequest request) throws ServiceException {<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span>    try {<a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>      master.checkInitialized();<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span>      if (!QuotaUtil.isQuotaEnabled(master.getConfiguration())) {<a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>        return RegionSpaceUseReportResponse.newBuilder().build();<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span>      }<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span>      MasterQuotaManager quotaManager = this.master.getMasterQuotaManager();<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span>      if (quotaManager != null) {<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>        final long now = EnvironmentEdgeManager.currentTime();<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>        for (RegionSpaceUse report : request.getSpaceUseList()) {<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>          quotaManager.addRegionSize(ProtobufUtil.toRegionInfo(report.getRegionInfo()),<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>            report.getRegionSize(), now);<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span>        }<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span>      } else {<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>        LOG.debug(<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span>          "Received region space usage report but HMaster is not ready to process it, skipping");<a name="line.2234"></a>
+<span class="sourceLineNo">2235</span>      }<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>      return RegionSpaceUseReportResponse.newBuilder().build();<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>    } catch (Exception e) {<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span>      throw new ServiceException(e);<a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>    }<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>  }<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span><a name="line.2241"></a>
+<span class="sourceLineNo">2242</span>  @Override<a name="line.2242"></a>
+<span class="sourceLineNo">2243</span>  public GetSpaceQuotaRegionSizesResponse getSpaceQuotaRegionSizes(<a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>      RpcController controller, GetSpaceQuotaRegionSizesRequest request) throws ServiceException {<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span>    try {<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span>      master.checkInitialized();<a name="line.2246"></a>
+<span class="sourceLineNo">2247</span>      MasterQuotaManager quotaManager = this.master.getMasterQuotaManager();<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>      GetSpaceQuotaRegionSizesResponse.Builder builder =<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>          GetSpaceQuotaRegionSizesResponse.newBuilder();<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>      if (quotaManager != null) {<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span>        Map&lt;RegionInfo,Long&gt; regionSizes = quotaManager.snapshotRegionSizes();<a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>        Map&lt;TableName,Long&gt; regionSizesByTable = new HashMap&lt;&gt;();<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>        // Translate hregioninfo+long -&gt; tablename+long<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span>        for (Entry&lt;RegionInfo,Long&gt; entry : regionSizes.entrySet()) {<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>          final TableName tableName = entry.getKey().getTable();<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span>          Long prevSize = regionSizesByTable.get(tableName);<a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>          if (prevSize == null) {<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>            prevSize = 0L;<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span>          }<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>          regionSizesByTable.put(tableName, prevSize + entry.getValue());<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span>        }<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>        // Serialize them into the protobuf<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>        for (Entry&lt;TableName,Long&gt; tableSize : regionSizesByTable.entrySet()) {<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>          builder.addSizes(RegionSizes.newBuilder()<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span>              .setTableName(ProtobufUtil.toProtoTableName(tableSize.getKey()))<a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>              .setSize(tableSize.getValue()).build());<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span>        }<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span>        return builder.build();<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span>      } else {<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>        LOG.debug(<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>          "Received space quota region size report but HMaster is not ready to process it, skipping");<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span>      }<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>      return builder.build();<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span>    } catch (Exception e) {<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span>      throw new ServiceException(e);<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>    }<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span>  }<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span><a name="line.2278"></a>
+<span class="sourceLineNo">2279</span>  @Override<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>  public GetQuotaStatesResponse getQuotaStates(<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span>      RpcController controller, GetQuotaStatesRequest request) throws ServiceException {<a name="line.2281"></a>
+<span class="sourceLineNo">2282</span>    try {<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>      master.checkInitialized();<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>      QuotaObserverChore quotaChore = this.master.getQuotaObserverChore();<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>      GetQuotaStatesResponse.Builder builder = GetQuotaStatesResponse.newBuilder();<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span>      if (quotaChore != null) {<a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>        // The "current" view of all tables with quotas<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span>        Map&lt;TableName, SpaceQuotaSnapshot&gt; tableSnapshots = quotaChore.getTableQuotaSnapshots();<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>        for (Entry&lt;TableName, SpaceQuotaSnapshot&gt; entry : tableSnapshots.entrySet()) {<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>          builder.addTableSnapshots(<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>              TableQuotaSnapshot.newBuilder()<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>                  .setTableName(ProtobufUtil.toProtoTableName(entry.getKey()))<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span>                  .setSnapshot(SpaceQuotaSnapshot.toProtoSnapshot(entry.getValue())).build());<a name="line.2293"></a>
+<span class="sourceLineNo">2294</span>        }<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span>        // The "current" view of all namespaces with quotas<a name="line.2295"></a>
+<span class="sourceLineNo">2296</span>        Map&lt;String, SpaceQuotaSnapshot&gt; nsSnapshots = quotaChore.getNamespaceQuotaSnapshots();<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span>        for (Entry&lt;String, SpaceQuotaSnapshot&gt; entry : nsSnapshots.entrySet()) {<a name="line.2297"></a>
+<span class="sourceLineNo">2298</span>          builder.addNsSnapshots(<a name="line.2298"></a>
+<span class="sourceLineNo">2299</span>              NamespaceQuotaSnapshot.newBuilder()<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span>                  .setNamespace(entry.getKey())<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span>                  .setSnapshot(SpaceQuotaSnapshot.toProtoSnapshot(entry.getValue())).build());<a name="line.2301"></a>
+<span class="sourceLineNo">2302</span>        }<a name="line.2302"></a>
+<span class="sourceLineNo">2303</span>        return builder.build();<a name="line.2303"></a>
+<span class="sourceLineNo">2304</span>      }<a name="line.2304"></a>
+<span class="sourceLineNo">2305</span>      return builder.build();<a name="line.2305"></a>
+<span class="sourceLineNo">2306</span>    } catch (Exception e) {<a name="line.2306"></a>
+<span class="sourceLineNo">2307</span>      throw new ServiceException(e);<a name="line.2307"></a>
+<span class="sourceLineNo">2308</span>    }<a name="line.2308"></a>
+<span class="sourceLineNo">2309</span>  }<a name="line.2309"></a>
+<span class="sourceLineNo">2310</span><a name="line.2310"></a>
+<span class="sourceLineNo">2311</span>  @Override<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span>  public ClearDeadServersResponse clearDeadServers(RpcController controller,<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span>      ClearDeadServersRequest request) throws ServiceException {<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span>    LOG.debug(master.getClientIdAuditPrefix() + " clear dead region servers.");<a name="line.2314"></a>
+<span class="sourceLineNo">2315</span>    ClearDeadServersResponse.Builder response = ClearDeadServersResponse.newBuilder();<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span>    try {<a name="line.2316"></a>
+<span class="sourceLineNo">2317</span>      master.checkInitialized();<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span>      if (master.cpHost != null) {<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span>        master.cpHost.preClearDeadServers();<a name="line.2319"></a>
+<span class="sourceLineNo">2320</span>      }<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span><a name="line.2321"></a>
+<span class="sourceLineNo">2322</span>      if (master.getServerManager().areDeadServersInProgress()) {<a name="line.2322"></a>
+<span class="sourceLineNo">2323</span>        LOG.debug("Some dead server is still under processing, won't clear the dead server list");<a name="line.2323"></a>
+<span class="sourceLineNo">2324</span>        response.addAllServerName(request.getServerNameList());<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span>      } else {<a name="line.2325"></a>
+<span class="sourceLineNo">2326</span>        for (HBaseProtos.ServerName pbServer : request.getServerNameList()) {<a name="line.2326"></a>
+<span class="sourceLineNo">2327</span>          if (!master.getServerManager().getDeadServers()<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span>                  .removeDeadServer(ProtobufUtil.toServerName(pbServer))) {<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span>            response.addServerName(pbServer);<a name="line.2329"></a>
+<span class="sourceLineNo">2330</span>          }<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span>        }<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span>      }<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span><a name="line.2333"></a>
+<span class="sourceLineNo">2334</span>      if (master.cpHost != null) {<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span>        master.cpHost.postClearDeadServers(<a name="line.2335"></a>
+<span class="sourceLineNo">2336</span>            ProtobufUtil.toServerNameList(request.getServerNameList()),<a name="line.2336"></a>
+<span class="sourceLineNo">2337</span>            ProtobufUtil.toServerNameList(response.getServerNameList()));<a name="line.2337"></a>
+<span class="sourceLineNo">2338</span>      }<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span>    } catch (IOException io) {<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span>      throw new ServiceException(io);<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span>    }<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span>    return response.build();<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span>  }<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span><a name="line.2344"></a>
+<span class="sourceLineNo">2345</span>  @Override<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span>  public ReportProcedureDoneResponse reportProcedureDone(RpcController controller,<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span>      ReportProcedureDoneRequest request) throws ServiceException {<a name="line.2347"></a>
+<span class="sourceLineNo">2348</span>    request.getResultList().forEach(result -&gt; {<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span>      if (result.getStatus() == RemoteProcedureResult.Status.SUCCESS) {<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span>        master.remoteProcedureCompleted(result.getProcId());<a name="line.2350"></a>
+<span class="sourceLineNo">2351</span>      } else {<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span>        master.remoteProcedureFailed(result.getProcId(),<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span>          RemoteProcedureException.fromProto(result.getError()));<a name="line.2353"></a>
+<span class="sourceLineNo">2354</span>      }<a name="line.2354"></a>
+<span class="sourceLineNo">2355</span>    });<a name="line.2355"></a>
+<span class="sourceLineNo">2356</span>    return ReportProcedureDoneResponse.getDefaultInstance();<a name="line.2356"></a>
+<span class="sourceLineNo">2357</span>  }<a name="line.2357"></a>
+<span class="sourceLineNo">2358</span><a name="line.2358"></a>
+<span class="sourceLineNo">2359</span>  @Override<a name="line.2359"></a>
+<span class="sourceLineNo">2360</span>  public FileArchiveNotificationResponse reportFileArchival(RpcController controller,<a name="line.2360"></a>
+<span class="sourceLineNo">2361</span>      FileArchiveNotificationRequest request) throws ServiceException {<a name="line.2361"></a>
+<span class="sourceLineNo">2362</span>    try {<a name="line.2362"></a>
+<span class="sourceLineNo">2363</span>      master.checkInitialized();<a name="line.2363"></a>
+<span class="sourceLineNo">2364</span>      if (!QuotaUtil.isQuotaEnabled(master.getConfiguration())) {<a name="line.2364"></a>
+<span class="sourceLineNo">2365</span>        return FileArchiveNotificationResponse.newBuilder().build();<a name="line.2365"></a>
+<span class="sourceLineNo">2366</span>      }<a name="line.2366"></a>
+<span class="sourceLineNo">2367</span>      master.getMasterQuotaManager().processFileArchivals(request, master.getConnection(),<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span>          master.getConfiguration(), master.getFileSystem());<a name="line.2368"></a>
+<span class="sourceLineNo">2369</span>      return FileArchiveNotificationResponse.newBuilder().build();<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span>    } catch (Exception e) {<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span>      throw new ServiceException(e);<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span>    }<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span>  }<a name="line.2373"></a>
+<span class="sourceLineNo">2374</span> <a name="line.2374"></a>
+<span class="sourceLineNo">2375</span>  // HBCK Services<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span><a name="line.2376"></a>
+<span class="sourceLineNo">2377</span>  @Override<a name="line.2377"></a>
+<span class="sourceLineNo">2378</span>  public RunHbckChoreResponse runHbckChore(RpcController c, RunHbckChoreRequest req)<a name="line.2378"></a>
+<span class="sourceLineNo">2379</span>      throws ServiceException {<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span>    rpcPreCheck("runHbckChore");<a name="line.2380"></a>
+<span class="sourceLineNo">2381</span>    LOG.info("{} request HBCK chore to run", master.getClientIdAuditPrefix());<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span>    HbckChore hbckChore = master.getHbckChore();<a name="line.2382"></a>
+<span class="sourceLineNo">2383</span>    boolean ran = hbckChore.runChore();<a name="line.2383"></a>
+<span class="sourceLineNo">2384</span>    return RunHbckChoreResponse.newBuilder().setRan(ran).build();<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span>  }<a name="line.2385"></a>
+<span class="sourceLineNo">2386</span><a name="line.2386"></a>
+<span class="sourceLineNo">2387</span>  /**<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span>   * Update state of the table in meta only. This is required by hbck in some situations to cleanup<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span>   * stuck assign/ unassign regions procedures for the table.<a name="line.2389"></a>
+<span class="sourceLineNo">2390</span>   *<a name="line.2390"></a>
+<span class="sourceLineNo">2391</span>   * @return previous state of the table<a name="line.2391"></a>
+<span class="sourceLineNo">2392</span>   */<a name="line.2392"></a>
+<span class="sourceLineNo">2393</span>  @Override<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span>  public GetTableStateResponse setTableStateInMeta(RpcController controller,<a name="line.2394"></a>
+<span class="sourceLineNo">2395</span>      SetTableStateInMetaRequest request) throws ServiceException {<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span>    TableName tn = ProtobufUtil.toTableName(request.getTableName());<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span>    try {<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span>      TableState prevState = this.master.getTableStateManager().getTableState(tn);<a name="line.2398"></a>
+<span class="sourceLineNo">2399</span>      TableState newState = TableState.convert(tn, request.getTableState());<a name="line.2399"></a>
+<span class="sourceLineNo">2400</span>      LOG.info("{} set table={} state from {} to {}", master.getClientIdAuditPrefix(),<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span>          tn, prevState.getState(), newState.getState());<a name="line.2401"></a>
+<span class="sourceLineNo">2402</span>      this.master.getTableStateManager().setTableState(tn, newState.getState());<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span>      return GetTableStateResponse.newBuilder().setTableState(prevState.convert()).build();<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span>    } catch (Exception e) {<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span>      throw new ServiceException(e);<a name="line.2405"></a>
+<span class="sourceLineNo">2406</span>    }<a name="line.2406"></a>
+<span class="sourceLineNo">2407</span>  }<a name="line.2407"></a>
+<span class="sourceLineNo">2408</span><a name="line.2408"></a>
+<span class="sourceLineNo">2409</span>  /**<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span>   * Get RegionInfo from Master using content of RegionSpecifier as key.<a name="line.2410"></a>
+<span class="sourceLineNo">2411</span>   * @return RegionInfo found by decoding &lt;code&gt;rs&lt;/code&gt; or null if none found<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span>   */<a name="line.2412"></a>
+<span class="sourceLineNo">2413</span>  private RegionInfo getRegionInfo(HBaseProtos.RegionSpecifier rs) throws UnknownRegionException {<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span>    RegionInfo ri = null;<a name="line.2414"></a>
+<span class="sourceLineNo">2415</span>    switch(rs.getType()) {<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span>      case REGION_NAME:<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span>        final byte[] regionName = rs.getValue().toByteArray();<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span>        ri = this.master.getAssignmentManager().getRegionInfo(regionName);<a name="line.2418"></a>
+<span class="sourceLineNo">2419</span>        break;<a name="line.2419"></a>
+<span class="sourceLineNo">2420</span>      case ENCODED_REGION_NAME:<a name="line.2420"></a>
+<span class="sourceLineNo">2421</span>        String encodedRegionName = Bytes.toString(rs.getValue().toByteArray());<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span>        RegionState regionState = this.master.getAssignmentManager().getRegionStates().<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span>            getRegionState(encodedRegionName);<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span>        ri = regionState == null ?<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span>          this.master.getAssignmentManager().loadRegionFromMeta(encodedRegionName) :<a name="line.2425"></a>
+<span class="sourceLineNo">2426</span>            regionState.getRegion();<a name="line.2426"></a>
+<span class="sourceLineNo">2427</span>        break;<a name="line.2427"></a>
+<span class="sourceLineNo">2428</span>      default:<a name="line.2428"></a>
+<span class="sourceLineNo">2429</span>        break;<a name="line.2429"></a>
+<span class="sourceLineNo">2430</span>    }<a name="line.2430"></a>
+<span class="sourceLineNo">2431</span>    return ri;<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span>  }<a name="line.2432"></a>
+<span class="sourceLineNo">2433</span><a name="line.2433"></a>
+<span class="sourceLineNo">2434</span>  /**<a name="line.2434"></a>
+<span class="sourceLineNo">2435</span>   * A 'raw' version of assign that does bulk and skirts Master state checks (assigns can be made<a name="line.2435"></a>
+<span class="sourceLineNo">2436</span>   * during Master startup). For use by Hbck2.<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span>   */<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span>  @Override<a name="line.2438"></a>
+<span class="sourceLineNo">2439</span>  public MasterProtos.AssignsResponse assigns(RpcController controller,<a name="line.2439"></a>
+<span class="sourceLineNo">2440</span>      MasterProtos.AssignsRequest request)<a name="line.2440"></a>
+<span class="sourceLineNo">2441</span>    throws ServiceException {<a name="line.2441"></a>
+<span class="sourceLineNo">2442</span>    if (this.master.getMasterProcedureExecutor() == null) {<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span>      throw new ServiceException("Master's ProcedureExecutor not initialized; retry later");<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span>    }<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span>    MasterProtos.AssignsResponse.Builder responseBuilder =<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span>        MasterProtos.AssignsResponse.newBuilder();<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span>    try {<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span>      boolean override = request.getOverride();<a name="line.2448"></a>
+<span class="sourceLineNo">2449</span>      LOG.info("{} assigns, override={}", master.getClientIdAuditPrefix(), override);<a name="line.2449"></a>
+<span class="sourceLineNo">2450</span>      for (HBaseProtos.RegionSpecifier rs: request.getRegionList()) {<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span>        RegionInfo ri = getRegionInfo(rs);<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span>        if (ri == null) {<a name="line.2452"></a>
+<span class="sourceLineNo">2453</span>          LOG.info("Unknown={}", rs);<a name="line.2453"></a>
+<span class="sourceLineNo">2454</span>          responseBuilder.addPid(Procedure.NO_PROC_ID);<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span>          continue;<a name="line.2455"></a>
+<span class="sourceLineNo">2456</span>        }<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span>        responseBuilder.addPid(this.master.getMasterProcedureExecutor().submitProcedure(this.master<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span>            .getAssignmentManager().createOneAssignProcedure(ri, override)));<a name="line.2458"></a>
+<span class="sourceLineNo">2459</span>      }<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span>      return responseBuilder.build();<a name="line.2460"></a>
+<span class="sourceLineNo">2461</span>    } catch (IOException ioe) {<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span>      throw new ServiceException(ioe);<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span>    }<a name="line.2463"></a>
+<span class="sourceLineNo">2464</span>  }<a name="line.2464"></a>
+<span class="sourceLineNo">2465</span><a name="line.2465"></a>
+<span class="sourceLineNo">2466</span>  /**<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span>   * A 'raw' version of unassign that does bulk and skirts Master state checks (unassigns can be<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span>   * made during Master startup). For use by Hbck2.<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span>   */<a name="line.2469"></a>
+<span class="sourceLineNo">2470</span>  @Override<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span>  public MasterProtos.UnassignsResponse unassigns(RpcController controller,<a name="line.2471"></a>
+<span class="sourceLineNo">2472</span>      MasterProtos.UnassignsRequest request)<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span>      throws ServiceException {<a name="line.2473"></a>
+<span class="sourceLineNo">2474</span>    if (this.master.getMasterProcedureExecutor() == null) {<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span>      throw new ServiceException("Master's ProcedureExecutor not initialized; retry later");<a name="line.2475"></a>
+<span class="sourceLineNo">2476</span>    }<a name="line.2476"></a>
+<span class="sourceLineNo">2477</span>    MasterProtos.UnassignsResponse.Builder responseBuilder =<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span>        MasterProtos.UnassignsResponse.newBuilder();<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span>    try {<a name="line.2479"></a>
+<span class="sourceLineNo">2480</span>      boolean override = request.getOverride();<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span>      LOG.info("{} unassigns, override={}", master.getClientIdAuditPrefix(), override);<a name="line.2481"></a>
+<span class="sourceLineNo">2482</span>      for (HBaseProtos.RegionSpecifier rs: request.getRegionList()) {<a name="line.2482"></a>
+<span class="sourceLineNo">2483</span>        RegionInfo ri = getRegionInfo(rs);<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span>        if (ri == null) {<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span>          LOG.info("Unknown={}", rs);<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span>          responseBuilder.addPid(Procedure.NO_PROC_ID);<a name="line.2486"></a>
+<span class="sourceLineNo">2487</span>          continue;<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span>        }<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span>        responseBuilder.addPid(this.master.getMasterProcedureExecutor().submitProcedure(this.master<a name="line.2489"></a>
+<span class="sourceLineNo">2490</span>            .getAssignmentManager().createOneUnassignProcedure(ri, override)));<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span>      }<a name="line.2491"></a>
+<span class="sourceLineNo">2492</span>      return responseBuilder.build();<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span>    } catch (IOException ioe) {<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span>      throw new ServiceException(ioe);<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span>    }<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span>  }<a name="line.2496"></a>
+<span class="sourceLineNo">2497</span><a name="line.2497"></a>
+<span class="sourceLineNo">2498</span>  /**<a name="line.2498"></a>
+<span class="sourceLineNo">2499</span>   * Bypass specified procedure to completion. Procedure is marked completed but no actual work<a name="line.2499"></a>
+<span class="sourceLineNo">2500</span>   * is done from the current state/ step onwards. Parents of the procedure are also marked for<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span>   * bypass.<a name="line.2501"></a>
+<span class="sourceLineNo">2502</span>   *<a name="line.2502"></a>
+<span class="sourceLineNo">2503</span>   * NOTE: this is a dangerous operation and may be used to unstuck buggy procedures. This may<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span>   * leave system in inconherent state. This may need to be followed by some cleanup steps/<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span>   * actions by operator.<a name="line.2505"></a>
 <span class="sourceLineNo">2506</span>   *<a name="line.2506"></a>
-<span class="sourceLineNo">2507</span>   * NOTE: this is a dangerous operation and may be used to unstuck buggy procedures. This may<a name="line.2507"></a>
-<span class="sourceLineNo">2508</span>   * leave system in inconherent state. This may need to be followed by some cleanup steps/<a name="line.2508"></a>
-<span class="sourceLineNo">2509</span>   * actions by operator.<a name="line.2509"></a>
-<span class="sourceLineNo">2510</span>   *<a name="line.2510"></a>
-<span class="sourceLineNo">2511</span>   * @return BypassProcedureToCompletionResponse indicating success or failure<a name="line.2511"></a>
-<span class="sourceLineNo">2512</span>   */<a name="line.2512"></a>
-<span class="sourceLineNo">2513</span>  @Override<a name="line.2513"></a>
-<span class="sourceLineNo">2514</span>  public MasterProtos.BypassProcedureResponse bypassProcedure(RpcController controller,<a name="line.2514"></a>
-<span class="sourceLineNo">2515</span>      MasterProtos.BypassProcedureRequest request) throws ServiceException {<a name="line.2515"></a>
-<span class="sourceLineNo">2516</span>    try {<a name="line.2516"></a>
-<span class="sourceLineNo">2517</span>      LOG.info("{} bypass procedures={}, waitTime={}, override={}, recursive={}",<a name="line.2517"></a>
-<span class="sourceLineNo">2518</span>          master.getClientIdAuditPrefix(), request.getProcIdList(), request.getWaitTime(),<a name="line.2518"></a>
-<span class="sourceLineNo">2519</span>          request.getOverride(), request.getRecursive());<a name="line.2519"></a>
-<span class="sourceLineNo">2520</span>      List&lt;Boolean&gt; ret =<a name="line.2520"></a>
-<span class="sourceLineNo">2521</span>          master.getMasterProcedureExecutor().bypassProcedure(request.getProcIdList(),<a name="line.2521"></a>
-<span class="sourceLineNo">2522</span>          request.getWaitTime(), request.getOverride(), request.getRecursive());<a name="line.2522"></a>
-<span class="sourceLineNo">2523</span>      return MasterProtos.BypassProcedureResponse.newBuilder().addAllBypassed(ret).build();<a name="line.2523"></a>
-<span class="sourceLineNo">2524</span>    } catch (IOException e) {<a name="line.2524"></a>
-<span class="sourceLineNo">2525</span>      throw new ServiceException(e);<a name="line.2525"></a>
-<span class="sourceLineNo">2526</span>    }<a name="line.2526"></a>
-<span class="sourceLineNo">2527</span>  }<a name="line.2527"></a>
-<span class="sourceLineNo">2528</span><a name="line.2528"></a>
-<span class="sourceLineNo">2529</span>  @Override<a name="line.2529"></a>
-<span class="sourceLineNo">2530</span>  public MasterProtos.ScheduleServerCrashProcedureResponse scheduleServerCrashProcedure(<a name="line.2530"></a>
-<span class="sourceLineNo">2531</span>      RpcController controller, MasterProtos.ScheduleServerCrashProcedureRequest request)<a name="line.2531"></a>
-<span class="sourceLineNo">2532</span>      throws ServiceException {<a name="line.2532"></a>
-<span class="sourceLineNo">2533</span>    List&lt;HBaseProtos.ServerName&gt; serverNames = request.getServerNameList();<a name="line.2533"></a>
-<span class="sourceLineNo">2534</span>    List&lt;Long&gt; pids = new ArrayList&lt;&gt;();<a name="line.2534"></a>
-<span class="sourceLineNo">2535</span>    try {<a name="line.2535"></a>
-<span class="sourceLineNo">2536</span>      for (HBaseProtos.ServerName serverName : serverNames) {<a name="line.2536"></a>
-<span class="sourceLineNo">2537</span>        ServerName server = ProtobufUtil.toServerName(serverName);<a name="line.2537"></a>
-<span class="sourceLineNo">2538</span>        LOG.info("{} schedule ServerCrashProcedure for {}",<a name="line.2538"></a>
-<span class="sourceLineNo">2539</span>            master.getClientIdAuditPrefix(), server);<a name="line.2539"></a>
-<span class="sourceLineNo">2540</span>        if (shouldSubmitSCP(server)) {<a name="line.2540"></a>
-<span class="sourceLineNo">2541</span>          master.getServerManager().moveFromOnlineToDeadServers(server);<a name="line.2541"></a>
-<span class="sourceLineNo">2542</span>          ProcedureExecutor&lt;MasterProcedureEnv&gt; procExec = this.master.getMasterProcedureExecutor();<a name="line.2542"></a>
-<span class="sourceLineNo">2543</span>          pids.add(procExec.submitProcedure(new ServerCrashProcedure(procExec.getEnvironment(),<a name="line.2543"></a>
-<span class="sourceLineNo">2544</span>            server, true, containMetaWals(server))));<a name="line.2544"></a>
-<span class="sourceLineNo">2545</span>        } else {<a name="line.2545"></a>
-<span class="sourceLineNo">2546</span>          pids.add(-1L);<a name="line.2546"></a>
-<span class="sourceLineNo">2547</span>        }<a name="line.2547"></a>
-<span class="sourceLineNo">2548</span>      }<a name="line.2548"></a>
-<span class="sourceLineNo">2549</span>      return MasterProtos.ScheduleServerCrashProcedureResponse.newBuilder().addAllPid(pids).build();<a name="line.2549"></a>
-<span class="sourceLineNo">2550</span>    } catch (IOException e) {<a name="line.2550"></a>
-<span class="sourceLineNo">2551</span>      throw new ServiceException(e);<a name="line.2551"></a>
-<span class="sourceLineNo">2552</span>    }<a name="line.2552"></a>
-<span class="sourceLineNo">2553</span>  }<a name="line.2553"></a>
-<span class="sourceLineNo">2554</span><a name="line.2554"></a>
-<span class="sourceLineNo">2555</span>  @Override<a name="line.2555"></a>
-<span class="sourceLineNo">2556</span>  public FixMetaResponse fixMeta(RpcController controller, FixMetaRequest request)<a name="line.2556"></a>
-<span class="sourceLineNo">2557</span>      throws ServiceException {<a name="line.2557"></a>
-<span class="sourceLineNo">2558</span>    try {<a name="line.2558"></a>
-<span class="sourceLineNo">2559</span>      MetaFixer mf = new MetaFixer(this.master);<a name="line.2559"></a>
-<span class="sourceLineNo">2560</span>      mf.fix();<a name="line.2560"></a>
-<span class="sourceLineNo">2561</span>      return FixMetaResponse.newBuilder().build();<a name="line.2561"></a>
-<span class="sourceLineNo">2562</span>    } catch (IOException ioe) {<a name="line.2562"></a>
-<span class="sourceLineNo">2563</span>      throw new ServiceException(ioe);<a name="line.2563"></a>
-<span class="sourceLineNo">2564</span>    }<a name="line.2564"></a>
-<span class="sourceLineNo">2565</span>  }<a name="line.2565"></a>
-<span class="sourceLineNo">2566</span><a name="line.2566"></a>
-<span class="sourceLineNo">2567</span>  @Override<a name="line.2567"></a>
-<span class="sourceLineNo">2568</span>  public SwitchRpcThrottleResponse switchRpcThrottle(RpcController controller,<a name="line.2568"></a>
-<span class="sourceLineNo">2569</span>      SwitchRpcThrottleRequest request) throws ServiceException {<a name="line.2569"></a>
-<span class="sourceLineNo">2570</span>    try {<a name="line.2570"></a>
-<span class="sourceLineNo">2571</span>      master.checkInitialized();<a name="line.2571"></a>
-<span class="sourceLineNo">2572</span>      return master.getMasterQuotaManager().switchRpcThrottle(request);<a name="line.2572"></a>
-<span class="sourceLineNo">2573</span>    } catch (Exception e) {<a name="line.2573"></a>
-<span class="sourceLineNo">2574</span>      throw new ServiceException(e);<a name="line.2574"></a>
-<span class="sourceLineNo">2575</span>    }<a name="line.2575"></a>
-<span class="sourceLineNo">2576</span>  }<a name="line.2576"></a>
-<span class="sourceLineNo">2577</span><a name="line.2577"></a>
-<span class="sourceLineNo">2578</span>  @Override<a name="line.2578"></a>
-<span class="sourceLineNo">2579</span>  public MasterProtos.IsRpcThrottleEnabledResponse isRpcThrottleEnabled(RpcController controller,<a name="line.2579"></a>
-<span class="sourceLineNo">2580</span>      MasterProtos.IsRpcThrottleEnabledRequest request) throws ServiceException {<a name="line.2580"></a>
-<span class="sourceLineNo">2581</span>    try {<a name="line.2581"></a>
-<span class="sourceLineNo">2582</span>      master.checkInitialized();<a name="line.2582"></a>
-<span class="sourceLineNo">2583</span>      return master.getMasterQuotaManager().isRpcThrottleEnabled(request);<a name="line.2583"></a>
-<span class="sourceLineNo">2584</span>    } catch (Exception e) {<a name="line.2584"></a>
-<span class="sourceLineNo">2585</span>      throw new ServiceException(e);<a name="line.2585"></a>
-<span class="sourceLineNo">2586</span>    }<a name="line.2586"></a>
-<span class="sourceLineNo">2587</span>  }<a name="line.2587"></a>
-<span class="sourceLineNo">2588</span><a name="line.2588"></a>
-<span class="sourceLineNo">2589</span>  @Override<a name="line.2589"></a>
-<span class="sourceLineNo">2590</span>  public SwitchExceedThrottleQuotaResponse switchExceedThrottleQuota(RpcController controller,<a name="line.2590"></a>
-<span class="sourceLineNo">2591</span>      SwitchExceedThrottleQuotaRequest request) throws ServiceException {<a name="line.2591"></a>
-<span class="sourceLineNo">2592</span>    try {<a name="line.2592"></a>
-<span class="sourceLineNo">2593</span>      master.checkInitialized();<a name="line.2593"></a>
-<span class="sourceLineNo">2594</span>      return master.getMasterQuotaManager().switchExceedThrottleQuota(request);<a name="line.2594"></a>
-<span class="sourceLineNo">2595</span>    } catch (Exception e) {<a name="line.2595"></a>
-<span class="sourceLineNo">2596</span>      throw new ServiceException(e);<a name="line.2596"></a>
-<span class="sourceLineNo">2597</span>    }<a name="line.2597"></a>
-<span class="sourceLineNo">2598</span>  }<a name="line.2598"></a>
-<span class="sourceLineNo">2599</span><a name="line.2599"></a>
-<span class="sourceLineNo">2600</span>  @Override<a name="line.2600"></a>
-<span class="sourceLineNo">2601</span>  public GrantResponse grant(RpcController controller, GrantRequest request)<a name="line.2601"></a>
-<span class="sourceLineNo">2602</span>      throws ServiceException {<a name="line.2602"></a>
-<span class="sourceLineNo">2603</span>    try {<a name="line.2603"></a>
-<span class="sourceLineNo">2604</span>      final UserPermission perm =<a name="line.2604"></a>
-<span class="sourceLineNo">2605</span>          ShadedAccessControlUtil.toUserPermission(request.getUserPermission());<a name="line.2605"></a>
-<span class="sourceLineNo">2606</span>      boolean mergeExistingPermissions = request.getMergeExistingPermissions();<a name="line.2606"></a>
-<span class="sourceLineNo">2607</span>      if (master.cpHost != null) {<a name="line.2607"></a>
-<span class="sourceLineNo">2608</span>        master.cpHost.preGrant(perm, mergeExistingPermissions);<a name="line.2608"></a>
+<span class="sourceLineNo">2507</span>   * @return BypassProcedureToCompletionResponse indicating success or failure<a name="line.2507"></a>
+<span class="sourceLineNo">2508</span>   */<a name="line.2508"></a>
+<span class="sourceLineNo">2509</span>  @Override<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span>  public MasterProtos.BypassProcedureResponse bypassProcedure(RpcController controller,<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span>      MasterProtos.BypassProcedureRequest request) throws ServiceException {<a name="line.2511"></a>
+<span class="sourceLineNo">2512</span>    try {<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span>      LOG.info("{} bypass procedures={}, waitTime={}, override={}, recursive={}",<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span>          master.getClientIdAuditPrefix(), request.getProcIdList(), request.getWaitTime(),<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span>          request.getOverride(), request.getRecursive());<a name="line.2515"></a>
+<span class="sourceLineNo">2516</span>      List&lt;Boolean&gt; ret =<a name="line.2516"></a>
+<span class="sourceLineNo">2517</span>          master.getMasterProcedureExecutor().bypassProcedure(request.getProcIdList(),<a name="line.2517"></a>
+<span class="sourceLineNo">2518</span>          request.getWaitTime(), request.getOverride(), request.getRecursive());<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span>      return MasterProtos.BypassProcedureResponse.newBuilder().addAllBypassed(ret).build();<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span>    } catch (IOException e) {<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span>      throw new ServiceException(e);<a name="line.2521"></a>
+<span class="sourceLineNo">2522</span>    }<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span>  }<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span><a name="line.2524"></a>
+<span class="sourceLineNo">2525</span>  @Override<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span>  public MasterProtos.ScheduleServerCrashProcedureResponse scheduleServerCrashProcedure(<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span>      RpcController controller, MasterProtos.ScheduleServerCrashProcedureRequest request)<a name="line.2527"></a>
+<span class="sourceLineNo">2528</span>      throws ServiceException {<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span>    List&lt;HBaseProtos.ServerName&gt; serverNames = request.getServerNameList();<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span>    List&lt;Long&gt; pids = new ArrayList&lt;&gt;();<a name="line.2530"></a>
+<span class="sourceLineNo">2531</span>    try {<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span>      for (HBaseProtos.ServerName serverName : serverNames) {<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span>        ServerName server = ProtobufUtil.toServerName(serverName);<a name="line.2533"></a>
+<span class="sourceLineNo">2534</span>        LOG.info("{} schedule ServerCrashProcedure for {}",<a name="line.2534"></a>
+<span class="sourceLineNo">2535</span>            master.getClientIdAuditPrefix(), server);<a name="line.2535"></a>
+<span class="sourceLineNo">2536</span>        if (shouldSubmitSCP(server)) {<a name="line.2536"></a>
+<span class="sourceLineNo">2537</span>          master.getServerManager().moveFromOnlineToDeadServers(server);<a name="line.2537"></a>
+<span class="sourceLineNo">2538</span>          ProcedureExecutor&lt;MasterProcedureEnv&gt; procExec = this.master.getMasterProcedureExecutor();<a name="line.2538"></a>
+<span class="sourceLineNo">2539</span>          pids.add(procExec.submitProcedure(new ServerCrashProcedure(procExec.getEnvironment(),<a name="line.2539"></a>
+<span class="sourceLineNo">2540</span>            server, true, containMetaWals(server))));<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>        } else {<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>          pids.add(-1L);<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>        }<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span>      }<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span>      return MasterProtos.ScheduleServerCrashProcedureResponse.newBuilder().addAllPid(pids).build();<a name="line.2545"></a>
+<span class="sourceLineNo">2546</span>    } catch (IOException e) {<a name="line.2546"></a>
+<span class="sourceLineNo">2547</span>      throw new ServiceException(e);<a name="line.2547"></a>
+<span class="sourceLineNo">2548</span>    }<a name="line.2548"></a>
+<span class="sourceLineNo">2549</span>  }<a name="line.2549"></a>
+<span class="sourceLineNo">2550</span><a name="line.2550"></a>
+<span class="sourceLineNo">2551</span>  @Override<a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>  public FixMetaResponse fixMeta(RpcController controller, FixMetaRequest request)<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span>      throws ServiceException {<a name="line.2553"></a>
+<span class="sourceLineNo">2554</span>    try {<a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>      MetaFixer mf = new MetaFixer(this.master);<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>      mf.fix();<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span>      return FixMetaResponse.newBuilder().build();<a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>    } catch (IOException ioe) {<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>      throw new ServiceException(ioe);<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>    }<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span>  }<a name="line.2561"></a>
+<span class="sourceLineNo">2562</span><a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>  @Override<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span>  public SwitchRpcThrottleResponse switchRpcThrottle(RpcController controller,<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span>      SwitchRpcThrottleRequest request) throws ServiceException {<a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>    try {<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span>      master.checkInitialized();<a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>      return master.getMasterQuotaManager().switchRpcThrottle(request);<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>    } catch (Exception e) {<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>      throw new ServiceException(e);<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span>    }<a name="line.2571"></a>
+<span class="sourceLineNo">2572</span>  }<a name="line.2572"></a>
+<span class="sourceLineNo">2573</span><a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>  @Override<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span>  public MasterProtos.IsRpcThrottleEnabledResponse isRpcThrottleEnabled(RpcController controller,<a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>      MasterProtos.IsRpcThrottleEnabledRequest request) throws ServiceException {<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>    try {<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>      master.checkInitialized();<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span>      return master.getMasterQuotaManager().isRpcThrottleEnabled(request);<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span>    } catch (Exception e) {<a name="line.2580"></a>
+<span class="sourceLineNo">2581</span>      throw new ServiceException(e);<a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>    }<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span>  }<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span><a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>  @Override<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>  public SwitchExceedThrottleQuotaResponse switchExceedThrottleQuota(RpcController controller,<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span>      SwitchExceedThrottleQuotaRequest request) throws ServiceException {<a name="line.2587"></a>
+<span class="sourceLineNo">2588</span>    try {<a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>      master.checkInitialized();<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>      return master.getMasterQuotaManager().switchExceedThrottleQuota(request);<a name="line.2590"></a>
+<span class="sourceLineNo">2591</span>    } catch (Exception e) {<a name="line.2591"></a>
+<span class="sourceLineNo">2592</span>      throw new ServiceException(e);<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span>    }<a name="line.2593"></a>
+<span class="sourceLineNo">2594</span>  }<a name="line.2594"></a>
+<span class="sourceLineNo">2595</span><a name="line.2595"></a>
+<span class="sourceLineNo">2596</span>  @Override<a name="line.2596"></a>
+<span class="sourceLineNo">2597</span>  public GrantResponse grant(RpcController controller, GrantRequest request)<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span>      throws ServiceException {<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span>    try {<a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>      final UserPermission perm =<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>          ShadedAccessControlUtil.toUserPermission(request.getUserPermission());<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>      boolean mergeExistingPermissions = request.getMergeExistingPermissions();<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>      if (master.cpHost != null) {<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span>        master.cpHost.preGrant(perm, mergeExistingPermissions);<a name="line.2604"></a>
+<span class="sourceLineNo">2605</span>      }<a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>      try (Table table = master.getConnection().getTable(PermissionStorage.ACL_TABLE_NAME)) {<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span>        PermissionStorage.addUserPermission(getConfiguration(), perm, table,<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span>          mergeExistingPermissions);<a name="line.2608"></a>
 <span class="sourceLineNo">2609</span>      }<a name="line.2609"></a>
-<span class="sourceLineNo">2610</span>      try (Table table = master.getConnection().getTable(PermissionStorage.ACL_TABLE_NAME)) {<a name="line.2610"></a>
-<span class="sourceLineNo">2611</span>        PermissionStorage.addUserPermission(getConfiguration(), perm, table,<a name="line.2611"></a>
-<span class="sourceLineNo">2612</span>          mergeExistingPermissions);<a name="line.2612"></a>
-<span class="sourceLineNo">2613</span>      }<a name="line.2613"></a>
-<span class="sourceLineNo">2614</span>      if (master.cpHost != null) {<a name="line.2614"></a>
-<span class="sourceLineNo">2615</span>        master.cpHost.postGrant(perm, mergeExistingPermissions);<a name="line.2615"></a>
-<span class="sourceLineNo">2616</span>      }<a name="line.2616"></a>
-<span class="sourceLineNo">2617</span>      User caller = RpcServer.getRequestUser().orElse(null);<a name="line.2617"></a>
-<span class="sourceLineNo">2618</span>      if (AUDITLOG.isTraceEnabled()) {<a name="line.2618"></a>
-<span class="sourceLineNo">2619</span>        // audit log should store permission changes in addition to auth results<a name="line.2619"></a>
-<span class="sourceLineNo">2620</span>        String remoteAddress = RpcServer.getRemoteAddress().map(InetAddress::toString).orElse("");<a name="line.2620"></a>
-<span class="sourceLineNo">2621</span>        AUDITLOG.trace("User {} (remote address: {}) granted permission {}", caller, remoteAddress,<a name="line.2621"></a>
-<span class="sourceLineNo">2622</span>                perm);<a name="line.2622"></a>
-<span class="sourceLineNo">2623</span>      }<a name="line.2623"></a>
-<span class="sourceLineNo">2624</span>      return GrantResponse.getDefaultInstance();<a name="line.2624"></a>
-<span class="sourceLineNo">2625</span>    } catch (IOException ioe) {<a name="line.2625"></a>
-<span class="sourceLineNo">2626</span>      throw new ServiceException(ioe);<a name="line.2626"></a>
-<span class="sourceLineNo">2627</span>    }<a name="line.2627"></a>
-<span class="sourceLineNo">2628</span>  }<a name="line.2628"></a>
-<span class="sourceLineNo">2629</span><a name="line.2629"></a>
-<span class="sourceLineNo">2630</span>  @Override<a name="line.2630"></a>
-<span class="sourceLineNo">2631</span>  public RevokeResponse revoke(RpcController controller, RevokeRequest request)<a name="line.2631"></a>
-<span class="sourceLineNo">2632</span>      throws ServiceException {<a name="line.2632"></a>
-<span class="sourceLineNo">2633</span>    try {<a name="line.2633"></a>
-<span class="sourceLineNo">2634</span>      final UserPermission userPermission =<a name="line.2634"></a>
-<span class="sourceLineNo">2635</span>          ShadedAccessControlUtil.toUserPermission(request.getUserPermission());<a name="line.2635"></a>
-<span class="sourceLineNo">2636</span>      if (master.cpHost != null) {<a name="line.2636"></a>
-<span class="sourceLineNo">2637</span>        master.cpHost.preRevoke(userPermission);<a name="line.2637"></a>
-<span class="sourceLineNo">2638</span>      }<a name="line.2638"></a>
-<span class="sourceLineNo">2639</span>      try (Table table = master.getConnection().getTable(PermissionStorage.ACL_TABLE_NAME)) {<a name="line.2639"></a>
-<span class="sourceLineNo">2640</span>        PermissionStorage.removeUserPermission(master.getConfiguration(), userPermission, table);<a name="line.2640"></a>
-<span class="sourceLineNo">2641</span>      }<a name="line.2641"></a>
-<span class="sourceLineNo">2642</span>      if (master.cpHost != null) {<a name="line.2642"></a>
-<span class="sourceLineNo">2643</span>        master.cpHost.postRevoke(userPermission);<a name="line.2643"></a>
-<span class="sourceLineNo">2644</span>      }<a name="line.2644"></a>
-<span class="sourceLineNo">2645</span>      User caller = RpcServer.getRequestUser().orElse(null);<a name="line.2645"></a>
-<span class="sourceLineNo">2646</span>      if (AUDITLOG.isTraceEnabled()) {<a name="line.2646"></a>
-<span class="sourceLineNo">2647</span>        // audit log should record all permission changes<a name="line.2647"></a>
-<span class="sourceLineNo">2648</span>        String remoteAddress = RpcServer.getRemoteAddress().map(InetAddress::toString).orElse("");<a name="line.2648"></a>
-<span class="sourceLineNo">2649</span>        AUDITLOG.trace("User {} (remote address: {}) revoked permission {}", caller, remoteAddress,<a name="line.2649"></a>
-<span class="sourceLineNo">2650</span>                userPermission);<a name="line.2650"></a>
-<span class="sourceLineNo">2651</span>      }<a name="line.2651"></a>
-<span class="sourceLineNo">2652</span>      return RevokeResponse.getDefaultInstance();<a name="line.2652"></a>
-<span class="sourceLineNo">2653</span>    } catch (IOException ioe) {<a name="line.2653"></a>
-<span class="sourceLineNo">2654</span>      throw new ServiceException(ioe);<a name="line.2654"></a>
-<span class="sourceLineNo">2655</span>    }<a name="line.2655"></a>
-<span class="sourceLineNo">2656</span>  }<a name="line.2656"></a>
-<span class="sourceLineNo">2657</span><a name="line.2657"></a>
-<span class="sourceLineNo">2658</span>  @Override<a name="line.2658"></a>
-<span class="sourceLineNo">2659</span>  public GetUserPermissionsResponse getUserPermissions(RpcController controller,<a name="line.2659"></a>
-<span class="sourceLineNo">2660</span>      GetUserPermissionsRequest request) throws ServiceException {<a name="line.2660"></a>
-<span class="sourceLineNo">2661</span>    try {<a name="line.2661"></a>
-<span class="sourceLineNo">2662</span>      final String userName = request.hasUserName() ? request.getUserName().toStringUtf8() : null;<a name="line.2662"></a>
-<span class="sourceLineNo">2663</span>      String namespace =<a name="line.2663"></a>
-<span class="sourceLineNo">2664</span>          request.hasNamespaceName() ? request.getNamespaceName().toStringUtf8() : null;<a name="line.2664"></a>
-<span class="sourceLineNo">2665</span>      TableName table =<a name="line.2665"></a>
-<span class="sourceLineNo">2666</span>          request.hasTableName() ? ProtobufUtil.toTableName(request.getTableName()) : null;<a name="line.2666"></a>
-<span class="sourceLineNo">2667</span>      byte[] cf = request.hasColumnFamily() ? request.getColumnFamily().toByteArray() : null;<a name="line.2667"></a>
-<span class="sourceLineNo">2668</span>      byte[] cq = request.hasColumnQualifier() ? request.getColumnQualifier().toByteArray() : null;<a name="line.2668"></a>
-<span class="sourceLineNo">2669</span>      Type permissionType = request.hasType() ? request.getType() : null;<a name="line.2669"></a>
-<span class="sourceLineNo">2670</span>      if (master.cpHost != null) {<a name="line.2670"></a>
-<span class="sourceLineNo">2671</span>        master.getMasterCoprocessorHost().preGetUserPermissions(userName, namespace, table, cf, cq);<a name="line.2671"></a>
-<span class="sourceLineNo">2672</span>      }<a name="line.2672"></a>
-<span class="sourceLineNo">2673</span><a name="line.2673"></a>
-<span class="sourceLineNo">2674</span>      List&lt;UserPermission&gt; perms = null;<a name="line.2674"></a>
-<span class="sourceLineNo">2675</span>      if (permissionType == Type.Table) {<a name="line.2675"></a>
-<span class="sourceLineNo">2676</span>        boolean filter = (cf != null || userName != null) ? true : false;<a name="line.2676"></a>
-<span class="sourceLineNo">2677</span>        perms = PermissionStorage.getUserTablePermissions(master.getConfiguration(), table, cf, cq,<a name="line.2677"></a>
-<span class="sourceLineNo">2678</span>          userName, filter);<a name="line.2678"></a>
-<span class="sourceLineNo">2679</span>      } else if (permissionType == Type.Namespace) {<a name="line.2679"></a>
-<span class="sourceLineNo">2680</span>        perms = PermissionStorage.getUserNamespacePermissions(master.getConfiguration(), namespace,<a name="line.2680"></a>
-<span class="sourceLineNo">2681</span>          userName, userName != null ? true : false);<a name="line.2681"></a>
-<span class="sourceLineNo">2682</span>      } else {<a name="line.2682"></a>
-<span class="sourceLineNo">2683</span>        perms = PermissionStorage.getUserPermissions(master.getConfiguration(), null, null, null,<a name="line.2683"></a>
-<span class="sourceLineNo">2684</span>          userName, userName != null ? true : false);<a name="line.2684"></a>
-<span class="sourceLineNo">2685</span>        // Skip super users when filter user is specified<a name="line.2685"></a>
-<span class="sourceLineNo">2686</span>        if (userName == null) {<a name="line.2686"></a>
-<span class="sourceLineNo">2687</span>          // Adding superusers explicitly to the result set as PermissionStorage do not store<a name="line.2687"></a>
-<span class="sourceLineNo">2688</span>          // them. Also using acl as table name to be inline with the results of global admin and<a name="line.2688"></a>
-<span class="sourceLineNo">2689</span>          // will help in avoiding any leakage of information about being superusers.<a name="line.2689"></a>
-<span class="sourceLineNo">2690</span>          for (String user : Superusers.getSuperUsers()) {<a name="line.2690"></a>
-<span class="sourceLineNo">2691</span>            perms.add(new UserPermission(user,<a name="line.2691"></a>
-<span class="sourceLineNo">2692</span>                Permission.newBuilder().withActions(Action.values()).build()));<a name="line.2692"></a>
-<span class="sourceLineNo">2693</span>          }<a name="line.2693"></a>
-<span class="sourceLineNo">2694</span>        }<a name="line.2694"></a>
-<span class="sourceLineNo">2695</span>      }<a name="line.2695"></a>
-<span class="sourceLineNo">2696</span><a name="line.2696"></a>
-<span class="sourceLineNo">2697</span>      if (master.cpHost != null) {<a name="line.2697"></a>
-<span class="sourceLineNo">2698</span>        master.getMasterCoprocessorHost().postGetUserPermissions(userName, namespace, table, cf,<a name="line.2698"></a>
-<span class="sourceLineNo">2699</span>          cq);<a name="line.2699"></a>
-<span class="sourceLineNo">2700</span>      }<a name="line.2700"></a>
-<span class="sourceLineNo">2701</span>      AccessControlProtos.GetUserPermissionsResponse response =<a name="line.2701"></a>
-<span class="sourceLineNo">2702</span>          ShadedAccessControlUtil.buildGetUserPermissionsResponse(perms);<a name="line.2702"></a>
-<span class="sourceLineNo">2703</span>      return response;<a name="line.2703"></a>
-<span class="sourceLineNo">2704</span>    } catch (IOException ioe) {<a name="line.2704"></a>
-<span class="sourceLineNo">2705</span>      throw new ServiceException(ioe);<a name="line.2705"></a>
-<span class="sourceLineNo">2706</span>    }<a name="line.2706"></a>
-<span class="sourceLineNo">2707</span>  }<a name="line.2707"></a>
-<span class="sourceLineNo">2708</span><a name="line.2708"></a>
-<span class="sourceLineNo">2709</span>  @Override<a name="line.2709"></a>
-<span class="sourceLineNo">2710</span>  public HasUserPermissionsResponse hasUserPermissions(RpcController controller,<a name="line.2710"></a>
-<span class="sourceLineNo">2711</span>      HasUserPermissionsRequest request) throws ServiceException {<a name="line.2711"></a>
-<span class="sourceLineNo">2712</span>    try {<a name="line.2712"></a>
-<span class="sourceLineNo">2713</span>      User caller = RpcServer.getRequestUser().orElse(null);<a name="line.2713"></a>
-<span class="sourceLineNo">2714</span>      String userName =<a name="line.2714"></a>
-<span class="sourceLineNo">2715</span>          request.hasUserName() ? request.getUserName().toStringUtf8() : caller.getShortName();<a name="line.2715"></a>
-<span class="sourceLineNo">2716</span>      List&lt;Permission&gt; permissions = new ArrayList&lt;&gt;();<a name="line.2716"></a>
-<span class="sourceLineNo">2717</span>      for (int i = 0; i &lt; request.getPermissionCount(); i++) {<a name="line.2717"></a>
-<span class="sourceLineNo">2718</span>        permissions.add(ShadedAccessControlUtil.toPermission(request.getPermission(i)));<a name="line.2718"></a>
-<span class="sourceLineNo">2719</span>      }<a name="line.2719"></a>
-<span class="sourceLineNo">2720</span>      if (master.cpHost != null) {<a name="line.2720"></a>
-<span class="sourceLineNo">2721</span>        master.getMasterCoprocessorHost().preHasUserPermissions(userName, permissions);<a name="line.2721"></a>
+<span class="sourceLineNo">2610</span>      if (master.cpHost != null) {<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span>        master.cpHost.postGrant(perm, mergeExistingPermissions);<a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>      }<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>      User caller = RpcServer.getRequestUser().orElse(null);<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>      if (AUDITLOG.isTraceEnabled()) {<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>        // audit log should store permission changes in addition to auth results<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>        String remoteAddress = RpcServer.getRemoteAddress().map(InetAddress::toString).orElse("");<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span>        AUDITLOG.trace("User {} (remote address: {}) granted permission {}", caller, remoteAddress,<a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>                perm);<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span>      }<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>      return GrantResponse.getDefaultInstance();<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>    } catch (IOException ioe) {<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span>      throw new ServiceException(ioe);<a name="line.2622"></a>
+<span class="sourceLineNo">2623</span>    }<a name="line.2623"></a>
+<span class="sourceLineNo">2624</span>  }<a name="line.2624"></a>
+<span class="sourceLineNo">2625</span><a name="line.2625"></a>
+<span class="sourceLineNo">2626</span>  @Override<a name="line.2626"></a>
+<span class="sourceLineNo">2627</span>  public RevokeResponse revoke(RpcController controller, RevokeRequest request)<a name="line.2627"></a>
+<span class="sourceLineNo">2628</span>      throws ServiceException {<a name="line.2628"></a>
+<span class="sourceLineNo">2629</span>    try {<a name="line.2629"></a>
+<span class="sourceLineNo">2630</span>      final UserPermission userPermission =<a name="line.2630"></a>
+<span class="sourceLineNo">2631</span>          ShadedAccessControlUtil.toUserPermission(request.getUserPermission());<a name="line.2631"></a>
+<span class="sourceLineNo">2632</span>      if (master.cpHost != null) {<a name="line.2632"></a>
+<span class="sourceLineNo">2633</span>        master.cpHost.preRevoke(userPermission);<a name="line.2633"></a>
+<span class="sourceLineNo">2634</span>      }<a name="line.2634"></a>
+<span class="sourceLineNo">2635</span>      try (Table table = master.getConnection().getTable(PermissionStorage.ACL_TABLE_NAME)) {<a name="line.2635"></a>
+<span class="sourceLineNo">2636</span>        PermissionStorage.removeUserPermission(master.getConfiguration(), userPermission, table);<a name="line.2636"></a>
+<span class="sourceLineNo">2637</span>      }<a name="line.2637"></a>
+<span class="sourceLineNo">2638</span>      if (master.cpHost != null) {<a name="line.2638"></a>
+<span class="sourceLineNo">2639</span>        master.cpHost.postRevoke(userPermission);<a name="line.2639"></a>
+<span class="sourceLineNo">2640</span>      }<a name="line.2640"></a>
+<span class="sourceLineNo">2641</span>      User caller = RpcServer.getRequestUser().orElse(null);<a name="line.2641"></a>
+<span class="sourceLineNo">2642</span>      if (AUDITLOG.isTraceEnabled()) {<a name="line.2642"></a>
+<span class="sourceLineNo">2643</span>        // audit log should record all permission changes<a name="line.2643"></a>
+<span class="sourceLineNo">2644</span>        String remoteAddress = RpcServer.getRemoteAddress().map(InetAddress::toString).orElse("");<a name="line.2644"></a>
+<span class="sourceLineNo">2645</span>        AUDITLOG.trace("User {} (remote address: {}) revoked permission {}", caller, remoteAddress,<a name="line.2645"></a>
+<span class="sourceLineNo">2646</span>                userPermission);<a name="line.2646"></a>
+<span class="sourceLineNo">2647</span>      }<a name="line.2647"></a>
+<span class="sourceLineNo">2648</span>      return RevokeResponse.getDefaultInstance();<a name="line.2648"></a>
+<span class="sourceLineNo">2649</span>    } catch (IOException ioe) {<a name="line.2649"></a>
+<span class="sourceLineNo">2650</span>      throw new ServiceException(ioe);<a name="line.2650"></a>
+<span class="sourceLineNo">2651</span>    }<a name="line.2651"></a>
+<span class="sourceLineNo">2652</span>  }<a name="line.2652"></a>
+<span class="sourceLineNo">2653</span><a name="line.2653"></a>
+<span class="sourceLineNo">2654</span>  @Override<a name="line.2654"></a>
+<span class="sourceLineNo">2655</span>  public GetUserPermissionsResponse getUserPermissions(RpcController controller,<a name="line.2655"></a>
+<span class="sourceLineNo">2656</span>      GetUserPermissionsRequest request) throws ServiceException {<a name="line.2656"></a>
+<span class="sourceLineNo">2657</span>    try {<a name="line.2657"></a>
+<span class="sourceLineNo">2658</span>      final String userName = request.hasUserName() ? request.getUserName().toStringUtf8() : null;<a name="line.2658"></a>
+<span class="sourceLineNo">2659</span>      String namespace =<a name="line.2659"></a>
+<span class="sourceLineNo">2660</span>          request.hasNamespaceName() ? request.getNamespaceName().toStringUtf8() : null;<a name="line.2660"></a>
+<span class="sourceLineNo">2661</span>      TableName table =<a name="line.2661"></a>
+<span class="sourceLineNo">2662</span>          request.hasTableName() ? ProtobufUtil.toTableName(request.getTableName()) : null;<a name="line.2662"></a>
+<span class="sourceLineNo">2663</span>      byte[] cf = request.hasColumnFamily() ? request.getColumnFamily().toByteArray() : null;<a name="line.2663"></a>
+<span class="sourceLineNo">2664</span>      byte[] cq = request.hasColumnQualifier() ? request.getColumnQualifier().toByteArray() : null;<a name="line.2664"></a>
+<span class="sourceLineNo">2665</span>      Type permissionType = request.hasType() ? request.getType() : null;<a name="line.2665"></a>
+<span class="sourceLineNo">2666</span>      if (master.cpHost != null) {<a name="line.2666"></a>
+<span class="sourceLineNo">2667</span>        master.getMasterCoprocessorHost().preGetUserPermissions(userName, namespace, table, cf, cq);<a name="line.2667"></a>
+<span class="sourceLineNo">2668</span>      }<a name="line.2668"></a>
+<span class="sourceLineNo">2669</span><a name="line.2669"></a>
+<span class="sourceLineNo">2670</span>      List&lt;UserPermission&gt; perms = null;<a name="line.2670"></a>
+<span class="sourceLineNo">2671</span>      if (permissionType == Type.Table) {<a name="line.2671"></a>
+<span class="sourceLineNo">2672</span>        boolean filter = (cf != null || userName != null) ? true : false;<a name="line.2672"></a>
+<span class="sourceLineNo">2673</span>        perms = PermissionStorage.getUserTablePermissions(master.getConfiguration(), table, cf, cq,<a name="line.2673"></a>
+<span class="sourceLineNo">2674</span>          userName, filter);<a name="line.2674"></a>
+<span class="sourceLineNo">2675</span>      } else if (permissionType == Type.Namespace) {<a name="line.2675"></a>
+<span class="sourceLineNo">2676</span>        perms = PermissionStorage.getUserNamespacePermissions(master.getConfiguration(), namespace,<a name="line.2676"></a>
+<span class="sourceLineNo">2677</span>          userName, userName != null ? true : false);<a name="line.2677"></a>
+<span class="sourceLineNo">2678</span>      } else {<a name="line.2678"></a>
+<span class="sourceLineNo">2679</span>        perms = PermissionStorage.getUserPermissions(master.getConfiguration(), null, null, null,<a name="line.2679"></a>
+<span class="sourceLineNo">2680</span>          userName, userName != null ? true : false);<a name="line.2680"></a>
+<span class="sourceLineNo">2681</span>        // Skip super users when filter user is specified<a name="line.2681"></a>
+<span class="sourceLineNo">2682</span>        if (userName == null) {<a name="line.2682"></a>
+<span class="sourceLineNo">2683</span>          // Adding superusers explicitly to the result set as PermissionStorage do not store<a name="line.2683"></a>
+<span class="sourceLineNo">2684</span>          // them. Also using acl as table name to be inline with the results of global admin and<a name="line.2684"></a>
+<span class="sourceLineNo">2685</span>          // will help in avoiding any leakage of information about being superusers.<a name="line.2685"></a>
+<span class="sourceLineNo">2686</span>          for (String user : Superusers.getSuperUsers()) {<a name="line.2686"></a>
+<span class="sourceLineNo">2687</span>            perms.add(new UserPermission(user,<a name="line.2687"></a>
+<span class="sourceLineNo">2688</span>                Permission.newBuilder().withActions(Action.values()).build()));<a name="line.2688"></a>
+<span class="sourceLineNo">2689</span>          }<a name="line.2689"></a>
+<span class="sourceLineNo">2690</span>        }<a name="line.2690"></a>
+<span class="sourceLineNo">2691</span>      }<a name="line.2691"></a>
+<span class="sourceLineNo">2692</span><a name="line.2692"></a>
+<span class="sourceLineNo">2693</span>      if (master.cpHost != null) {<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span>        master.getMasterCoprocessorHost().postGetUserPermissions(userName, namespace, table, cf,<a name="line.2694"></a>
+<span class="sourceLineNo">2695</span>          cq);<a name="line.2695"></a>
+<span class="sourceLineNo">2696</span>      }<a name="line.2696"></a>
+<span class="sourceLineNo">2697</span>      AccessControlProtos.GetUserPermissionsResponse response =<a name="line.2697"></a>
+<span class="sourceLineNo">2698</span>          ShadedAccessControlUtil.buildGetUserPermissionsResponse(perms);<a name="line.2698"></a>
+<span class="sourceLineNo">2699</span>      return response;<a name="line.2699"></a>
+<span class="sourceLineNo">2700</span>    } catch (IOException ioe) {<a name="line.2700"></a>
+<span class="sourceLineNo">2701</span>      throw new ServiceException(ioe);<a name="line.2701"></a>
+<span class="sourceLineNo">2702</span>    }<a name="line.2702"></a>
+<span class="sourceLineNo">2703</span>  }<a name="line.2703"></a>
+<span class="sourceLineNo">2704</span><a name="line.2704"></a>
+<span class="sourceLineNo">2705</span>  @Override<a name="line.2705"></a>
+<span class="sourceLineNo">2706</span>  public HasUserPermissionsResponse hasUserPermissions(RpcController controller,<a name="line.2706"></a>
+<span class="sourceLineNo">2707</span>      HasUserPermissionsRequest request) throws ServiceException {<a name="line.2707"></a>
+<span class="sourceLineNo">2708</span>    try {<a name="line.2708"></a>
+<span class="sourceLineNo">2709</span>      User caller = RpcServer.getRequestUser().orElse(null);<a name="line.2709"></a>
+<span class="sourceLineNo">2710</span>      String userName =<a name="line.2710"></a>
+<span class="sourceLineNo">2711</span>          request.hasUserName() ? request.getUserName().toStringUtf8() : caller.getShortName();<a name="line.2711"></a>
+<span class="sourceLineNo">2712</span>      List&lt;Permission&gt; permissions = new ArrayList&lt;&gt;();<a name="line.2712"></a>
+<span class="sourceLineNo">2713</span>      for (int i = 0; i &lt; request.getPermissionCount(); i++) {<a name="line.2713"></a>
+<span class="sourceLineNo">2714</span>        permissions.add(ShadedAccessControlUtil.toPermission(request.getPermission(i)));<a name="line.2714"></a>
+<span class="sourceLineNo">2715</span>      }<a name="line.2715"></a>
+<span class="sourceLineNo">2716</span>      if (master.cpHost != null) {<a name="line.2716"></a>
+<span class="sourceLineNo">2717</span>        master.getMasterCoprocessorHost().preHasUserPermissions(userName, permissions);<a name="line.2717"></a>
+<span class="sourceLineNo">2718</span>      }<a name="line.2718"></a>
+<span class="sourceLineNo">2719</span>      if (!caller.getShortName().equals(userName)) {<a name="line.2719"></a>
+<span class="sourceLineNo">2720</span>        List&lt;String&gt; groups = AccessChecker.getUserGroups(userName);<a name="line.2720"></a>
+<span class="sourceLineNo">2721</span>        caller = new InputUser(userName, groups.toArray(new String[groups.size()]));<a name="line.2721"></a>
 <span class="sourceLineNo">2722</span>      }<a name="line.2722"></a>
-<span class="sourceLineNo">2723</span>      if (!caller.getShortName().equals(userName)) {<a name="line.2723"></a>
-<span class="sourceLineNo">2724</span>        List&lt;String&gt; groups = AccessChecker.getUserGroups(userName);<a name="line.2724"></a>
-<span class="sourceLineNo">2725</span>        caller = new InputUser(userName, groups.toArray(new String[groups.size()]));<a name="line.2725"></a>
-<span class="sourceLineNo">2726</span>      }<a name="line.2726"></a>
-<span class="sourceLineNo">2727</span>      List&lt;Boolean&gt; hasUserPermissions = new ArrayList&lt;&gt;();<a name="line.2727"></a>
-<span class="sourceLineNo">2728</span>      if (getAccessChecker() != null) {<a name="line.2728"></a>
-<span class="sourceLineNo">2729</span>        for (Permission permission : permissions) {<a name="line.2729"></a>
-<span class="sourceLineNo">2730</span>          boolean hasUserPermission =<a name="line.2730"></a>
-<span class="sourceLineNo">2731</span>              getAccessChecker().hasUserPermission(caller, "hasUserPermissions", permission);<a name="line.2731"></a>
-<span class="sourceLineNo">2732</span>          hasUserPermissions.add(hasUserPermission);<a name="line.2732"></a>
+<span class="sourceLineNo">2723</span>      List&lt;Boolean&gt; hasUserPermissions = new ArrayList&lt;&gt;();<a name="line.2723"></a>
+<span class="sourceLineNo">2724</span>      if (getAccessChecker() != null) {<a name="line.2724"></a>
+<span class="sourceLineNo">2725</span>        for (Permission permission : permissions) {<a name="line.2725"></a>
+<span class="sourceLineNo">2726</span>          boolean hasUserPermission =<a name="line.2726"></a>
+<span class="sourceLineNo">2727</span>              getAccessChecker().hasUserPermission(caller, "hasUserPermissions", permission);<a name="line.2727"></a>
+<span class="sourceLineNo">2728</span>          hasUserPermissions.add(hasUserPermission);<a name="line.2728"></a>
+<span class="sourceLineNo">2729</span>        }<a name="line.2729"></a>
+<span class="sourceLineNo">2730</span>      } else {<a name="line.2730"></a>
+<span class="sourceLineNo">2731</span>        for (int i = 0; i &lt; permissions.size(); i++) {<a name="line.2731"></a>
+<span class="sourceLineNo">2732</span>          hasUserPermissions.add(true);<a name="line.2732"></a>
 <span class="sourceLineNo">2733</span>        }<a name="line.2733"></a>
-<span class="sourceLineNo">2734</span>      } else {<a name="line.2734"></a>
-<span class="sourceLineNo">2735</span>        for (int i = 0; i &lt; permissions.size(); i++) {<a name="line.2735"></a>
-<span class="sourceLineNo">2736</span>          hasUserPermissions.add(true);<a name="line.2736"></a>
-<span class="sourceLineNo">2737</span>        }<a name="line.2737"></a>
-<span class="sourceLineNo">2738</span>      }<a name="line.2738"></a>
-<span class="sourceLineNo">2739</span>      if (master.cpHost != null) {<a name="line.2739"></a>
-<span class="sourceLineNo">2740</span>        master.getMasterCoprocessorHost().postHasUserPermissions(userName, permissions);<a name="line.2740"></a>
-<span class="sourceLineNo">2741</span>      }<a name="line.2741"></a>
-<span class="sourceLineNo">2742</span>      HasUserPermissionsResponse.Builder builder =<a name="line.2742"></a>
-<span class="sourceLineNo">2743</span>          HasUserPermissionsResponse.newBuilder().addAllHasUserPermission(hasUserPermissions);<a name="line.2743"></a>
-<span class="sourceLineNo">2744</span>      return builder.build();<a name="line.2744"></a>
-<span class="sourceLineNo">2745</span>    } catch (IOException ioe) {<a name="line.2745"></a>
-<span class="sourceLineNo">2746</span>      throw new ServiceException(ioe);<a name="line.2746"></a>
-<span class="sourceLineNo">2747</span>    }<a name="line.2747"></a>
-<span class="sourceLineNo">2748</span>  }<a name="line.2748"></a>
-<span class="sourceLineNo">2749</span><a name="line.2749"></a>
-<span class="sourceLineNo">2750</span>  private boolean containMetaWals(ServerName serverName) throws IOException {<a name="line.2750"></a>
-<span class="sourceLineNo">2751</span>    Path logDir = new Path(master.getWALRootDir(),<a name="line.2751"></a>
-<span class="sourceLineNo">2752</span>        AbstractFSWALProvider.getWALDirectoryName(serverName.toString()));<a name="line.2752"></a>
-<span class="sourceLineNo">2753</span>    Path splitDir = logDir.suffix(AbstractFSWALProvider.SPLITTING_EXT);<a name="line.2753"></a>
-<span class="sourceLineNo">2754</span>    Path checkDir = master.getFileSystem().exists(splitDir) ? splitDir : logDir;<a name="line.2754"></a>
-<span class="sourceLineNo">2755</span>    return master.getFileSystem().listStatus(checkDir, META_FILTER).length &gt; 0;<a name="line.2755"></a>
-<span class="sourceLineNo">2756</span>  }<a name="line.2756"></a>
-<span class="sourceLineNo">2757</span><a name="line.2757"></a>
-<span class="sourceLineNo">2758</span>  private boolean shouldSubmitSCP(ServerName serverName) {<a name="line.2758"></a>
-<span class="sourceLineNo">2759</span>    // check if there is already a SCP of this server running<a name="line.2759"></a>
-<span class="sourceLineNo">2760</span>    List&lt;Procedure&lt;MasterProcedureEnv&gt;&gt; procedures =<a name="line.2760"></a>
-<span class="sourceLineNo">2761</span>        master.getMasterProcedureExecutor().getProcedures();<a name="line.2761"></a>
-<span class="sourceLineNo">2762</span>    for (Procedure&lt;MasterProcedureEnv&gt; procedure : procedures) {<a name="line.2762"></a>
-<span class="sourceLineNo">2763</span>      if (procedure instanceof ServerCrashProcedure) {<a name="line.2763"></a>
-<span class="sourceLineNo">2764</span>        if (serverName.compareTo(((ServerCrashProcedure) procedure).getServerName()) == 0<a name="line.2764"></a>
-<span class="sourceLineNo">2765</span>            &amp;&amp; !procedure.isFinished()) {<a name="line.2765"></a>
-<span class="sourceLineNo">2766</span>          LOG.info("there is already a SCP of this server {} running, pid {}", serverName,<a name="line.2766"></a>
-<span class="sourceLineNo">2767</span>            procedure.getProcId());<a name="line.2767"></a>
-<span class="sourceLineNo">2768</span>          return false;<a name="line.2768"></a>
-<span class="sourceLineNo">2769</span>        }<a name="line.2769"></a>
-<span class="sourceLineNo">2770</span>      }<a name="line.2770"></a>
-<span class="sourceLineNo">2771</span>    }<a name="line.2771"></a>
-<span class="sourceLineNo">2772</span>    return true;<a name="line.2772"></a>
-<span class="sourceLineNo">2773</span>  }<a name="line.2773"></a>
-<span class="sourceLineNo">2774</span>}<a name="line.2774"></a>
+<span class="sourceLineNo">2734</span>      }<a name="line.2734"></a>
+<span class="sourceLineNo">2735</span>      if (master.cpHost != null) {<a name="line.2735"></a>
+<span class="sourceLineNo">2736</span>        master.getMasterCoprocessorHost().postHasUserPermissions(userName, permissions);<a name="line.2736"></a>
+<span class="sourceLineNo">2737</span>      }<a name="line.2737"></a>
+<span class="sourceLineNo">2738</span>      HasUserPermissionsResponse.Builder builder =<a name="line.2738"></a>
+<span class="sourceLineNo">2739</span>          HasUserPermissionsResponse.newBuilder().addAllHasUserPermission(hasUserPermissions);<a name="line.2739"></a>
+<span class="sourceLineNo">2740</span>      return builder.build();<a name="line.2740"></a>
+<span class="sourceLineNo">2741</span>    } catch (IOException ioe) {<a name="line.2741"></a>
+<span class="sourceLineNo">2742</span>      throw new ServiceException(ioe);<a name="line.2742"></a>
+<span class="sourceLineNo">2743</span>    }<a name="line.2743"></a>
+<span class="sourceLineNo">2744</span>  }<a name="line.2744"></a>
+<span class="sourceLineNo">2745</span><a name="line.2745"></a>
+<span class="sourceLineNo">2746</span>  private boolean containMetaWals(ServerName serverName) throws IOException {<a name="line.2746"></a>
+<span class="sourceLineNo">2747</span>    Path logDir = new Path(master.getWALRootDir(),<a name="line.2747"></a>
+<span class="sourceLineNo">2748</span>        AbstractFSWALProvider.getWALDirectoryName(serverName.toString()));<a name="line.2748"></a>
+<span class="sourceLineNo">2749</span>    Path splitDir = logDir.suffix(AbstractFSWALProvider.SPLITTING_EXT);<a name="line.2749"></a>
+<span class="sourceLineNo">2750</span>    Path checkDir = master.getFileSystem().exists(splitDir) ? splitDir : logDir;<a name="line.2750"></a>
+<span class="sourceLineNo">2751</span>    return master.getFileSystem().listStatus(checkDir, META_FILTER).length &gt; 0;<a name="line.2751"></a>
+<span class="sourceLineNo">2752</span>  }<a name="line.2752"></a>
+<span class="sourceLineNo">2753</span><a name="line.2753"></a>
+<span class="sourceLineNo">2754</span>  private boolean shouldSubmitSCP(ServerName serverName) {<a name="line.2754"></a>
+<span class="sourceLineNo">2755</span>    // check if there is already a SCP of this server running<a name="line.2755"></a>
+<span class="sourceLineNo">2756</span>    List&lt;Procedure&lt;MasterProcedureEnv&gt;&gt; procedures =<a name="line.2756"></a>
+<span class="sourceLineNo">2757</span>        master.getMasterProcedureExecutor().getProcedures();<a name="line.2757"></a>
+<span class="sourceLineNo">2758</span>    for (Procedure&lt;MasterProcedureEnv&gt; procedure : procedures) {<a name="line.2758"></a>
+<span class="sourceLineNo">2759</span>      if (procedure instanceof ServerCrashProcedure) {<a name="line.2759"></a>
+<span class="sourceLineNo">2760</span>        if (serverName.compareTo(((ServerCrashProcedure) procedure).getServerName()) == 0<a name="line.2760"></a>
+<span class="sourceLineNo">2761</span>            &amp;&amp; !procedure.isFinished()) {<a name="line.2761"></a>
+<span class="sourceLineNo">2762</span>          LOG.info("there is already a SCP of this server {} running, pid {}", serverName,<a name="line.2762"></a>
+<span class="sourceLineNo">2763</span>            procedure.getProcId());<a name="line.2763"></a>
+<span class="sourceLineNo">2764</span>          return false;<a name="line.2764"></a>
+<span class="sourceLineNo">2765</span>        }<a name="line.2765"></a>
+<span class="sourceLineNo">2766</span>      }<a name="line.2766"></a>
+<span class="sourceLineNo">2767</span>    }<a name="line.2767"></a>
+<span class="sourceLineNo">2768</span>    return true;<a name="line.2768"></a>
+<span class="sourceLineNo">2769</span>  }<a name="line.2769"></a>
+<span class="sourceLineNo">2770</span>}<a name="line.2770"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
index ef6e748..4dea096 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
@@ -820,1966 +820,1962 @@
 <span class="sourceLineNo">812</span><a name="line.812"></a>
 <span class="sourceLineNo">813</span>    RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.813"></a>
 <span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>    if (request.getRegionCount() != 2) {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      throw new ServiceException(new DoNotRetryIOException(<a name="line.816"></a>
-<span class="sourceLineNo">817</span>        "Only support merging 2 regions but " + request.getRegionCount() + " region passed"));<a name="line.817"></a>
-<span class="sourceLineNo">818</span>    }<a name="line.818"></a>
-<span class="sourceLineNo">819</span>    RegionInfo[] regionsToMerge = new RegionInfo[request.getRegionCount()];<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    for (int i = 0; i &lt; request.getRegionCount(); i++) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>      final byte[] encodedNameOfRegion = request.getRegion(i).getValue().toByteArray();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      if (request.getRegion(i).getType() != RegionSpecifierType.ENCODED_REGION_NAME) {<a name="line.822"></a>
-<span class="sourceLineNo">823</span>        LOG.warn("MergeRegions specifier type: expected: "<a name="line.823"></a>
-<span class="sourceLineNo">824</span>          + RegionSpecifierType.ENCODED_REGION_NAME + " actual: region " + i + " ="<a name="line.824"></a>
-<span class="sourceLineNo">825</span>          + request.getRegion(i).getType());<a name="line.825"></a>
-<span class="sourceLineNo">826</span>      }<a name="line.826"></a>
-<span class="sourceLineNo">827</span>      RegionState regionState = regionStates.getRegionState(Bytes.toString(encodedNameOfRegion));<a name="line.827"></a>
-<span class="sourceLineNo">828</span>      if (regionState == null) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>        throw new ServiceException(<a name="line.829"></a>
-<span class="sourceLineNo">830</span>          new UnknownRegionException(Bytes.toStringBinary(encodedNameOfRegion)));<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      }<a name="line.831"></a>
-<span class="sourceLineNo">832</span>      regionsToMerge[i] = regionState.getRegion();<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>    try {<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      long procId = master.mergeRegions(<a name="line.836"></a>
-<span class="sourceLineNo">837</span>        regionsToMerge,<a name="line.837"></a>
-<span class="sourceLineNo">838</span>        request.getForcible(),<a name="line.838"></a>
-<span class="sourceLineNo">839</span>        request.getNonceGroup(),<a name="line.839"></a>
-<span class="sourceLineNo">840</span>        request.getNonce());<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      return MergeTableRegionsResponse.newBuilder().setProcId(procId).build();<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    } catch (IOException ioe) {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      throw new ServiceException(ioe);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>    }<a name="line.844"></a>
-<span class="sourceLineNo">845</span>  }<a name="line.845"></a>
-<span class="sourceLineNo">846</span><a name="line.846"></a>
-<span class="sourceLineNo">847</span>  @Override<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  public SplitTableRegionResponse splitRegion(final RpcController controller,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final SplitTableRegionRequest request) throws ServiceException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    try {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      long procId = master.splitRegion(<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        ProtobufUtil.toRegionInfo(request.getRegionInfo()),<a name="line.852"></a>
-<span class="sourceLineNo">853</span>        request.hasSplitRow() ? request.getSplitRow().toByteArray() : null,<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        request.getNonceGroup(),<a name="line.854"></a>
-<span class="sourceLineNo">855</span>        request.getNonce());<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      return SplitTableRegionResponse.newBuilder().setProcId(procId).build();<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    } catch (IOException ie) {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      throw new ServiceException(ie);<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>  @Override<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    rpcPreCheck("execMasterService");<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    try {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      ServerRpcController execController = new ServerRpcController();<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      ClientProtos.CoprocessorServiceCall call = request.getCall();<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      String serviceName = call.getServiceName();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      String methodName = call.getMethodName();<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        throw new UnknownProtocolException(null,<a name="line.872"></a>
-<span class="sourceLineNo">873</span>          "No registered Master Coprocessor Endpoint found for " + serviceName +<a name="line.873"></a>
-<span class="sourceLineNo">874</span>          ". Has it been enabled?");<a name="line.874"></a>
-<span class="sourceLineNo">875</span>      }<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>      com.google.protobuf.Service service = master.coprocessorServiceHandlers.get(serviceName);<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.878"></a>
-<span class="sourceLineNo">879</span>      com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.879"></a>
-<span class="sourceLineNo">880</span>          CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.880"></a>
-<span class="sourceLineNo">881</span><a name="line.881"></a>
-<span class="sourceLineNo">882</span>      com.google.protobuf.Message execRequest =<a name="line.882"></a>
-<span class="sourceLineNo">883</span>          CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      final com.google.protobuf.Message.Builder responseBuilder =<a name="line.884"></a>
-<span class="sourceLineNo">885</span>          service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      service.callMethod(methodDesc, execController, execRequest,<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        (message) -&gt; {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>          if (message != null) {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>            responseBuilder.mergeFrom(message);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>          }<a name="line.890"></a>
-<span class="sourceLineNo">891</span>        });<a name="line.891"></a>
-<span class="sourceLineNo">892</span>      com.google.protobuf.Message execResult = responseBuilder.build();<a name="line.892"></a>
-<span class="sourceLineNo">893</span>      if (execController.getFailedOn() != null) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>        throw execController.getFailedOn();<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      return CoprocessorRpcUtils.getResponse(execResult, HConstants.EMPTY_BYTE_ARRAY);<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    } catch (IOException ie) {<a name="line.897"></a>
-<span class="sourceLineNo">898</span>      throw new ServiceException(ie);<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>  /**<a name="line.902"></a>
-<span class="sourceLineNo">903</span>   * Triggers an asynchronous attempt to run a distributed procedure.<a name="line.903"></a>
-<span class="sourceLineNo">904</span>   * {@inheritDoc}<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   */<a name="line.905"></a>
-<span class="sourceLineNo">906</span>  @Override<a name="line.906"></a>
-<span class="sourceLineNo">907</span>  public ExecProcedureResponse execProcedure(RpcController controller,<a name="line.907"></a>
-<span class="sourceLineNo">908</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>    try {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      master.checkInitialized();<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      ProcedureDescription desc = request.getProcedure();<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(<a name="line.912"></a>
-<span class="sourceLineNo">913</span>        desc.getSignature());<a name="line.913"></a>
-<span class="sourceLineNo">914</span>      if (mpm == null) {<a name="line.914"></a>
-<span class="sourceLineNo">915</span>        throw new ServiceException(new DoNotRetryIOException("The procedure is not registered: "<a name="line.915"></a>
-<span class="sourceLineNo">916</span>          + desc.getSignature()));<a name="line.916"></a>
-<span class="sourceLineNo">917</span>      }<a name="line.917"></a>
-<span class="sourceLineNo">918</span>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: " + desc.getSignature());<a name="line.918"></a>
-<span class="sourceLineNo">919</span>      mpm.checkPermissions(desc, getAccessChecker(), RpcServer.getRequestUser().orElse(null));<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      mpm.execProcedure(desc);<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      // send back the max amount of time the client should wait for the procedure<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      // to complete<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      long waitTime = SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME;<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      return ExecProcedureResponse.newBuilder().setExpectedTimeout(<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        waitTime).build();<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    } catch (ForeignException e) {<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      throw new ServiceException(e.getCause());<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    } catch (IOException e) {<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      throw new ServiceException(e);<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><a name="line.932"></a>
-<span class="sourceLineNo">933</span>  /**<a name="line.933"></a>
-<span class="sourceLineNo">934</span>   * Triggers a synchronous attempt to run a distributed procedure and sets<a name="line.934"></a>
-<span class="sourceLineNo">935</span>   * return data in response.<a name="line.935"></a>
-<span class="sourceLineNo">936</span>   * {@inheritDoc}<a name="line.936"></a>
-<span class="sourceLineNo">937</span>   */<a name="line.937"></a>
-<span class="sourceLineNo">938</span>  @Override<a name="line.938"></a>
-<span class="sourceLineNo">939</span>  public ExecProcedureResponse execProcedureWithRet(RpcController controller,<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>    rpcPreCheck("execProcedureWithRet");<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    try {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      ProcedureDescription desc = request.getProcedure();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>      MasterProcedureManager mpm =<a name="line.944"></a>
-<span class="sourceLineNo">945</span>        master.getMasterProcedureManagerHost().getProcedureManager(desc.getSignature());<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      if (mpm == null) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>        throw new ServiceException("The procedure is not registered: " + desc.getSignature());<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      }<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: " + desc.getSignature());<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      byte[] data = mpm.execProcedureWithRet(desc);<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      ExecProcedureResponse.Builder builder = ExecProcedureResponse.newBuilder();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      // set return data if available<a name="line.952"></a>
-<span class="sourceLineNo">953</span>      if (data != null) {<a name="line.953"></a>
-<span class="sourceLineNo">954</span>        builder.setReturnData(UnsafeByteOperations.unsafeWrap(data));<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      }<a name="line.955"></a>
-<span class="sourceLineNo">956</span>      return builder.build();<a name="line.956"></a>
-<span class="sourceLineNo">957</span>    } catch (IOException e) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>      throw new ServiceException(e);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    }<a name="line.959"></a>
-<span class="sourceLineNo">960</span>  }<a name="line.960"></a>
-<span class="sourceLineNo">961</span><a name="line.961"></a>
-<span class="sourceLineNo">962</span>  @Override<a name="line.962"></a>
-<span class="sourceLineNo">963</span>  public GetClusterStatusResponse getClusterStatus(RpcController controller,<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      GetClusterStatusRequest req) throws ServiceException {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>    GetClusterStatusResponse.Builder response = GetClusterStatusResponse.newBuilder();<a name="line.965"></a>
-<span class="sourceLineNo">966</span>    try {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      master.checkInitialized();<a name="line.967"></a>
-<span class="sourceLineNo">968</span>      response.setClusterStatus(ClusterMetricsBuilder.toClusterStatus(<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        master.getClusterMetrics(ClusterMetricsBuilder.toOptions(req.getOptionsList()))));<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    } catch (IOException e) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>      throw new ServiceException(e);<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    }<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    return response.build();<a name="line.973"></a>
-<span class="sourceLineNo">974</span>  }<a name="line.974"></a>
-<span class="sourceLineNo">975</span><a name="line.975"></a>
-<span class="sourceLineNo">976</span>  /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * List the currently available/stored snapshots. Any in-progress snapshots are ignored<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   */<a name="line.978"></a>
-<span class="sourceLineNo">979</span>  @Override<a name="line.979"></a>
-<span class="sourceLineNo">980</span>  public GetCompletedSnapshotsResponse getCompletedSnapshots(RpcController controller,<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      GetCompletedSnapshotsRequest request) throws ServiceException {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    try {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      master.checkInitialized();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      GetCompletedSnapshotsResponse.Builder builder = GetCompletedSnapshotsResponse.newBuilder();<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      List&lt;SnapshotDescription&gt; snapshots = master.snapshotManager.getCompletedSnapshots();<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>      // convert to protobuf<a name="line.987"></a>
-<span class="sourceLineNo">988</span>      for (SnapshotDescription snapshot : snapshots) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>        builder.addSnapshots(snapshot);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>      }<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      return builder.build();<a name="line.991"></a>
-<span class="sourceLineNo">992</span>    } catch (IOException e) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>      throw new ServiceException(e);<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><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  @Override<a name="line.997"></a>
-<span class="sourceLineNo">998</span>  public ListNamespacesResponse listNamespaces(<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      RpcController controller, ListNamespacesRequest request)<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      throws ServiceException {<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    try {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>      return ListNamespacesResponse.newBuilder()<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>        .addAllNamespaceName(master.listNamespaces())<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        .build();<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      throw new ServiceException(e);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    }<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  @Override<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>  public GetNamespaceDescriptorResponse getNamespaceDescriptor(<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      RpcController controller, GetNamespaceDescriptorRequest request)<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>      throws ServiceException {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    try {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      return GetNamespaceDescriptorResponse.newBuilder()<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        .setNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>            master.getNamespace(request.getNamespaceName())))<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        .build();<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    } catch (IOException e) {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      throw new ServiceException(e);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>  }<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>   * Get the number of regions of the table that have been updated by the alter.<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>   *<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>   * @return Pair indicating the number of regions updated Pair.getFirst is the<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>   *         regions that are yet to be updated Pair.getSecond is the total number<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   *         of regions of the table<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * @throws ServiceException<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   */<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>  @Override<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>  public GetSchemaAlterStatusResponse getSchemaAlterStatus(<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      RpcController controller, GetSchemaAlterStatusRequest req) throws ServiceException {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    // TODO: currently, we query using the table name on the client side. this<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    // may overlap with other table operations or the table operation may<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>    // have completed before querying this API. We need to refactor to a<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>    // transaction system in the future to avoid these ambiguities.<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    TableName tableName = ProtobufUtil.toTableName(req.getTableName());<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span><a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    try {<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      master.checkInitialized();<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      Pair&lt;Integer,Integer&gt; pair = master.getAssignmentManager().getReopenStatus(tableName);<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      GetSchemaAlterStatusResponse.Builder ret = GetSchemaAlterStatusResponse.newBuilder();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>      ret.setYetToUpdateRegions(pair.getFirst());<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      ret.setTotalRegions(pair.getSecond());<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      return ret.build();<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    } catch (IOException ioe) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      throw new ServiceException(ioe);<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>  }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span><a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>  /**<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>   * Get list of TableDescriptors for requested tables.<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>   * @param c Unused (set to null).<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>   * @param req GetTableDescriptorsRequest that contains:<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>   * - tableNames: requested tables, or if empty, all are requested<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>   * @return GetTableDescriptorsResponse<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>   * @throws ServiceException<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>   */<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>  @Override<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public GetTableDescriptorsResponse getTableDescriptors(RpcController c,<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>      GetTableDescriptorsRequest req) throws ServiceException {<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>    try {<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      master.checkInitialized();<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span><a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>      List&lt;TableName&gt; tableNameList = null;<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      if (req.getTableNamesCount() &gt; 0) {<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        tableNameList = new ArrayList&lt;TableName&gt;(req.getTableNamesCount());<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>        for (HBaseProtos.TableName tableNamePB: req.getTableNamesList()) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>          tableNameList.add(ProtobufUtil.toTableName(tableNamePB));<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>        }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      }<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span><a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      List&lt;TableDescriptor&gt; descriptors = master.listTableDescriptors(namespace, regex,<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>          tableNameList, req.getIncludeSysTables());<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span><a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      GetTableDescriptorsResponse.Builder builder = GetTableDescriptorsResponse.newBuilder();<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>      if (descriptors != null &amp;&amp; descriptors.size() &gt; 0) {<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>        // Add the table descriptors to the response<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        for (TableDescriptor htd: descriptors) {<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>          builder.addTableSchema(ProtobufUtil.toTableSchema(htd));<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        }<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      }<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      return builder.build();<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    } catch (IOException ioe) {<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      throw new ServiceException(ioe);<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>    }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span><a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>  /**<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>   * Get list of userspace table names<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>   * @param controller Unused (set to null).<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>   * @param req GetTableNamesRequest<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>   * @return GetTableNamesResponse<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>   * @throws ServiceException<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>   */<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  @Override<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  public GetTableNamesResponse getTableNames(RpcController controller,<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>      GetTableNamesRequest req) throws ServiceException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    try {<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>      master.checkServiceStarted();<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span><a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>      List&lt;TableName&gt; tableNames = master.listTableNames(namespace, regex,<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>          req.getIncludeSysTables());<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>      GetTableNamesResponse.Builder builder = GetTableNamesResponse.newBuilder();<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>      if (tableNames != null &amp;&amp; tableNames.size() &gt; 0) {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>        // Add the table names to the response<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>        for (TableName table: tableNames) {<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>          builder.addTableNames(ProtobufUtil.toProtoTableName(table));<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>        }<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      }<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>      return builder.build();<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    } catch (IOException e) {<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>      throw new ServiceException(e);<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>  }<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span><a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  @Override<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>  public GetTableStateResponse getTableState(RpcController controller,<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>      GetTableStateRequest request) throws ServiceException {<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>    try {<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>      master.checkServiceStarted();<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>      TableState ts = master.getTableStateManager().getTableState(tableName);<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>      GetTableStateResponse.Builder builder = GetTableStateResponse.newBuilder();<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>      builder.setTableState(ts.convert());<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>      return builder.build();<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    } catch (IOException e) {<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>      throw new ServiceException(e);<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    }<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  @Override<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>  public IsCatalogJanitorEnabledResponse isCatalogJanitorEnabled(RpcController c,<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      IsCatalogJanitorEnabledRequest req) throws ServiceException {<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>    return IsCatalogJanitorEnabledResponse.newBuilder().setValue(<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      master.isCatalogJanitorEnabled()).build();<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>  }<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span><a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>  @Override<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>  public IsCleanerChoreEnabledResponse isCleanerChoreEnabled(RpcController c,<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>                                                             IsCleanerChoreEnabledRequest req)<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>    throws ServiceException {<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>    return IsCleanerChoreEnabledResponse.newBuilder().setValue(master.isCleanerChoreEnabled())<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>                                        .build();<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>  }<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span><a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>  @Override<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  public IsMasterRunningResponse isMasterRunning(RpcController c,<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>      IsMasterRunningRequest req) throws ServiceException {<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>    try {<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      master.checkServiceStarted();<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>      return IsMasterRunningResponse.newBuilder().setIsMasterRunning(<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>        !master.isStopped()).build();<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    } catch (IOException e) {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      throw new ServiceException(e);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  }<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span><a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>  /**<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * Checks if the specified procedure is done.<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @return true if the procedure is done, false if the procedure is in the process of completing<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @throws ServiceException if invalid procedure or failed procedure with progress failure reason.<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   */<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  @Override<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>  public IsProcedureDoneResponse isProcedureDone(RpcController controller,<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>      IsProcedureDoneRequest request) throws ServiceException {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    try {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      master.checkInitialized();<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      ProcedureDescription desc = request.getProcedure();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>      MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>        desc.getSignature());<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      if (mpm == null) {<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>        throw new ServiceException("The procedure is not registered: "<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>          + desc.getSignature());<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>      }<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      LOG.debug("Checking to see if procedure from request:"<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        + desc.getSignature() + " is done");<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span><a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>      IsProcedureDoneResponse.Builder builder =<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>        IsProcedureDoneResponse.newBuilder();<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>      boolean done = mpm.isProcedureDone(desc);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>      builder.setDone(done);<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>      return builder.build();<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>    } catch (ForeignException e) {<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      throw new ServiceException(e.getCause());<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>    } catch (IOException e) {<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>      throw new ServiceException(e);<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>    }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>  }<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span><a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>  /**<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>   * Checks if the specified snapshot is done.<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>   * @return true if the snapshot is in file system ready to use,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>   *   false if the snapshot is in the process of completing<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>   * @throws ServiceException wrapping UnknownSnapshotException if invalid snapshot, or<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>   *  a wrapped HBaseSnapshotException with progress failure reason.<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   */<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>  @Override<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>  public IsSnapshotDoneResponse isSnapshotDone(RpcController controller,<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      IsSnapshotDoneRequest request) throws ServiceException {<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    LOG.debug("Checking to see if snapshot from request:" +<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      ClientSnapshotDescriptionUtils.toString(request.getSnapshot()) + " is done");<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>    try {<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      master.checkInitialized();<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      IsSnapshotDoneResponse.Builder builder = IsSnapshotDoneResponse.newBuilder();<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      boolean done = master.snapshotManager.isSnapshotDone(request.getSnapshot());<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>      builder.setDone(done);<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      return builder.build();<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>    } catch (ForeignException e) {<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      throw new ServiceException(e.getCause());<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    } catch (IOException e) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      throw new ServiceException(e);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>  @Override<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  public GetProcedureResultResponse getProcedureResult(RpcController controller,<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      GetProcedureResultRequest request) throws ServiceException {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>    LOG.debug("Checking to see if procedure is done pid=" + request.getProcId());<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    try {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>      master.checkInitialized();<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>      GetProcedureResultResponse.Builder builder = GetProcedureResultResponse.newBuilder();<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>      long procId = request.getProcId();<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      ProcedureExecutor&lt;?&gt; executor = master.getMasterProcedureExecutor();<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      Procedure&lt;?&gt; result = executor.getResultOrProcedure(procId);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      if (result != null) {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>        builder.setSubmittedTime(result.getSubmittedTime());<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        builder.setLastUpdate(result.getLastUpdate());<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>        if (executor.isFinished(procId)) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>          builder.setState(GetProcedureResultResponse.State.FINISHED);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>          if (result.isFailed()) {<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>            IOException exception =<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>                MasterProcedureUtil.unwrapRemoteIOException(result);<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>            builder.setException(ForeignExceptionUtil.toProtoForeignException(exception));<a name="line.1241"></a>
+<span class="sourceLineNo">815</span>    RegionInfo[] regionsToMerge = new RegionInfo[request.getRegionCount()];<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    for (int i = 0; i &lt; request.getRegionCount(); i++) {<a name="line.816"></a>
+<span class="sourceLineNo">817</span>      final byte[] encodedNameOfRegion = request.getRegion(i).getValue().toByteArray();<a name="line.817"></a>
+<span class="sourceLineNo">818</span>      if (request.getRegion(i).getType() != RegionSpecifierType.ENCODED_REGION_NAME) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        LOG.warn("MergeRegions specifier type: expected: "<a name="line.819"></a>
+<span class="sourceLineNo">820</span>          + RegionSpecifierType.ENCODED_REGION_NAME + " actual: region " + i + " ="<a name="line.820"></a>
+<span class="sourceLineNo">821</span>          + request.getRegion(i).getType());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>      }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>      RegionState regionState = regionStates.getRegionState(Bytes.toString(encodedNameOfRegion));<a name="line.823"></a>
+<span class="sourceLineNo">824</span>      if (regionState == null) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>        throw new ServiceException(<a name="line.825"></a>
+<span class="sourceLineNo">826</span>          new UnknownRegionException(Bytes.toStringBinary(encodedNameOfRegion)));<a name="line.826"></a>
+<span class="sourceLineNo">827</span>      }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>      regionsToMerge[i] = regionState.getRegion();<a name="line.828"></a>
+<span class="sourceLineNo">829</span>    }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>    try {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      long procId = master.mergeRegions(<a name="line.832"></a>
+<span class="sourceLineNo">833</span>        regionsToMerge,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>        request.getForcible(),<a name="line.834"></a>
+<span class="sourceLineNo">835</span>        request.getNonceGroup(),<a name="line.835"></a>
+<span class="sourceLineNo">836</span>        request.getNonce());<a name="line.836"></a>
+<span class="sourceLineNo">837</span>      return MergeTableRegionsResponse.newBuilder().setProcId(procId).build();<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    } catch (IOException ioe) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>      throw new ServiceException(ioe);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>  public SplitTableRegionResponse splitRegion(final RpcController controller,<a name="line.844"></a>
+<span class="sourceLineNo">845</span>      final SplitTableRegionRequest request) throws ServiceException {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    try {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      long procId = master.splitRegion(<a name="line.847"></a>
+<span class="sourceLineNo">848</span>        ProtobufUtil.toRegionInfo(request.getRegionInfo()),<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        request.hasSplitRow() ? request.getSplitRow().toByteArray() : null,<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        request.getNonceGroup(),<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        request.getNonce());<a name="line.851"></a>
+<span class="sourceLineNo">852</span>      return SplitTableRegionResponse.newBuilder().setProcId(procId).build();<a name="line.852"></a>
+<span class="sourceLineNo">853</span>    } catch (IOException ie) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      throw new ServiceException(ie);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  @Override<a name="line.858"></a>
+<span class="sourceLineNo">859</span>  public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    rpcPreCheck("execMasterService");<a name="line.861"></a>
+<span class="sourceLineNo">862</span>    try {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>      ServerRpcController execController = new ServerRpcController();<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      ClientProtos.CoprocessorServiceCall call = request.getCall();<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      String serviceName = call.getServiceName();<a name="line.865"></a>
+<span class="sourceLineNo">866</span>      String methodName = call.getMethodName();<a name="line.866"></a>
+<span class="sourceLineNo">867</span>      if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        throw new UnknownProtocolException(null,<a name="line.868"></a>
+<span class="sourceLineNo">869</span>          "No registered Master Coprocessor Endpoint found for " + serviceName +<a name="line.869"></a>
+<span class="sourceLineNo">870</span>          ". Has it been enabled?");<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>      com.google.protobuf.Service service = master.coprocessorServiceHandlers.get(serviceName);<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();<a name="line.874"></a>
+<span class="sourceLineNo">875</span>      com.google.protobuf.Descriptors.MethodDescriptor methodDesc =<a name="line.875"></a>
+<span class="sourceLineNo">876</span>          CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>      com.google.protobuf.Message execRequest =<a name="line.878"></a>
+<span class="sourceLineNo">879</span>          CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());<a name="line.879"></a>
+<span class="sourceLineNo">880</span>      final com.google.protobuf.Message.Builder responseBuilder =<a name="line.880"></a>
+<span class="sourceLineNo">881</span>          service.getResponsePrototype(methodDesc).newBuilderForType();<a name="line.881"></a>
+<span class="sourceLineNo">882</span>      service.callMethod(methodDesc, execController, execRequest,<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        (message) -&gt; {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>          if (message != null) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>            responseBuilder.mergeFrom(message);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>          }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>        });<a name="line.887"></a>
+<span class="sourceLineNo">888</span>      com.google.protobuf.Message execResult = responseBuilder.build();<a name="line.888"></a>
+<span class="sourceLineNo">889</span>      if (execController.getFailedOn() != null) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        throw execController.getFailedOn();<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      }<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      return CoprocessorRpcUtils.getResponse(execResult, HConstants.EMPTY_BYTE_ARRAY);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    } catch (IOException ie) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>      throw new ServiceException(ie);<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>  }<a name="line.896"></a>
+<span class="sourceLineNo">897</span><a name="line.897"></a>
+<span class="sourceLineNo">898</span>  /**<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Triggers an asynchronous attempt to run a distributed procedure.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * {@inheritDoc}<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   */<a name="line.901"></a>
+<span class="sourceLineNo">902</span>  @Override<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public ExecProcedureResponse execProcedure(RpcController controller,<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    try {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>      master.checkInitialized();<a name="line.906"></a>
+<span class="sourceLineNo">907</span>      ProcedureDescription desc = request.getProcedure();<a name="line.907"></a>
+<span class="sourceLineNo">908</span>      MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        desc.getSignature());<a name="line.909"></a>
+<span class="sourceLineNo">910</span>      if (mpm == null) {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        throw new ServiceException(new DoNotRetryIOException("The procedure is not registered: "<a name="line.911"></a>
+<span class="sourceLineNo">912</span>          + desc.getSignature()));<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: " + desc.getSignature());<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      mpm.checkPermissions(desc, getAccessChecker(), RpcServer.getRequestUser().orElse(null));<a name="line.915"></a>
+<span class="sourceLineNo">916</span>      mpm.execProcedure(desc);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>      // send back the max amount of time the client should wait for the procedure<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      // to complete<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      long waitTime = SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME;<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return ExecProcedureResponse.newBuilder().setExpectedTimeout(<a name="line.920"></a>
+<span class="sourceLineNo">921</span>        waitTime).build();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>    } catch (ForeignException e) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>      throw new ServiceException(e.getCause());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>    } catch (IOException e) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      throw new ServiceException(e);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>  }<a name="line.927"></a>
+<span class="sourceLineNo">928</span><a name="line.928"></a>
+<span class="sourceLineNo">929</span>  /**<a name="line.929"></a>
+<span class="sourceLineNo">930</span>   * Triggers a synchronous attempt to run a distributed procedure and sets<a name="line.930"></a>
+<span class="sourceLineNo">931</span>   * return data in response.<a name="line.931"></a>
+<span class="sourceLineNo">932</span>   * {@inheritDoc}<a name="line.932"></a>
+<span class="sourceLineNo">933</span>   */<a name="line.933"></a>
+<span class="sourceLineNo">934</span>  @Override<a name="line.934"></a>
+<span class="sourceLineNo">935</span>  public ExecProcedureResponse execProcedureWithRet(RpcController controller,<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      ExecProcedureRequest request) throws ServiceException {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    rpcPreCheck("execProcedureWithRet");<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    try {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>      ProcedureDescription desc = request.getProcedure();<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      MasterProcedureManager mpm =<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        master.getMasterProcedureManagerHost().getProcedureManager(desc.getSignature());<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      if (mpm == null) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        throw new ServiceException("The procedure is not registered: " + desc.getSignature());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      LOG.info(master.getClientIdAuditPrefix() + " procedure request for: " + desc.getSignature());<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      byte[] data = mpm.execProcedureWithRet(desc);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>      ExecProcedureResponse.Builder builder = ExecProcedureResponse.newBuilder();<a name="line.947"></a>
+<span class="sourceLineNo">948</span>      // set return data if available<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      if (data != null) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        builder.setReturnData(UnsafeByteOperations.unsafeWrap(data));<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      return builder.build();<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    } catch (IOException e) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      throw new ServiceException(e);<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>  @Override<a name="line.958"></a>
+<span class="sourceLineNo">959</span>  public GetClusterStatusResponse getClusterStatus(RpcController controller,<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      GetClusterStatusRequest req) throws ServiceException {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    GetClusterStatusResponse.Builder response = GetClusterStatusResponse.newBuilder();<a name="line.961"></a>
+<span class="sourceLineNo">962</span>    try {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>      master.checkInitialized();<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      response.setClusterStatus(ClusterMetricsBuilder.toClusterStatus(<a name="line.964"></a>
+<span class="sourceLineNo">965</span>        master.getClusterMetrics(ClusterMetricsBuilder.toOptions(req.getOptionsList()))));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    } catch (IOException e) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      throw new ServiceException(e);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    return response.build();<a name="line.969"></a>
+<span class="sourceLineNo">970</span>  }<a name="line.970"></a>
+<span class="sourceLineNo">971</span><a name="line.971"></a>
+<span class="sourceLineNo">972</span>  /**<a name="line.972"></a>
+<span class="sourceLineNo">973</span>   * List the currently available/stored snapshots. Any in-progress snapshots are ignored<a name="line.973"></a>
+<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
+<span class="sourceLineNo">975</span>  @Override<a name="line.975"></a>
+<span class="sourceLineNo">976</span>  public GetCompletedSnapshotsResponse getCompletedSnapshots(RpcController controller,<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      GetCompletedSnapshotsRequest request) throws ServiceException {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    try {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      master.checkInitialized();<a name="line.979"></a>
+<span class="sourceLineNo">980</span>      GetCompletedSnapshotsResponse.Builder builder = GetCompletedSnapshotsResponse.newBuilder();<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      List&lt;SnapshotDescription&gt; snapshots = master.snapshotManager.getCompletedSnapshots();<a name="line.981"></a>
+<span class="sourceLineNo">982</span><a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // convert to protobuf<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      for (SnapshotDescription snapshot : snapshots) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        builder.addSnapshots(snapshot);<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      return builder.build();<a name="line.987"></a>
+<span class="sourceLineNo">988</span>    } catch (IOException e) {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      throw new ServiceException(e);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span>  }<a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>  @Override<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  public ListNamespacesResponse listNamespaces(<a name="line.994"></a>
+<span class="sourceLineNo">995</span>      RpcController controller, ListNamespacesRequest request)<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      throws ServiceException {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    try {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>      return ListNamespacesResponse.newBuilder()<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        .addAllNamespaceName(master.listNamespaces())<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>        .build();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    } catch (IOException e) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>      throw new ServiceException(e);<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><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>  @Override<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>  public GetNamespaceDescriptorResponse getNamespaceDescriptor(<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>      RpcController controller, GetNamespaceDescriptorRequest request)<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      throws ServiceException {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>    try {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      return GetNamespaceDescriptorResponse.newBuilder()<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        .setNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            master.getNamespace(request.getNamespaceName())))<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        .build();<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>    } catch (IOException e) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      throw new ServiceException(e);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>  }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span><a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>  /**<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>   * Get the number of regions of the table that have been updated by the alter.<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>   *<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>   * @return Pair indicating the number of regions updated Pair.getFirst is the<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>   *         regions that are yet to be updated Pair.getSecond is the total number<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>   *         of regions of the table<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>   * @throws ServiceException<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>   */<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  @Override<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>  public GetSchemaAlterStatusResponse getSchemaAlterStatus(<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      RpcController controller, GetSchemaAlterStatusRequest req) throws ServiceException {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>    // TODO: currently, we query using the table name on the client side. this<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>    // may overlap with other table operations or the table operation may<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    // have completed before querying this API. We need to refactor to a<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    // transaction system in the future to avoid these ambiguities.<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    TableName tableName = ProtobufUtil.toTableName(req.getTableName());<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    try {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>      master.checkInitialized();<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>      Pair&lt;Integer,Integer&gt; pair = master.getAssignmentManager().getReopenStatus(tableName);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>      GetSchemaAlterStatusResponse.Builder ret = GetSchemaAlterStatusResponse.newBuilder();<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      ret.setYetToUpdateRegions(pair.getFirst());<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>      ret.setTotalRegions(pair.getSecond());<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>      return ret.build();<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    } catch (IOException ioe) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>      throw new ServiceException(ioe);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>    }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>  }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span><a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>  /**<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>   * Get list of TableDescriptors for requested tables.<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>   * @param c Unused (set to null).<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>   * @param req GetTableDescriptorsRequest that contains:<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>   * - tableNames: requested tables, or if empty, all are requested<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>   * @return GetTableDescriptorsResponse<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>   * @throws ServiceException<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>   */<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  @Override<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>  public GetTableDescriptorsResponse getTableDescriptors(RpcController c,<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      GetTableDescriptorsRequest req) throws ServiceException {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>    try {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>      master.checkInitialized();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span><a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      List&lt;TableName&gt; tableNameList = null;<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (req.getTableNamesCount() &gt; 0) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        tableNameList = new ArrayList&lt;TableName&gt;(req.getTableNamesCount());<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        for (HBaseProtos.TableName tableNamePB: req.getTableNamesList()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>          tableNameList.add(ProtobufUtil.toTableName(tableNamePB));<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>        }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      List&lt;TableDescriptor&gt; descriptors = master.listTableDescriptors(namespace, regex,<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>          tableNameList, req.getIncludeSysTables());<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      GetTableDescriptorsResponse.Builder builder = GetTableDescriptorsResponse.newBuilder();<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>      if (descriptors != null &amp;&amp; descriptors.size() &gt; 0) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>        // Add the table descriptors to the response<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>        for (TableDescriptor htd: descriptors) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>          builder.addTableSchema(ProtobufUtil.toTableSchema(htd));<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      }<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>      return builder.build();<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>    } catch (IOException ioe) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>      throw new ServiceException(ioe);<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>  }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   * Get list of userspace table names<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>   * @param controller Unused (set to null).<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * @param req GetTableNamesRequest<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @return GetTableNamesResponse<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   * @throws ServiceException<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>   */<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>  @Override<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  public GetTableNamesResponse getTableNames(RpcController controller,<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      GetTableNamesRequest req) throws ServiceException {<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    try {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>      master.checkServiceStarted();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      final String regex = req.hasRegex() ? req.getRegex() : null;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>      final String namespace = req.hasNamespace() ? req.getNamespace() : null;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>      List&lt;TableName&gt; tableNames = master.listTableNames(namespace, regex,<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>          req.getIncludeSysTables());<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>      GetTableNamesResponse.Builder builder = GetTableNamesResponse.newBuilder();<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      if (tableNames != null &amp;&amp; tableNames.size() &gt; 0) {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>        // Add the table names to the response<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>        for (TableName table: tableNames) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>          builder.addTableNames(ProtobufUtil.toProtoTableName(table));<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>      }<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>      return builder.build();<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>    } catch (IOException e) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      throw new ServiceException(e);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>    }<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>  }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>  @Override<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  public GetTableStateResponse getTableState(RpcController controller,<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>      GetTableStateRequest request) throws ServiceException {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>    try {<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>      master.checkServiceStarted();<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>      TableState ts = master.getTableStateManager().getTableState(tableName);<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      GetTableStateResponse.Builder builder = GetTableStateResponse.newBuilder();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      builder.setTableState(ts.convert());<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      return builder.build();<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>    } catch (IOException e) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>      throw new ServiceException(e);<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span><a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>  @Override<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>  public IsCatalogJanitorEnabledResponse isCatalogJanitorEnabled(RpcController c,<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>      IsCatalogJanitorEnabledRequest req) throws ServiceException {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return IsCatalogJanitorEnabledResponse.newBuilder().setValue(<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>      master.isCatalogJanitorEnabled()).build();<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>  }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span><a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>  @Override<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  public IsCleanerChoreEnabledResponse isCleanerChoreEnabled(RpcController c,<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                                             IsCleanerChoreEnabledRequest req)<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>    throws ServiceException {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    return IsCleanerChoreEnabledResponse.newBuilder().setValue(master.isCleanerChoreEnabled())<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        .build();<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>  }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span><a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>  @Override<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>  public IsMasterRunningResponse isMasterRunning(RpcController c,<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      IsMasterRunningRequest req) throws ServiceException {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    try {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>      master.checkServiceStarted();<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      return IsMasterRunningResponse.newBuilder().setIsMasterRunning(<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        !master.isStopped()).build();<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>    } catch (IOException e) {<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>      throw new ServiceException(e);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span><a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>  /**<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * Checks if the specified procedure is done.<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   * @return true if the procedure is done, false if the procedure is in the process of completing<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>   * @throws ServiceException if invalid procedure or failed procedure with progress failure reason.<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>   */<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>  @Override<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  public IsProcedureDoneResponse isProcedureDone(RpcController controller,<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>      IsProcedureDoneRequest request) throws ServiceException {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    try {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>      master.checkInitialized();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>      ProcedureDescription desc = request.getProcedure();<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>      MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>        desc.getSignature());<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>      if (mpm == null) {<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>        throw new ServiceException("The procedure is not registered: "<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>          + desc.getSignature());<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>      }<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>      LOG.debug("Checking to see if procedure from request:"<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>        + desc.getSignature() + " is done");<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>      IsProcedureDoneResponse.Builder builder =<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>        IsProcedureDoneResponse.newBuilder();<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      boolean done = mpm.isProcedureDone(desc);<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>      builder.setDone(done);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>      return builder.build();<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>    } catch (ForeignException e) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>      throw new ServiceException(e.getCause());<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>    } catch (IOException e) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>      throw new ServiceException(e);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>    }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>  }<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span><a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>  /**<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>   * Checks if the specified snapshot is done.<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>   * @return true if the snapshot is in file system ready to use,<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>   *   false if the snapshot is in the process of completing<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>   * @throws ServiceException wrapping UnknownSnapshotException if invalid snapshot, or<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>   *  a wrapped HBaseSnapshotException with progress failure reason.<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>   */<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>  @Override<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>  public IsSnapshotDoneResponse isSnapshotDone(RpcController controller,<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>      IsSnapshotDoneRequest request) throws ServiceException {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>    LOG.debug("Checking to see if snapshot from request:" +<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>      ClientSnapshotDescriptionUtils.toString(request.getSnapshot()) + " is done");<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    try {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>      master.checkInitialized();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      IsSnapshotDoneResponse.Builder builder = IsSnapshotDoneResponse.newBuilder();<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>      boolean done = master.snapshotManager.isSnapshotDone(request.getSnapshot());<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      builder.setDone(done);<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      return builder.build();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    } catch (ForeignException e) {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>      throw new ServiceException(e.getCause());<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    } catch (IOException e) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      throw new ServiceException(e);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>    }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>  }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  @Override<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>  public GetProcedureResultResponse getProcedureResult(RpcController controller,<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      GetProcedureResultRequest request) throws ServiceException {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>    LOG.debug("Checking to see if procedure is done pid=" + request.getProcId());<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>    try {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      master.checkInitialized();<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      GetProcedureResultResponse.Builder builder = GetProcedureResultResponse.newBuilder();<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      long procId = request.getProcId();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>      ProcedureExecutor&lt;?&gt; executor = master.getMasterProcedureExecutor();<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>      Procedure&lt;?&gt; result = executor.getResultOrProcedure(procId);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>      if (result != null) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>        builder.setSubmittedTime(result.getSubmittedTime());<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>        builder.setLastUpdate(result.getLastUpdate());<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>        if (executor.isFinished(procId)) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>          builder.setState(GetProcedureResultResponse.State.FINISHED);<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>          if (result.isFailed()) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>            IOException exception =<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                MasterProcedureUtil.unwrapRemoteIOException(result);<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>            builder.setException(ForeignExceptionUtil.toProtoForeignException(exception));<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>          }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>          byte[] resultData = result.getResult();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>          if (resultData != null) {<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>            builder.setResult(UnsafeByteOperations.unsafeWrap(resultData));<a name="line.1241"></a>
 <span class="sourceLineNo">1242</span>          }<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>          byte[] resultData = result.getResult();<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          if (resultData != null) {<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>            builder.setResult(UnsafeByteOperations.unsafeWrap(resultData));<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>          }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>          master.getMasterProcedureExecutor().removeResult(request.getProcId());<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        } else {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          builder.setState(GetProcedureResultResponse.State.RUNNING);<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>      } else {<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>        builder.setState(GetProcedureResultResponse.State.NOT_FOUND);<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>      }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>      return builder.build();<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>    } catch (IOException e) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>      throw new ServiceException(e);<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>    }<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span><a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  @Override<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>  public AbortProcedureResponse abortProcedure(<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      RpcController rpcController, AbortProcedureRequest request) throws ServiceException {<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>    try {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>      AbortProcedureResponse.Builder response = AbortProcedureResponse.newBuilder();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      boolean abortResult =<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>          master.abortProcedure(request.getProcId(), request.getMayInterruptIfRunning());<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>      response.setIsProcedureAborted(abortResult);<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>      return response.build();<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    } catch (IOException e) {<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>      throw new ServiceException(e);<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    }<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  }<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span><a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>  @Override<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  public ListNamespaceDescriptorsResponse listNamespaceDescriptors(RpcController c,<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>      ListNamespaceDescriptorsRequest request) throws ServiceException {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    try {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      ListNamespaceDescriptorsResponse.Builder response =<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        ListNamespaceDescriptorsResponse.newBuilder();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      for(NamespaceDescriptor ns: master.getNamespaces()) {<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        response.addNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(ns));<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      }<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>      return response.build();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    } catch (IOException e) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>      throw new ServiceException(e);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>    }<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  }<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span><a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>  @Override<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  public GetProceduresResponse getProcedures(<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      RpcController rpcController,<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>      GetProceduresRequest request) throws ServiceException {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    try {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>      final GetProceduresResponse.Builder response = GetProceduresResponse.newBuilder();<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>      for (Procedure&lt;?&gt; p: master.getProcedures()) {<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>        response.addProcedure(ProcedureUtil.convertToProtoProcedure(p));<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>      }<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      return response.build();<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    } catch (IOException e) {<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>      throw new ServiceException(e);<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>    }<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  }<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span><a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>  @Override<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  public GetLocksResponse getLocks(<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>      RpcController controller,<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      GetLocksRequest request) throws ServiceException {<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>    try {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      final GetLocksResponse.Builder builder = GetLocksResponse.newBuilder();<a name="line.1309"></a>
+<span class="sourceLineNo">1243</span>          master.getMasterProcedureExecutor().removeResult(request.getProcId());<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>        } else {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>          builder.setState(GetProcedureResultResponse.State.RUNNING);<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>      } else {<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>        builder.setState(GetProcedureResultResponse.State.NOT_FOUND);<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>      return builder.build();<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>    } catch (IOException e) {<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>      throw new ServiceException(e);<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>    }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  }<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  @Override<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>  public AbortProcedureResponse abortProcedure(<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>      RpcController rpcController, AbortProcedureRequest request) throws ServiceException {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    try {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>      AbortProcedureResponse.Builder response = AbortProcedureResponse.newBuilder();<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      boolean abortResult =<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>          master.abortProcedure(request.getProcId(), request.getMayInterruptIfRunning());<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>      response.setIsProcedureAborted(abortResult);<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>      return response.build();<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    } catch (IOException e) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>      throw new ServiceException(e);<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  }<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>  @Override<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  public ListNamespaceDescriptorsResponse listNamespaceDescriptors(RpcController c,<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>      ListNamespaceDescriptorsRequest request) throws ServiceException {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>    try {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>      ListNamespaceDescriptorsResponse.Builder response =<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>        ListNamespaceDescriptorsResponse.newBuilder();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>      for(NamespaceDescriptor ns: master.getNamespaces()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>        response.addNamespaceDescriptor(ProtobufUtil.toProtoNamespaceDescriptor(ns));<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>      }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>      return response.build();<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    } catch (IOException e) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>      throw new ServiceException(e);<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>    }<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  }<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>  @Override<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  public GetProceduresResponse getProcedures(<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>      RpcController rpcController,<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>      GetProceduresRequest request) throws ServiceException {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>    try {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>      final GetProceduresResponse.Builder response = GetProceduresResponse.newBuilder();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>      for (Procedure&lt;?&gt; p: master.getProcedures()) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>        response.addProcedure(ProcedureUtil.convertToProtoProcedure(p));<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>      }<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>      return response.build();<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    } catch (IOException e) {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>      throw new ServiceException(e);<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>    }<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  }<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span><a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>  @Override<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  public GetLocksResponse getLocks(<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>      RpcController controller,<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>      GetLocksRequest request) throws ServiceException {<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>    try {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>      final GetLocksResponse.Builder builder = GetLocksResponse.newBuilder();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span><a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>      for (LockedResource lockedResource: master.getLocks()) {<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>        builder.addLock(ProcedureUtil.convertToProtoLockedResource(lockedResource));<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>      }<a name="line.1309"></a>
 <span class="sourceLineNo">1310</span><a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      for (LockedResource lockedResource: master.getLocks()) {<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>        builder.addLock(ProcedureUtil.convertToProtoLockedResource(lockedResource));<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>      }<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span><a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      return builder.build();<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>    } catch (IOException e) {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>      throw new ServiceException(e);<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    }<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>  }<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span><a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>  @Override<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  public ListTableDescriptorsByNamespaceResponse listTableDescriptorsByNamespace(RpcController c,<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      ListTableDescriptorsByNamespaceRequest request) throws ServiceException {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>    try {<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      ListTableDescriptorsByNamespaceResponse.Builder b =<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          ListTableDescriptorsByNamespaceResponse.newBuilder();<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>      for (TableDescriptor htd : master<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>          .listTableDescriptorsByNamespace(request.getNamespaceName())) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        b.addTableSchema(ProtobufUtil.toTableSchema(htd));<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      }<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>      return b.build();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>    } catch (IOException e) {<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>      throw new ServiceException(e);<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>    }<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  }<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span><a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  @Override<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>  public ListTableNamesByNamespaceResponse listTableNamesByNamespace(RpcController c,<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>      ListTableNamesByNamespaceRequest request) throws ServiceException {<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>    try {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>      ListTableNamesByNamespaceResponse.Builder b =<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        ListTableNamesByNamespaceResponse.newBuilder();<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      for (TableName tableName: master.listTableNamesByNamespace(request.getNamespaceName())) {<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        b.addTableName(ProtobufUtil.toProtoTableName(tableName));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>      return b.build();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>    } catch (IOException e) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>      throw new ServiceException(e);<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>    }<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  }<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span><a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  @Override<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>  public ModifyColumnResponse modifyColumn(RpcController controller,<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      ModifyColumnRequest req) throws ServiceException {<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>    try {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      long procId = master.modifyColumn(<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>        ProtobufUtil.toColumnFamilyDescriptor(req.getColumnFamilies()),<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>        req.getNonceGroup(),<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>        req.getNonce());<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>      if (procId == -1) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>        // This mean operation was not performed in server, so do not set any procId<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>        return ModifyColumnResponse.newBuilder().build();<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      } else {<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>        return ModifyColumnResponse.newBuilder().setProcId(procId).build();<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>      }<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    } catch (IOException ioe) {<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>      throw new ServiceException(ioe);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>    }<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  }<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span><a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>  @Override<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>  public ModifyNamespaceResponse modifyNamespace(RpcController controller,<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>      ModifyNamespaceRequest request) throws ServiceException {<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>    try {<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>      long procId = master.modifyNamespace(<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>        ProtobufUtil.toNamespaceDescriptor(request.getNamespaceDescriptor()),<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>        request.getNonceGroup(),<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>        request.getNonce());<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      return ModifyNamespaceResponse.newBuilder().setProcId(procId).build();<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>    } catch (IOException e) {<a name="line.1381"></a>
... 17391 lines suppressed ...