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 8532f00  Published site at 7466e08aec99b24d7317b9d760ae1f6933557d00.
8532f00 is described below

commit 8532f0023402403162ca87ba0a5545c55eb606f0
Author: jenkins <[email protected]>
AuthorDate: Wed Jun 16 20:19:53 2021 +0000

    Published site at 7466e08aec99b24d7317b9d760ae1f6933557d00.
---
 acid-semantics.html                                |   2 +-
 apache_hbase_reference_guide.pdf                   |   4 +-
 book.html                                          |   2 +-
 bulk-loads.html                                    |   2 +-
 checkstyle-aggregate.html                          |  10 +-
 coc.html                                           |   2 +-
 dependencies.html                                  |   2 +-
 dependency-convergence.html                        |   2 +-
 dependency-info.html                               |   2 +-
 dependency-management.html                         |   2 +-
 devapidocs/index-all.html                          |   2 +-
 .../hadoop/hbase/client/AsyncConnectionImpl.html   |  90 +--
 .../hadoop/hbase/client/AsyncConnectionImpl.html   | 689 +++++++++++----------
 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 +-
 33 files changed, 426 insertions(+), 425 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index b8bbaf4..6c685e0 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -467,7 +467,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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 3cd62c7..3274550 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.3, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20210615200605+00'00')
-/CreationDate (D:20210615201739+00'00')
+/ModDate (D:20210616200540+00'00')
+/CreationDate (D:20210616201756+00'00')
 >>
 endobj
 2 0 obj
diff --git a/book.html b/book.html
index 85284e2..0527179 100644
--- a/book.html
+++ b/book.html
@@ -46192,7 +46192,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 2021-06-15 20:06:05 UTC
+Last updated 2021-06-16 20:05:40 UTC
 </div>
 </div>
 <link rel="stylesheet" href="./coderay-asciidoctor.css">
diff --git a/bulk-loads.html b/bulk-loads.html
index 5bde186..daec9e8 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -172,7 +172,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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 22460c3..902a4b8 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7393,12 +7393,12 @@
 <td><a class="externalLink" 
href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation";>JavadocTagContinuationIndentation</a>
 <ul>
 <li>offset: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>526</td>
+<td>524</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
 <td><a class="externalLink" 
href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription";>NonEmptyAtclauseDescription</a></td>
-<td>2226</td>
+<td>2228</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>misc</td>
@@ -34899,7 +34899,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 14 has parse error. Details: mismatched input 
':' expecting &lt;EOF&gt; while parsing JAVADOC</td>
 <td>46</td></tr></table></div>
 <div class="section">
@@ -49983,7 +49983,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 54 has parse error. Details: no viable 
alternative at input '(' while parsing JAVADOC_INLINE_TAG</td>
 <td>59</td></tr>
 <tr class="a">
@@ -73511,7 +73511,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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 a5f3222..a1e2db8 100644
--- a/coc.html
+++ b/coc.html
@@ -241,7 +241,7 @@ email to <a class="externalLink" 
href="mailto:[email protected]";>the priv
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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 7507ad3..e4fb82a 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -313,7 +313,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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 d67044c..161a5c5 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -875,7 +875,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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 4c67cc8..94c972c 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -194,7 +194,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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 dce4786..7c2a2f5 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -1201,7 +1201,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/index-all.html b/devapidocs/index-all.html
index 9fc82c1..a7fe431 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -2873,7 +2873,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/http/HttpServer.Builder.html#adminsAcl">adminsAcl</a></span>
 - Variable in class org.apache.hadoop.hbase.http.<a 
href="org/apache/hadoop/hbase/http/HttpServer.Builder.html" title="class in 
org.apache.hadoop.hbase.http">HttpServer.Builder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#adminSubs">adminSubs</a></span>
 - Variable in class org.apache.hadoop.hbase.client.<a 
href="org/apache/hadoop/hbase/client/AsyncConnectionImpl.html" title="class in 
org.apache.hadoop.hbase.client">AsyncConnectionImpl</a></dt>
+<dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#adminStubs">adminStubs</a></span>
 - Variable in class org.apache.hadoop.hbase.client.<a 
href="org/apache/hadoop/hbase/client/AsyncConnectionImpl.html" title="class in 
org.apache.hadoop.hbase.client">AsyncConnectionImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#adoptAbandonedQueues--">adoptAbandonedQueues()</a></span>
 - Method in class org.apache.hadoop.hbase.replication.regionserver.<a 
href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html"
 title="class in 
org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceManager</a></dt>
 <dd>&nbsp;</dd>
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html 
b/devapidocs/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html
index c786f84..46411b6 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html
@@ -142,7 +142,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true";
 title="class or interface in java.util.concurrent">ConcurrentMap</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>,org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#adminSubs">adminSubs</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#adminStubs">adminStubs</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a 
href="../../../../../org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html"
 title="interface in 
org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicy</a></code></td>
@@ -568,13 +568,13 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true";
 title="class or interface in java.util.concurrent">ConcurrentMap</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>,org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface&gt;
 <a href="../../../../../src-html/org/apache/hadoop/hba [...]
 </li>
 </ul>
-<a name="adminSubs">
+<a name="adminStubs">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>adminSubs</h4>
-<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true";
 title="class or interface in java.util.concurrent">ConcurrentMap</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>,org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface&gt;
 <a href="../../../../../src-html/org/apache/hadoop/hbase [...]
+<h4>adminStubs</h4>
+<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true";
 title="class or interface in java.util.concurrent">ConcurrentMap</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>,org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface&gt;
 <a href="../../../../../src-html/org/apache/hadoop/hbase [...]
 </li>
 </ul>
 <a name="masterStub">
@@ -583,7 +583,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>masterStub</h4>
-<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true";
 title="class or interface in 
java.util.concurrent.atomic">AtomicReference</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface&gt;
 <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.108">masterStub</a></pre>
+<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true";
 title="class or interface in 
java.util.concurrent.atomic">AtomicReference</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface&gt;
 <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.109">masterStub</a></pre>
 </li>
 </ul>
 <a name="masterStubMakeFuture">
@@ -592,7 +592,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>masterStubMakeFuture</h4>
-<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true";
 title="class or interface in 
java.util.concurrent.atomic">AtomicReference</a>&lt;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true";
 title="class or interface in 
java.util.concurrent">CompletableFuture</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Int
 [...]
+<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true";
 title="class or interface in 
java.util.concurrent.atomic">AtomicReference</a>&lt;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true";
 title="class or interface in 
java.util.concurrent">CompletableFuture</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Int
 [...]
 </li>
 </ul>
 <a name="stats">
@@ -601,7 +601,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>stats</h4>
-<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html"
 title="class in org.apache.hadoop.hbase.client">ServerStatisticTracker</a>&gt; 
<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.113">stats</a></pre>
+<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html"
 title="class in org.apache.hadoop.hbase.client">ServerStatisticTracker</a>&gt; 
<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.114">stats</a></pre>
 </li>
 </ul>
 <a name="backoffPolicy">
@@ -610,7 +610,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>backoffPolicy</h4>
-<pre>private final&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html"
 title="interface in 
org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicy</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.114">backoffPolicy</a></pre>
+<pre>private final&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html"
 title="interface in 
org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicy</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.115">backoffPolicy</a></pre>
 </li>
 </ul>
 <a name="choreService">
@@ -619,7 +619,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>choreService</h4>
-<pre>private&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in 
org.apache.hadoop.hbase">ChoreService</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.116">choreService</a></pre>
+<pre>private&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in 
org.apache.hadoop.hbase">ChoreService</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.117">choreService</a></pre>
 </li>
 </ul>
 <a name="closed">
@@ -628,7 +628,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>closed</h4>
-<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true";
 title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.118">closed</a></pre>
+<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true";
 title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.119">closed</a></pre>
 </li>
 </ul>
 <a name="metrics">
@@ -637,7 +637,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>metrics</h4>
-<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" 
title="class in org.apache.hadoop.hbase.client">MetricsConnection</a>&gt; <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.120">metrics</a></pre>
+<pre>private final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" 
title="class in org.apache.hadoop.hbase.client">MetricsConnection</a>&gt; <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.121">metrics</a></pre>
 </li>
 </ul>
 <a name="clusterStatusListener">
@@ -646,7 +646,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterStatusListener</h4>
-<pre>private final&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/ClusterStatusListener.html" 
title="class in org.apache.hadoop.hbase.client">ClusterStatusListener</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.122">clusterStatusListener</a></pre>
+<pre>private final&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/ClusterStatusListener.html" 
title="class in org.apache.hadoop.hbase.client">ClusterStatusListener</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.123">clusterStatusListener</a></pre>
 </li>
 </ul>
 <a name="conn">
@@ -655,7 +655,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockListLast">
 <li class="blockList">
 <h4>conn</h4>
-<pre>private volatile&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/ConnectionOverAsyncConnection.html"
 title="class in 
org.apache.hadoop.hbase.client">ConnectionOverAsyncConnection</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.124">conn</a></pre>
+<pre>private volatile&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/ConnectionOverAsyncConnection.html"
 title="class in 
org.apache.hadoop.hbase.client">ConnectionOverAsyncConnection</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.125">conn</a></pre>
 </li>
 </ul>
 </li>
@@ -672,7 +672,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncConnectionImpl</h4>
-<pre>public&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.126">AsyncConnectionImpl</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.127">AsyncConnectionImpl</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                            <a 
href="../../../../../org/apache/hadoop/hbase/client/ConnectionRegistry.html" 
title="interface in 
org.apache.hadoop.hbase.client">ConnectionRegistry</a>&nbsp;registry,
                            <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;clusterId,
                            <a 
href="https://docs.oracle.com/javase/8/docs/api/java/net/SocketAddress.html?is-external=true";
 title="class or interface in java.net">SocketAddress</a>&nbsp;localAddress,
@@ -693,7 +693,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>spawnRenewalChore</h4>
-<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.180">spawnRenewalChore</a>(org.apache.hadoop.security.UserGroupInformation&nbsp;user)</pre>
+<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.181">spawnRenewalChore</a>(org.apache.hadoop.security.UserGroupInformation&nbsp;user)</pre>
 </li>
 </ul>
 <a name="getChoreService--">
@@ -702,7 +702,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getChoreService</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ChoreService.html" 
title="class in org.apache.hadoop.hbase">ChoreService</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.189">getChoreService</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ChoreService.html" 
title="class in org.apache.hadoop.hbase">ChoreService</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.190">getChoreService</a>()</pre>
 <div class="block">If choreService has not been created yet, create the 
ChoreService.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -716,7 +716,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.200">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.201">getConfiguration</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getConfiguration--">AsyncConnection</a></code></span></div>
 <div class="block">Returns the <code>Configuration</code> object used by this 
instance.
  <p>
@@ -733,7 +733,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>isClosed</h4>
-<pre>public&nbsp;boolean&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.205">isClosed</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.206">isClosed</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#isClosed--">AsyncConnection</a></code></span></div>
 <div class="block">Returns whether the connection is closed or not.</div>
 <dl>
@@ -750,7 +750,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.210">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.211">close</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true#close--";
 title="class or interface in java.io">close</a></code>&nbsp;in 
interface&nbsp;<code><a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true";
 title="class or interface in java.io">Closeable</a></code></dd>
@@ -765,7 +765,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>logCallStack</h4>
-<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.237">logCallStack</a>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/StackTraceElement.html?is-external=true";
 title="class or interface in 
java.lang">StackTraceElement</a>[]&nbsp;stackTraceElements)</pre>
+<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.238">logCallStack</a>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/StackTraceElement.html?is-external=true";
 title="class or interface in 
java.lang">StackTraceElement</a>[]&nbsp;stackTraceElements)</pre>
 </li>
 </ul>
 <a name="getRegionLocator-org.apache.hadoop.hbase.TableName-">
@@ -774,7 +774,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionLocator</h4>
-<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncTableRegionLocator.html"
 title="interface in 
org.apache.hadoop.hbase.client">AsyncTableRegionLocator</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.248">getRegionLocator</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="../../../../../org/apache/hadoop/hbase/client/AsyncTableRegionLocator.html"
 title="interface in 
org.apache.hadoop.hbase.client">AsyncTableRegionLocator</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.249">getRegionLocator</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/client/AsyncConnection.html#getRegionLocator-org.apache.hadoop.hbase.TableName-">AsyncConnection</a></code></span></div>
 <div class="block">Retrieve a AsyncRegionLocator implementation to inspect 
region information on a table. The
  returned AsyncRegionLocator is not thread-safe, so a new instance should be 
created for each
@@ -796,7 +796,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>clearRegionLocationCache</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.253">clearRegionLocationCache</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.254">clearRegionLocationCache</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#clearRegionLocationCache--">AsyncConnection</a></code></span></div>
 <div class="block">Clear all the entries in the region location cache, for all 
the tables.
  <p/>
@@ -816,7 +816,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getLocator</h4>
-<pre><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncRegionLocator.html" 
title="class in org.apache.hadoop.hbase.client">AsyncRegionLocator</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.258">getLocator</a>()</pre>
+<pre><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncRegionLocator.html" 
title="class in org.apache.hadoop.hbase.client">AsyncRegionLocator</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.259">getLocator</a>()</pre>
 </li>
 </ul>
 <a name="getNonceGenerator--">
@@ -825,7 +825,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGenerator</h4>
-<pre><a 
href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" 
title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.263">getNonceGenerator</a>()</pre>
+<pre><a 
href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" 
title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.264">getNonceGenerator</a>()</pre>
 </li>
 </ul>
 <a name="createRegionServerStub-org.apache.hadoop.hbase.ServerName-">
@@ -834,7 +834,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>createRegionServerStub</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.267">createRegionServerStub</a>(<a
 href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in 
org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.268">createRegionServerStub</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>
@@ -848,7 +848,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerStub</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.271">getRegionServerStub</a>(<a
 href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in 
org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.272">getRegionServerStub</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>
@@ -862,7 +862,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>createMasterStub</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.277">createMasterStub</a>(<a
 href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in 
org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.278">createMasterStub</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>
@@ -876,7 +876,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>createAdminServerStub</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.281">createAdminServerStub</a>(<a
 href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in 
org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.282">createAdminServerStub</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>
@@ -890,7 +890,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getAdminStub</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.285">getAdminStub</a>(<a
 href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in 
org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.286">getAdminStub</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>
@@ -904,7 +904,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterStub</h4>
-<pre><a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true";
 title="class or interface in 
java.util.concurrent">CompletableFuture</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface&gt;&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.291">getMasterStub</a>()</pre>
+<pre><a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true";
 title="class or interface in 
java.util.concurrent">CompletableFuture</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface&gt;&nbsp;<a
 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.292">getMasterStub</a>()</pre>
 </li>
 </ul>
 <a name="getClusterId--">
@@ -913,7 +913,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterId</h4>
-<pre><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/client/AsyncConnectionImpl.html#line.314">getClusterId</a>()</pre>
+<pre><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/client/AsyncConnectionImpl.html#line.315">getClusterId</a>()</pre>
 </li>
 </ul>
 <a 
name="clearMasterStubCache-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface-">
@@ -922,7 +922,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>clearMasterStubCache</h4>
-<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.323">clearMasterStubCache</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface&nbsp;stub)</pre>
+<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.324">clearMasterStubCache</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface&nbsp;stub)</pre>
 </li>
 </ul>
 <a name="getStatisticsTracker--">
@@ -931,7 +931,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getStatisticsTracker</h4>
-<pre><a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html"
 title="class in 
org.apache.hadoop.hbase.client">ServerStatisticTracker</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.327">getStatisticsTracker</a>()</pre>
+<pre><a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html"
 title="class in 
org.apache.hadoop.hbase.client">ServerStatisticTracker</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.328">getStatisticsTracker</a>()</pre>
 </li>
 </ul>
 <a name="getBackoffPolicy--">
@@ -940,7 +940,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackoffPolicy</h4>
-<pre><a 
href="../../../../../org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html"
 title="interface in 
org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicy</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.331">getBackoffPolicy</a>()</pre>
+<pre><a 
href="../../../../../org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html"
 title="interface in 
org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicy</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.332">getBackoffPolicy</a>()</pre>
 </li>
 </ul>
 <a name="getTableBuilder-org.apache.hadoop.hbase.TableName-">
@@ -949,7 +949,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableBuilder</h4>
-<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" 
title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/AdvancedScanResultConsumer.html"
 title="interface in 
org.apache.hadoop.hbase.client">AdvancedScanResultConsumer</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.336">getTableBuilder</a>(<a
 href="../../../.. [...]
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" 
title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/AdvancedScanResultConsumer.html"
 title="interface in 
org.apache.hadoop.hbase.client">AdvancedScanResultConsumer</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.337">getTableBuilder</a>(<a
 href="../../../.. [...]
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getTableBuilder-org.apache.hadoop.hbase.TableName-">AsyncConnection</a></code></span></div>
 <div class="block">Returns an <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" 
title="interface in 
org.apache.hadoop.hbase.client"><code>AsyncTableBuilder</code></a> for creating 
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html" 
title="interface in org.apache.hadoop.hbase.client"><code>AsyncTable</code></a>.
  <p>
@@ -969,7 +969,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableBuilder</h4>
-<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" 
title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/ScanResultConsumer.html" 
title="interface in 
org.apache.hadoop.hbase.client">ScanResultConsumer</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.347">getTableBuilder</a>(<a
 href="../../../../../org/apache/h [...]
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" 
title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/ScanResultConsumer.html" 
title="interface in 
org.apache.hadoop.hbase.client">ScanResultConsumer</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.348">getTableBuilder</a>(<a
 href="../../../../../org/apache/h [...]
                                                              <a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true";
 title="class or interface in 
java.util.concurrent">ExecutorService</a>&nbsp;pool)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getTableBuilder-org.apache.hadoop.hbase.TableName-java.util.concurrent.ExecutorService-">AsyncConnection</a></code></span></div>
 <div class="block">Returns an <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" 
title="interface in 
org.apache.hadoop.hbase.client"><code>AsyncTableBuilder</code></a> for creating 
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html" 
title="interface in org.apache.hadoop.hbase.client"><code>AsyncTable</code></a>.
@@ -991,7 +991,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getAdminBuilder</h4>
-<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncAdminBuilder.html" 
title="interface in 
org.apache.hadoop.hbase.client">AsyncAdminBuilder</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.361">getAdminBuilder</a>()</pre>
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncAdminBuilder.html" 
title="interface in 
org.apache.hadoop.hbase.client">AsyncAdminBuilder</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.362">getAdminBuilder</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getAdminBuilder--">AsyncConnection</a></code></span></div>
 <div class="block">Returns an <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncAdminBuilder.html" 
title="interface in 
org.apache.hadoop.hbase.client"><code>AsyncAdminBuilder</code></a> for creating 
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" 
title="interface in org.apache.hadoop.hbase.client"><code>AsyncAdmin</code></a>.
  <p>
@@ -1010,7 +1010,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getAdminBuilder</h4>
-<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncAdminBuilder.html" 
title="interface in 
org.apache.hadoop.hbase.client">AsyncAdminBuilder</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.371">getAdminBuilder</a>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true";
 title="class or interface in 
java.util.concurrent">ExecutorService</a>&nbsp;pool)</pre>
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncAdminBuilder.html" 
title="interface in 
org.apache.hadoop.hbase.client">AsyncAdminBuilder</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.372">getAdminBuilder</a>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true";
 title="class or interface in 
java.util.concurrent">ExecutorService</a>&nbsp;pool)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getAdminBuilder-java.util.concurrent.ExecutorService-">AsyncConnection</a></code></span></div>
 <div class="block">Returns an <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncAdminBuilder.html" 
title="interface in 
org.apache.hadoop.hbase.client"><code>AsyncAdminBuilder</code></a> for creating 
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" 
title="interface in 
org.apache.hadoop.hbase.client"><code>AsyncAdmin</code></a>.</div>
 <dl>
@@ -1027,7 +1027,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getBufferedMutatorBuilder</h4>
-<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html"
 title="interface in 
org.apache.hadoop.hbase.client">AsyncBufferedMutatorBuilder</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.383">getBufferedMutatorBuilder</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="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html"
 title="interface in 
org.apache.hadoop.hbase.client">AsyncBufferedMutatorBuilder</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.384">getBufferedMutatorBuilder</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/client/AsyncConnection.html#getBufferedMutatorBuilder-org.apache.hadoop.hbase.TableName-">AsyncConnection</a></code></span></div>
 <div class="block">Returns an <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html"
 title="interface in 
org.apache.hadoop.hbase.client"><code>AsyncBufferedMutatorBuilder</code></a> 
for creating <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutator.html" 
title="interface in 
org.apache.hadoop.hbase.client"><code>AsyncBufferedMutator</code></a>.</div>
 <dl>
@@ -1044,7 +1044,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getBufferedMutatorBuilder</h4>
-<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html"
 title="interface in 
org.apache.hadoop.hbase.client">AsyncBufferedMutatorBuilder</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.388">getBufferedMutatorBuilder</a>(<a
 href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in 
org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html"
 title="interface in 
org.apache.hadoop.hbase.client">AsyncBufferedMutatorBuilder</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.389">getBufferedMutatorBuilder</a>(<a
 href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in 
org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                              <a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true";
 title="class or interface in 
java.util.concurrent">ExecutorService</a>&nbsp;pool)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getBufferedMutatorBuilder-org.apache.hadoop.hbase.TableName-java.util.concurrent.ExecutorService-">AsyncConnection</a></code></span></div>
 <div class="block">Returns an <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html"
 title="interface in 
org.apache.hadoop.hbase.client"><code>AsyncBufferedMutatorBuilder</code></a> 
for creating <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutator.html" 
title="interface in 
org.apache.hadoop.hbase.client"><code>AsyncBufferedMutator</code></a>.</div>
@@ -1063,7 +1063,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>toConnection</h4>
-<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/Connection.html" 
title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.395">toConnection</a>()</pre>
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/Connection.html" 
title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.396">toConnection</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#toConnection--">AsyncConnection</a></code></span></div>
 <div class="block">Convert this connection to a <a 
href="../../../../../org/apache/hadoop/hbase/client/Connection.html" 
title="interface in org.apache.hadoop.hbase.client"><code>Connection</code></a>.
  <p/>
@@ -1081,7 +1081,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getHbckInternal</h4>
-<pre>private&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface 
in org.apache.hadoop.hbase.client">Hbck</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.411">getHbckInternal</a>(<a
 href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in 
org.apache.hadoop.hbase">ServerName</a>&nbsp;masterServer)</pre>
+<pre>private&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface 
in org.apache.hadoop.hbase.client">Hbck</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.412">getHbckInternal</a>(<a
 href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in 
org.apache.hadoop.hbase">ServerName</a>&nbsp;masterServer)</pre>
 </li>
 </ul>
 <a name="getHbck--">
@@ -1090,7 +1090,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getHbck</h4>
-<pre>public&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true";
 title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface 
in org.apache.hadoop.hbase.client">Hbck</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.421">getHbck</a>()</pre>
+<pre>public&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true";
 title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface 
in org.apache.hadoop.hbase.client">Hbck</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.422">getHbck</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getHbck--">AsyncConnection</a></code></span></div>
 <div class="block">Retrieve an Hbck implementation to fix an HBase cluster. 
The returned Hbck is not guaranteed to
  be thread-safe. A new instance should be created by each thread. This is a 
lightweight
@@ -1113,7 +1113,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockList">
 <li class="blockList">
 <h4>getHbck</h4>
-<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface 
in org.apache.hadoop.hbase.client">Hbck</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.436">getHbck</a>(<a
 href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in 
org.apache.hadoop.hbase">ServerName</a>&nbsp;masterServer)</pre>
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface 
in org.apache.hadoop.hbase.client">Hbck</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.437">getHbck</a>(<a
 href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in 
org.apache.hadoop.hbase">ServerName</a>&nbsp;masterServer)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<code><a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getHbck-org.apache.hadoop.hbase.ServerName-">AsyncConnection</a></code></span></div>
 <div class="block">Retrieve an Hbck implementation to fix an HBase cluster. 
The returned Hbck is not guaranteed to
  be thread-safe. A new instance should be created by each thread. This is a 
lightweight
@@ -1140,7 +1140,7 @@ implements <a 
href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectio
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getConnectionMetrics</h4>
-<pre><a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" 
title="class in 
org.apache.hadoop.hbase.client">MetricsConnection</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.446">getConnectionMetrics</a>()</pre>
+<pre><a 
href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" 
title="class in 
org.apache.hadoop.hbase.client">MetricsConnection</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.447">getConnectionMetrics</a>()</pre>
 </li>
 </ul>
 </li>
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html
index 9299e6f..39f12bb 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html
@@ -111,350 +111,351 @@
 <span class="sourceLineNo">103</span>  private final NonceGenerator 
nonceGenerator;<a name="line.103"></a>
 <span class="sourceLineNo">104</span><a name="line.104"></a>
 <span class="sourceLineNo">105</span>  private final ConcurrentMap&lt;String, 
ClientService.Interface&gt; rsStubs = new ConcurrentHashMap&lt;&gt;();<a 
name="line.105"></a>
-<span class="sourceLineNo">106</span>  private final ConcurrentMap&lt;String, 
AdminService.Interface&gt; adminSubs = new ConcurrentHashMap&lt;&gt;();<a 
name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  private final 
AtomicReference&lt;MasterService.Interface&gt; masterStub = new 
AtomicReference&lt;&gt;();<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>  private final 
AtomicReference&lt;CompletableFuture&lt;MasterService.Interface&gt;&gt; 
masterStubMakeFuture =<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    new AtomicReference&lt;&gt;();<a 
name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  private final 
Optional&lt;ServerStatisticTracker&gt; stats;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  private final ClientBackoffPolicy 
backoffPolicy;<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private ChoreService choreService;<a 
name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  private final AtomicBoolean closed = 
new AtomicBoolean(false);<a name="line.118"></a>
-<span class="sourceLineNo">119</span><a name="line.119"></a>
-<span class="sourceLineNo">120</span>  private final 
Optional&lt;MetricsConnection&gt; metrics;<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private final ClusterStatusListener 
clusterStatusListener;<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>  private volatile 
ConnectionOverAsyncConnection conn;<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  public 
AsyncConnectionImpl(Configuration conf, ConnectionRegistry registry, String 
clusterId,<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    SocketAddress localAddress, User 
user) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    this.conf = conf;<a 
name="line.128"></a>
-<span class="sourceLineNo">129</span>    this.user = user;<a 
name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>    if (user.isLoginFromKeytab()) {<a 
name="line.131"></a>
-<span class="sourceLineNo">132</span>      spawnRenewalChore(user.getUGI());<a 
name="line.132"></a>
-<span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    this.connConf = new 
AsyncConnectionConfiguration(conf);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    this.registry = registry;<a 
name="line.135"></a>
-<span class="sourceLineNo">136</span>    if 
(conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a 
name="line.136"></a>
-<span class="sourceLineNo">137</span>      this.metrics = Optional.of(new 
MetricsConnection(this.toString(), () -&gt; null, () -&gt; null));<a 
name="line.137"></a>
-<span class="sourceLineNo">138</span>    } else {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      this.metrics = Optional.empty();<a 
name="line.139"></a>
-<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    this.rpcClient =<a 
name="line.141"></a>
-<span class="sourceLineNo">142</span>      RpcClientFactory.createClient(conf, 
clusterId, localAddress, metrics.orElse(null));<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    this.rpcControllerFactory = 
RpcControllerFactory.instantiate(conf);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    this.rpcTimeout =<a 
name="line.144"></a>
-<span class="sourceLineNo">145</span>      (int) Math.min(Integer.MAX_VALUE, 
TimeUnit.NANOSECONDS.toMillis(connConf.getRpcTimeoutNs()));<a 
name="line.145"></a>
-<span class="sourceLineNo">146</span>    this.locator = new 
AsyncRegionLocator(this, RETRY_TIMER);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    this.callerFactory = new 
AsyncRpcRetryingCallerFactory(this, RETRY_TIMER);<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    if 
(conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      nonceGenerator = 
PerClientRandomNonceGenerator.get();<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    } else {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      nonceGenerator = 
NO_NONCE_GENERATOR;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    this.stats = 
Optional.ofNullable(ServerStatisticTracker.create(conf));<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    this.backoffPolicy = 
ClientBackoffPolicyFactory.create(conf);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    ClusterStatusListener listener = 
null;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    if (conf.getBoolean(STATUS_PUBLISHED, 
STATUS_PUBLISHED_DEFAULT)) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      // TODO: this maybe a blocking 
operation, better to create it outside the constructor and pass<a 
name="line.157"></a>
-<span class="sourceLineNo">158</span>      // it in, just like clusterId. Not 
a big problem for now as the default value is false.<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      Class&lt;? extends 
ClusterStatusListener.Listener&gt; listenerClass = conf.getClass(<a 
name="line.159"></a>
-<span class="sourceLineNo">160</span>        STATUS_LISTENER_CLASS, 
DEFAULT_STATUS_LISTENER_CLASS, ClusterStatusListener.Listener.class);<a 
name="line.160"></a>
-<span class="sourceLineNo">161</span>      if (listenerClass == null) {<a 
name="line.161"></a>
-<span class="sourceLineNo">162</span>        LOG.warn("{} is true, but {} is 
not set", STATUS_PUBLISHED, STATUS_LISTENER_CLASS);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      } else {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        try {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          listener = new 
ClusterStatusListener(new ClusterStatusListener.DeadServerHandler() {<a 
name="line.165"></a>
-<span class="sourceLineNo">166</span>            @Override<a 
name="line.166"></a>
-<span class="sourceLineNo">167</span>            public void 
newDead(ServerName sn) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>              locator.clearCache(sn);<a 
name="line.168"></a>
-<span class="sourceLineNo">169</span>              
rpcClient.cancelConnections(sn);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>            }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          }, conf, listenerClass);<a 
name="line.171"></a>
-<span class="sourceLineNo">172</span>        } catch (IOException e) {<a 
name="line.172"></a>
-<span class="sourceLineNo">173</span>          LOG.warn("Failed create of 
ClusterStatusListener, not a critical, ignoring...", e);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      }<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    this.clusterStatusListener = 
listener;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  private void spawnRenewalChore(final 
UserGroupInformation user) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    ChoreService service = 
getChoreService();<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    
service.scheduleChore(AuthUtil.getAuthRenewalChore(user));<a 
name="line.182"></a>
-<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
-<span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>  /**<a name="line.185"></a>
-<span class="sourceLineNo">186</span>   * If choreService has not been created 
yet, create the ChoreService.<a name="line.186"></a>
-<span class="sourceLineNo">187</span>   * @return ChoreService<a 
name="line.187"></a>
-<span class="sourceLineNo">188</span>   */<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  synchronized ChoreService 
getChoreService() {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    if (isClosed()) {<a 
name="line.190"></a>
-<span class="sourceLineNo">191</span>      throw new 
IllegalStateException("connection is already closed");<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    if (choreService == null) {<a 
name="line.193"></a>
-<span class="sourceLineNo">194</span>      choreService = new 
ChoreService("AsyncConn Chore Service");<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    return choreService;<a 
name="line.196"></a>
-<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  @Override<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  public Configuration getConfiguration() 
{<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    return conf;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Override<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public boolean isClosed() {<a 
name="line.205"></a>
-<span class="sourceLineNo">206</span>    return closed.get();<a 
name="line.206"></a>
-<span class="sourceLineNo">207</span>  }<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  @Override<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  public void close() {<a 
name="line.210"></a>
-<span class="sourceLineNo">211</span>    TraceUtil.trace(() -&gt; {<a 
name="line.211"></a>
-<span class="sourceLineNo">212</span>      if (!closed.compareAndSet(false, 
true)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        return;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      LOG.info("Connection has been 
closed by {}.", Thread.currentThread().getName());<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      if (LOG.isDebugEnabled()) {<a 
name="line.216"></a>
-<span class="sourceLineNo">217</span>        
logCallStack(Thread.currentThread().getStackTrace());<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      }<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      
IOUtils.closeQuietly(clusterStatusListener,<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        e -&gt; LOG.warn("failed to close 
clusterStatusListener", e));<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      IOUtils.closeQuietly(rpcClient, e 
-&gt; LOG.warn("failed to close rpcClient", e));<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      IOUtils.closeQuietly(registry, e 
-&gt; LOG.warn("failed to close registry", e));<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      synchronized (this) {<a 
name="line.223"></a>
-<span class="sourceLineNo">224</span>        if (choreService != null) {<a 
name="line.224"></a>
-<span class="sourceLineNo">225</span>          choreService.shutdown();<a 
name="line.225"></a>
-<span class="sourceLineNo">226</span>          choreService = null;<a 
name="line.226"></a>
-<span class="sourceLineNo">227</span>        }<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      
metrics.ifPresent(MetricsConnection::shutdown);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      ConnectionOverAsyncConnection c = 
this.conn;<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (c != null) {<a 
name="line.231"></a>
-<span class="sourceLineNo">232</span>        c.closePool();<a 
name="line.232"></a>
-<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    }, "AsyncConnection.close");<a 
name="line.234"></a>
-<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>  private void 
logCallStack(StackTraceElement[] stackTraceElements) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    StringBuilder stackBuilder = new 
StringBuilder("Call stack:");<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    for (StackTraceElement element : 
stackTraceElements) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      stackBuilder.append("\n    at ");<a 
name="line.240"></a>
-<span class="sourceLineNo">241</span>      stackBuilder.append(element);<a 
name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    stackBuilder.append("\n");<a 
name="line.243"></a>
-<span class="sourceLineNo">244</span>    LOG.debug(stackBuilder.toString());<a 
name="line.244"></a>
-<span class="sourceLineNo">245</span>  }<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  @Override<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  public AsyncTableRegionLocator 
getRegionLocator(TableName tableName) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    return new 
AsyncTableRegionLocatorImpl(tableName, this);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>  @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  public void clearRegionLocationCache() 
{<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    locator.clearCache();<a 
name="line.254"></a>
-<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>  // we will override this method for 
testing retry caller, so do not remove this method.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>  AsyncRegionLocator getLocator() {<a 
name="line.258"></a>
-<span class="sourceLineNo">259</span>    return locator;<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  }<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span>  // ditto<a name="line.262"></a>
-<span class="sourceLineNo">263</span>  NonceGenerator getNonceGenerator() {<a 
name="line.263"></a>
-<span class="sourceLineNo">264</span>    return nonceGenerator;<a 
name="line.264"></a>
-<span class="sourceLineNo">265</span>  }<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  private ClientService.Interface 
createRegionServerStub(ServerName serverName) throws IOException {<a 
name="line.267"></a>
-<span class="sourceLineNo">268</span>    return 
ClientService.newStub(rpcClient.createRpcChannel(serverName, user, 
rpcTimeout));<a name="line.268"></a>
-<span class="sourceLineNo">269</span>  }<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>  ClientService.Interface 
getRegionServerStub(ServerName serverName) throws IOException {<a 
name="line.271"></a>
-<span class="sourceLineNo">272</span>    return 
ConcurrentMapUtils.computeIfAbsentEx(rsStubs,<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      
getStubKey(ClientService.getDescriptor().getName(), serverName),<a 
name="line.273"></a>
-<span class="sourceLineNo">274</span>      () -&gt; 
createRegionServerStub(serverName));<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  }<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>  private MasterService.Interface 
createMasterStub(ServerName serverName) throws IOException {<a 
name="line.277"></a>
-<span class="sourceLineNo">278</span>    return 
MasterService.newStub(rpcClient.createRpcChannel(serverName, user, 
rpcTimeout));<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  private AdminService.Interface 
createAdminServerStub(ServerName serverName) throws IOException {<a 
name="line.281"></a>
-<span class="sourceLineNo">282</span>    return 
AdminService.newStub(rpcClient.createRpcChannel(serverName, user, 
rpcTimeout));<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  AdminService.Interface 
getAdminStub(ServerName serverName) throws IOException {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    return 
ConcurrentMapUtils.computeIfAbsentEx(adminSubs,<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      
getStubKey(AdminService.getDescriptor().getName(), serverName),<a 
name="line.287"></a>
-<span class="sourceLineNo">288</span>      () -&gt; 
createAdminServerStub(serverName));<a name="line.288"></a>
-<span class="sourceLineNo">289</span>  }<a name="line.289"></a>
-<span class="sourceLineNo">290</span><a name="line.290"></a>
-<span class="sourceLineNo">291</span>  
CompletableFuture&lt;MasterService.Interface&gt; getMasterStub() {<a 
name="line.291"></a>
-<span class="sourceLineNo">292</span>    return 
ConnectionUtils.getOrFetch(masterStub, masterStubMakeFuture, false, () -&gt; 
{<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      
CompletableFuture&lt;MasterService.Interface&gt; future = new 
CompletableFuture&lt;&gt;();<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      
addListener(registry.getActiveMaster(), (addr, error) -&gt; {<a 
name="line.294"></a>
-<span class="sourceLineNo">295</span>        if (error != null) {<a 
name="line.295"></a>
-<span class="sourceLineNo">296</span>          
future.completeExceptionally(error);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        } else if (addr == null) {<a 
name="line.297"></a>
-<span class="sourceLineNo">298</span>          
future.completeExceptionally(new MasterNotRunningException(<a 
name="line.298"></a>
-<span class="sourceLineNo">299</span>            "ZooKeeper available but no 
active master location found"));<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        } else {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          LOG.debug("The fetched master 
address is {}", addr);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>          try {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>            
future.complete(createMasterStub(addr));<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          } catch (IOException e) {<a 
name="line.304"></a>
-<span class="sourceLineNo">305</span>            
future.completeExceptionally(e);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>          }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        }<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>      });<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      return future;<a 
name="line.310"></a>
-<span class="sourceLineNo">311</span>    }, stub -&gt; true, "master stub");<a 
name="line.311"></a>
-<span class="sourceLineNo">312</span>  }<a name="line.312"></a>
-<span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>  String getClusterId() {<a 
name="line.314"></a>
-<span class="sourceLineNo">315</span>    try {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      return 
registry.getClusterId().get();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    } catch (InterruptedException | 
ExecutionException e) {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      LOG.error("Error fetching cluster 
ID: ", e);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    return null;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  void 
clearMasterStubCache(MasterService.Interface stub) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    masterStub.compareAndSet(stub, 
null);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  Optional&lt;ServerStatisticTracker&gt; 
getStatisticsTracker() {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    return stats;<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>  ClientBackoffPolicy getBackoffPolicy() 
{<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    return backoffPolicy;<a 
name="line.332"></a>
-<span class="sourceLineNo">333</span>  }<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>  @Override<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  public 
AsyncTableBuilder&lt;AdvancedScanResultConsumer&gt; getTableBuilder(TableName 
tableName) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    return new 
AsyncTableBuilderBase&lt;AdvancedScanResultConsumer&gt;(tableName, connConf) 
{<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>      @Override<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      public 
AsyncTable&lt;AdvancedScanResultConsumer&gt; build() {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        return new 
RawAsyncTableImpl(AsyncConnectionImpl.this, RETRY_TIMER, this);<a 
name="line.341"></a>
-<span class="sourceLineNo">342</span>      }<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    };<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  @Override<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  public 
AsyncTableBuilder&lt;ScanResultConsumer&gt; getTableBuilder(TableName 
tableName,<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    ExecutorService pool) {<a 
name="line.348"></a>
-<span class="sourceLineNo">349</span>    return new 
AsyncTableBuilderBase&lt;ScanResultConsumer&gt;(tableName, connConf) {<a 
name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>      @Override<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      public 
AsyncTable&lt;ScanResultConsumer&gt; build() {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>        RawAsyncTableImpl rawTable =<a 
name="line.353"></a>
-<span class="sourceLineNo">354</span>          new 
RawAsyncTableImpl(AsyncConnectionImpl.this, RETRY_TIMER, this);<a 
name="line.354"></a>
-<span class="sourceLineNo">355</span>        return new 
AsyncTableImpl(AsyncConnectionImpl.this, rawTable, pool);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      }<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    };<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  @Override<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  public AsyncAdminBuilder 
getAdminBuilder() {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    return new 
AsyncAdminBuilderBase(connConf) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      @Override<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      public AsyncAdmin build() {<a 
name="line.364"></a>
-<span class="sourceLineNo">365</span>        return new 
RawAsyncHBaseAdmin(AsyncConnectionImpl.this, RETRY_TIMER, this);<a 
name="line.365"></a>
-<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    };<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  @Override<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  public AsyncAdminBuilder 
getAdminBuilder(ExecutorService pool) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    return new 
AsyncAdminBuilderBase(connConf) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      @Override<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      public AsyncAdmin build() {<a 
name="line.374"></a>
-<span class="sourceLineNo">375</span>        RawAsyncHBaseAdmin rawAdmin =<a 
name="line.375"></a>
-<span class="sourceLineNo">376</span>          new 
RawAsyncHBaseAdmin(AsyncConnectionImpl.this, RETRY_TIMER, this);<a 
name="line.376"></a>
-<span class="sourceLineNo">377</span>        return new 
AsyncHBaseAdmin(rawAdmin, pool);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      }<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    };<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  @Override<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public AsyncBufferedMutatorBuilder 
getBufferedMutatorBuilder(TableName tableName) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    return new 
AsyncBufferedMutatorBuilderImpl(connConf, getTableBuilder(tableName), 
RETRY_TIMER);<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  public AsyncBufferedMutatorBuilder 
getBufferedMutatorBuilder(TableName tableName,<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    ExecutorService pool) {<a 
name="line.389"></a>
-<span class="sourceLineNo">390</span>    return new 
AsyncBufferedMutatorBuilderImpl(connConf, getTableBuilder(tableName, pool),<a 
name="line.390"></a>
-<span class="sourceLineNo">391</span>      RETRY_TIMER);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  @Override<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  public Connection toConnection() {<a 
name="line.395"></a>
-<span class="sourceLineNo">396</span>    ConnectionOverAsyncConnection c = 
this.conn;<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    if (c != null) {<a 
name="line.397"></a>
-<span class="sourceLineNo">398</span>      return c;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    synchronized (this) {<a 
name="line.400"></a>
-<span class="sourceLineNo">401</span>      c = this.conn;<a 
name="line.401"></a>
-<span class="sourceLineNo">402</span>      if (c != null) {<a 
name="line.402"></a>
-<span class="sourceLineNo">403</span>        return c;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      c = new 
ConnectionOverAsyncConnection(this);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      this.conn = c;<a 
name="line.406"></a>
-<span class="sourceLineNo">407</span>    }<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    return c;<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private Hbck getHbckInternal(ServerName 
masterServer) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    
Span.current().setAttribute(TraceUtil.SERVER_NAME_KEY, 
masterServer.getServerName());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    // we will not create a new 
connection when creating a new protobuf stub, and for hbck there<a 
name="line.413"></a>
-<span class="sourceLineNo">414</span>    // will be no performance 
consideration, so for simplification we will create a new stub every<a 
name="line.414"></a>
-<span class="sourceLineNo">415</span>    // time instead of caching the stub 
here.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return new 
HBaseHbck(MasterProtos.HbckService.newBlockingStub(<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      
rpcClient.createBlockingRpcChannel(masterServer, user, rpcTimeout)), 
rpcControllerFactory);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>  }<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span>  @Override<a name="line.420"></a>
-<span class="sourceLineNo">421</span>  public CompletableFuture&lt;Hbck&gt; 
getHbck() {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    return TraceUtil.tracedFuture(() 
-&gt; {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      CompletableFuture&lt;Hbck&gt; 
future = new CompletableFuture&lt;&gt;();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      
addListener(registry.getActiveMaster(), (sn, error) -&gt; {<a 
name="line.424"></a>
-<span class="sourceLineNo">425</span>        if (error != null) {<a 
name="line.425"></a>
-<span class="sourceLineNo">426</span>          
future.completeExceptionally(error);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        } else {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>          
future.complete(getHbckInternal(sn));<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      });<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      return future;<a 
name="line.431"></a>
-<span class="sourceLineNo">432</span>    }, "AsyncConnection.getHbck");<a 
name="line.432"></a>
-<span class="sourceLineNo">433</span>  }<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>  @Override<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  public Hbck getHbck(ServerName 
masterServer) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    return TraceUtil.trace(new 
Supplier&lt;Hbck&gt;() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span><a name="line.438"></a>
-<span class="sourceLineNo">439</span>      @Override<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      public Hbck get() {<a 
name="line.440"></a>
-<span class="sourceLineNo">441</span>        return 
getHbckInternal(masterServer);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }, "AsyncConnection.getHbck");<a 
name="line.443"></a>
-<span class="sourceLineNo">444</span>  }<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>  Optional&lt;MetricsConnection&gt; 
getConnectionMetrics() {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    return metrics;<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>}<a name="line.449"></a>
+<span class="sourceLineNo">106</span>  private final ConcurrentMap&lt;String, 
AdminService.Interface&gt; adminStubs =<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      new ConcurrentHashMap&lt;&gt;();<a 
name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  private final 
AtomicReference&lt;MasterService.Interface&gt; masterStub = new 
AtomicReference&lt;&gt;();<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>  private final 
AtomicReference&lt;CompletableFuture&lt;MasterService.Interface&gt;&gt; 
masterStubMakeFuture =<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    new AtomicReference&lt;&gt;();<a 
name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  private final 
Optional&lt;ServerStatisticTracker&gt; stats;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private final ClientBackoffPolicy 
backoffPolicy;<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>  private ChoreService choreService;<a 
name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  private final AtomicBoolean closed = 
new AtomicBoolean(false);<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  private final 
Optional&lt;MetricsConnection&gt; metrics;<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  private final ClusterStatusListener 
clusterStatusListener;<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private volatile 
ConnectionOverAsyncConnection conn;<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>  public 
AsyncConnectionImpl(Configuration conf, ConnectionRegistry registry, String 
clusterId,<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    SocketAddress localAddress, User 
user) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    this.conf = conf;<a 
name="line.129"></a>
+<span class="sourceLineNo">130</span>    this.user = user;<a 
name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>    if (user.isLoginFromKeytab()) {<a 
name="line.132"></a>
+<span class="sourceLineNo">133</span>      spawnRenewalChore(user.getUGI());<a 
name="line.133"></a>
+<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    this.connConf = new 
AsyncConnectionConfiguration(conf);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    this.registry = registry;<a 
name="line.136"></a>
+<span class="sourceLineNo">137</span>    if 
(conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a 
name="line.137"></a>
+<span class="sourceLineNo">138</span>      this.metrics = Optional.of(new 
MetricsConnection(this.toString(), () -&gt; null, () -&gt; null));<a 
name="line.138"></a>
+<span class="sourceLineNo">139</span>    } else {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      this.metrics = Optional.empty();<a 
name="line.140"></a>
+<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    this.rpcClient =<a 
name="line.142"></a>
+<span class="sourceLineNo">143</span>      RpcClientFactory.createClient(conf, 
clusterId, localAddress, metrics.orElse(null));<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    this.rpcControllerFactory = 
RpcControllerFactory.instantiate(conf);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    this.rpcTimeout =<a 
name="line.145"></a>
+<span class="sourceLineNo">146</span>      (int) Math.min(Integer.MAX_VALUE, 
TimeUnit.NANOSECONDS.toMillis(connConf.getRpcTimeoutNs()));<a 
name="line.146"></a>
+<span class="sourceLineNo">147</span>    this.locator = new 
AsyncRegionLocator(this, RETRY_TIMER);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    this.callerFactory = new 
AsyncRpcRetryingCallerFactory(this, RETRY_TIMER);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    if 
(conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      nonceGenerator = 
PerClientRandomNonceGenerator.get();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    } else {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      nonceGenerator = 
NO_NONCE_GENERATOR;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    this.stats = 
Optional.ofNullable(ServerStatisticTracker.create(conf));<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    this.backoffPolicy = 
ClientBackoffPolicyFactory.create(conf);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    ClusterStatusListener listener = 
null;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    if (conf.getBoolean(STATUS_PUBLISHED, 
STATUS_PUBLISHED_DEFAULT)) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      // TODO: this maybe a blocking 
operation, better to create it outside the constructor and pass<a 
name="line.158"></a>
+<span class="sourceLineNo">159</span>      // it in, just like clusterId. Not 
a big problem for now as the default value is false.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      Class&lt;? extends 
ClusterStatusListener.Listener&gt; listenerClass = conf.getClass(<a 
name="line.160"></a>
+<span class="sourceLineNo">161</span>        STATUS_LISTENER_CLASS, 
DEFAULT_STATUS_LISTENER_CLASS, ClusterStatusListener.Listener.class);<a 
name="line.161"></a>
+<span class="sourceLineNo">162</span>      if (listenerClass == null) {<a 
name="line.162"></a>
+<span class="sourceLineNo">163</span>        LOG.warn("{} is true, but {} is 
not set", STATUS_PUBLISHED, STATUS_LISTENER_CLASS);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      } else {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        try {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          listener = new 
ClusterStatusListener(new ClusterStatusListener.DeadServerHandler() {<a 
name="line.166"></a>
+<span class="sourceLineNo">167</span>            @Override<a 
name="line.167"></a>
+<span class="sourceLineNo">168</span>            public void 
newDead(ServerName sn) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>              locator.clearCache(sn);<a 
name="line.169"></a>
+<span class="sourceLineNo">170</span>              
rpcClient.cancelConnections(sn);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>            }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>          }, conf, listenerClass);<a 
name="line.172"></a>
+<span class="sourceLineNo">173</span>        } catch (IOException e) {<a 
name="line.173"></a>
+<span class="sourceLineNo">174</span>          LOG.warn("Failed create of 
ClusterStatusListener, not a critical, ignoring...", e);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    this.clusterStatusListener = 
listener;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  private void spawnRenewalChore(final 
UserGroupInformation user) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    ChoreService service = 
getChoreService();<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    
service.scheduleChore(AuthUtil.getAuthRenewalChore(user));<a 
name="line.183"></a>
+<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>  /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * If choreService has not been created 
yet, create the ChoreService.<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * @return ChoreService<a 
name="line.188"></a>
+<span class="sourceLineNo">189</span>   */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  synchronized ChoreService 
getChoreService() {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    if (isClosed()) {<a 
name="line.191"></a>
+<span class="sourceLineNo">192</span>      throw new 
IllegalStateException("connection is already closed");<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    if (choreService == null) {<a 
name="line.194"></a>
+<span class="sourceLineNo">195</span>      choreService = new 
ChoreService("AsyncConn Chore Service");<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    return choreService;<a 
name="line.197"></a>
+<span class="sourceLineNo">198</span>  }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>  @Override<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  public Configuration getConfiguration() 
{<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    return conf;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>  }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>  @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  public boolean isClosed() {<a 
name="line.206"></a>
+<span class="sourceLineNo">207</span>    return closed.get();<a 
name="line.207"></a>
+<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  @Override<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  public void close() {<a 
name="line.211"></a>
+<span class="sourceLineNo">212</span>    TraceUtil.trace(() -&gt; {<a 
name="line.212"></a>
+<span class="sourceLineNo">213</span>      if (!closed.compareAndSet(false, 
true)) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        return;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      LOG.info("Connection has been 
closed by {}.", Thread.currentThread().getName());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      if (LOG.isDebugEnabled()) {<a 
name="line.217"></a>
+<span class="sourceLineNo">218</span>        
logCallStack(Thread.currentThread().getStackTrace());<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      
IOUtils.closeQuietly(clusterStatusListener,<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        e -&gt; LOG.warn("failed to close 
clusterStatusListener", e));<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      IOUtils.closeQuietly(rpcClient, e 
-&gt; LOG.warn("failed to close rpcClient", e));<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      IOUtils.closeQuietly(registry, e 
-&gt; LOG.warn("failed to close registry", e));<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      synchronized (this) {<a 
name="line.224"></a>
+<span class="sourceLineNo">225</span>        if (choreService != null) {<a 
name="line.225"></a>
+<span class="sourceLineNo">226</span>          choreService.shutdown();<a 
name="line.226"></a>
+<span class="sourceLineNo">227</span>          choreService = null;<a 
name="line.227"></a>
+<span class="sourceLineNo">228</span>        }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      
metrics.ifPresent(MetricsConnection::shutdown);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      ConnectionOverAsyncConnection c = 
this.conn;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      if (c != null) {<a 
name="line.232"></a>
+<span class="sourceLineNo">233</span>        c.closePool();<a 
name="line.233"></a>
+<span class="sourceLineNo">234</span>      }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    }, "AsyncConnection.close");<a 
name="line.235"></a>
+<span class="sourceLineNo">236</span>  }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>  private void 
logCallStack(StackTraceElement[] stackTraceElements) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    StringBuilder stackBuilder = new 
StringBuilder("Call stack:");<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    for (StackTraceElement element : 
stackTraceElements) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      stackBuilder.append("\n    at ");<a 
name="line.241"></a>
+<span class="sourceLineNo">242</span>      stackBuilder.append(element);<a 
name="line.242"></a>
+<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    stackBuilder.append("\n");<a 
name="line.244"></a>
+<span class="sourceLineNo">245</span>    LOG.debug(stackBuilder.toString());<a 
name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @Override<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  public AsyncTableRegionLocator 
getRegionLocator(TableName tableName) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    return new 
AsyncTableRegionLocatorImpl(tableName, this);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>  }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>  @Override<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  public void clearRegionLocationCache() 
{<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    locator.clearCache();<a 
name="line.255"></a>
+<span class="sourceLineNo">256</span>  }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>  // we will override this method for 
testing retry caller, so do not remove this method.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>  AsyncRegionLocator getLocator() {<a 
name="line.259"></a>
+<span class="sourceLineNo">260</span>    return locator;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>  // ditto<a name="line.263"></a>
+<span class="sourceLineNo">264</span>  NonceGenerator getNonceGenerator() {<a 
name="line.264"></a>
+<span class="sourceLineNo">265</span>    return nonceGenerator;<a 
name="line.265"></a>
+<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  private ClientService.Interface 
createRegionServerStub(ServerName serverName) throws IOException {<a 
name="line.268"></a>
+<span class="sourceLineNo">269</span>    return 
ClientService.newStub(rpcClient.createRpcChannel(serverName, user, 
rpcTimeout));<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  }<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>  ClientService.Interface 
getRegionServerStub(ServerName serverName) throws IOException {<a 
name="line.272"></a>
+<span class="sourceLineNo">273</span>    return 
ConcurrentMapUtils.computeIfAbsentEx(rsStubs,<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      
getStubKey(ClientService.getDescriptor().getName(), serverName),<a 
name="line.274"></a>
+<span class="sourceLineNo">275</span>      () -&gt; 
createRegionServerStub(serverName));<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  private MasterService.Interface 
createMasterStub(ServerName serverName) throws IOException {<a 
name="line.278"></a>
+<span class="sourceLineNo">279</span>    return 
MasterService.newStub(rpcClient.createRpcChannel(serverName, user, 
rpcTimeout));<a name="line.279"></a>
+<span class="sourceLineNo">280</span>  }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private AdminService.Interface 
createAdminServerStub(ServerName serverName) throws IOException {<a 
name="line.282"></a>
+<span class="sourceLineNo">283</span>    return 
AdminService.newStub(rpcClient.createRpcChannel(serverName, user, 
rpcTimeout));<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  AdminService.Interface 
getAdminStub(ServerName serverName) throws IOException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    return 
ConcurrentMapUtils.computeIfAbsentEx(adminStubs,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      
getStubKey(AdminService.getDescriptor().getName(), serverName),<a 
name="line.288"></a>
+<span class="sourceLineNo">289</span>      () -&gt; 
createAdminServerStub(serverName));<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>  
CompletableFuture&lt;MasterService.Interface&gt; getMasterStub() {<a 
name="line.292"></a>
+<span class="sourceLineNo">293</span>    return 
ConnectionUtils.getOrFetch(masterStub, masterStubMakeFuture, false, () -&gt; 
{<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      
CompletableFuture&lt;MasterService.Interface&gt; future = new 
CompletableFuture&lt;&gt;();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      
addListener(registry.getActiveMaster(), (addr, error) -&gt; {<a 
name="line.295"></a>
+<span class="sourceLineNo">296</span>        if (error != null) {<a 
name="line.296"></a>
+<span class="sourceLineNo">297</span>          
future.completeExceptionally(error);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        } else if (addr == null) {<a 
name="line.298"></a>
+<span class="sourceLineNo">299</span>          
future.completeExceptionally(new MasterNotRunningException(<a 
name="line.299"></a>
+<span class="sourceLineNo">300</span>            "ZooKeeper available but no 
active master location found"));<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        } else {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>          LOG.debug("The fetched master 
address is {}", addr);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>          try {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>            
future.complete(createMasterStub(addr));<a name="line.304"></a>
+<span class="sourceLineNo">305</span>          } catch (IOException e) {<a 
name="line.305"></a>
+<span class="sourceLineNo">306</span>            
future.completeExceptionally(e);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>          }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>      });<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      return future;<a 
name="line.311"></a>
+<span class="sourceLineNo">312</span>    }, stub -&gt; true, "master stub");<a 
name="line.312"></a>
+<span class="sourceLineNo">313</span>  }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>  String getClusterId() {<a 
name="line.315"></a>
+<span class="sourceLineNo">316</span>    try {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      return 
registry.getClusterId().get();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    } catch (InterruptedException | 
ExecutionException e) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      LOG.error("Error fetching cluster 
ID: ", e);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    }<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    return null;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>  void 
clearMasterStubCache(MasterService.Interface stub) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    masterStub.compareAndSet(stub, 
null);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>  Optional&lt;ServerStatisticTracker&gt; 
getStatisticsTracker() {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    return stats;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>  ClientBackoffPolicy getBackoffPolicy() 
{<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    return backoffPolicy;<a 
name="line.333"></a>
+<span class="sourceLineNo">334</span>  }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>  @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  public 
AsyncTableBuilder&lt;AdvancedScanResultConsumer&gt; getTableBuilder(TableName 
tableName) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    return new 
AsyncTableBuilderBase&lt;AdvancedScanResultConsumer&gt;(tableName, connConf) 
{<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>      @Override<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      public 
AsyncTable&lt;AdvancedScanResultConsumer&gt; build() {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        return new 
RawAsyncTableImpl(AsyncConnectionImpl.this, RETRY_TIMER, this);<a 
name="line.342"></a>
+<span class="sourceLineNo">343</span>      }<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    };<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  public 
AsyncTableBuilder&lt;ScanResultConsumer&gt; getTableBuilder(TableName 
tableName,<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    ExecutorService pool) {<a 
name="line.349"></a>
+<span class="sourceLineNo">350</span>    return new 
AsyncTableBuilderBase&lt;ScanResultConsumer&gt;(tableName, connConf) {<a 
name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>      @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      public 
AsyncTable&lt;ScanResultConsumer&gt; build() {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        RawAsyncTableImpl rawTable =<a 
name="line.354"></a>
+<span class="sourceLineNo">355</span>          new 
RawAsyncTableImpl(AsyncConnectionImpl.this, RETRY_TIMER, this);<a 
name="line.355"></a>
+<span class="sourceLineNo">356</span>        return new 
AsyncTableImpl(AsyncConnectionImpl.this, rawTable, pool);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    };<a name="line.358"></a>
+<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>  @Override<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  public AsyncAdminBuilder 
getAdminBuilder() {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    return new 
AsyncAdminBuilderBase(connConf) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      @Override<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      public AsyncAdmin build() {<a 
name="line.365"></a>
+<span class="sourceLineNo">366</span>        return new 
RawAsyncHBaseAdmin(AsyncConnectionImpl.this, RETRY_TIMER, this);<a 
name="line.366"></a>
+<span class="sourceLineNo">367</span>      }<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    };<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
+<span class="sourceLineNo">372</span>  public AsyncAdminBuilder 
getAdminBuilder(ExecutorService pool) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    return new 
AsyncAdminBuilderBase(connConf) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      @Override<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      public AsyncAdmin build() {<a 
name="line.375"></a>
+<span class="sourceLineNo">376</span>        RawAsyncHBaseAdmin rawAdmin =<a 
name="line.376"></a>
+<span class="sourceLineNo">377</span>          new 
RawAsyncHBaseAdmin(AsyncConnectionImpl.this, RETRY_TIMER, this);<a 
name="line.377"></a>
+<span class="sourceLineNo">378</span>        return new 
AsyncHBaseAdmin(rawAdmin, pool);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      }<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    };<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>  @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>  public AsyncBufferedMutatorBuilder 
getBufferedMutatorBuilder(TableName tableName) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    return new 
AsyncBufferedMutatorBuilderImpl(connConf, getTableBuilder(tableName), 
RETRY_TIMER);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
+<span class="sourceLineNo">387</span><a name="line.387"></a>
+<span class="sourceLineNo">388</span>  @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  public AsyncBufferedMutatorBuilder 
getBufferedMutatorBuilder(TableName tableName,<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    ExecutorService pool) {<a 
name="line.390"></a>
+<span class="sourceLineNo">391</span>    return new 
AsyncBufferedMutatorBuilderImpl(connConf, getTableBuilder(tableName, pool),<a 
name="line.391"></a>
+<span class="sourceLineNo">392</span>      RETRY_TIMER);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>  @Override<a name="line.395"></a>
+<span class="sourceLineNo">396</span>  public Connection toConnection() {<a 
name="line.396"></a>
+<span class="sourceLineNo">397</span>    ConnectionOverAsyncConnection c = 
this.conn;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    if (c != null) {<a 
name="line.398"></a>
+<span class="sourceLineNo">399</span>      return c;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    synchronized (this) {<a 
name="line.401"></a>
+<span class="sourceLineNo">402</span>      c = this.conn;<a 
name="line.402"></a>
+<span class="sourceLineNo">403</span>      if (c != null) {<a 
name="line.403"></a>
+<span class="sourceLineNo">404</span>        return c;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      }<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      c = new 
ConnectionOverAsyncConnection(this);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      this.conn = c;<a 
name="line.407"></a>
+<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    return c;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  private Hbck getHbckInternal(ServerName 
masterServer) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    
Span.current().setAttribute(TraceUtil.SERVER_NAME_KEY, 
masterServer.getServerName());<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    // we will not create a new 
connection when creating a new protobuf stub, and for hbck there<a 
name="line.414"></a>
+<span class="sourceLineNo">415</span>    // will be no performance 
consideration, so for simplification we will create a new stub every<a 
name="line.415"></a>
+<span class="sourceLineNo">416</span>    // time instead of caching the stub 
here.<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    return new 
HBaseHbck(MasterProtos.HbckService.newBlockingStub(<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      
rpcClient.createBlockingRpcChannel(masterServer, user, rpcTimeout)), 
rpcControllerFactory);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>  }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>  @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  public CompletableFuture&lt;Hbck&gt; 
getHbck() {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    return TraceUtil.tracedFuture(() 
-&gt; {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      CompletableFuture&lt;Hbck&gt; 
future = new CompletableFuture&lt;&gt;();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      
addListener(registry.getActiveMaster(), (sn, error) -&gt; {<a 
name="line.425"></a>
+<span class="sourceLineNo">426</span>        if (error != null) {<a 
name="line.426"></a>
+<span class="sourceLineNo">427</span>          
future.completeExceptionally(error);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        } else {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>          
future.complete(getHbckInternal(sn));<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      });<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      return future;<a 
name="line.432"></a>
+<span class="sourceLineNo">433</span>    }, "AsyncConnection.getHbck");<a 
name="line.433"></a>
+<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>  @Override<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  public Hbck getHbck(ServerName 
masterServer) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    return TraceUtil.trace(new 
Supplier&lt;Hbck&gt;() {<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>      @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      public Hbck get() {<a 
name="line.441"></a>
+<span class="sourceLineNo">442</span>        return 
getHbckInternal(masterServer);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      }<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    }, "AsyncConnection.getHbck");<a 
name="line.444"></a>
+<span class="sourceLineNo">445</span>  }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>  Optional&lt;MetricsConnection&gt; 
getConnectionMetrics() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    return metrics;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>  }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>}<a name="line.450"></a>
 
 
 
diff --git a/downloads.html b/downloads.html
index e2218b8..0c37460 100644
--- a/downloads.html
+++ b/downloads.html
@@ -435,7 +435,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/export_control.html b/export_control.html
index c4d31b8..ed8c4eb 100644
--- a/export_control.html
+++ b/export_control.html
@@ -197,7 +197,7 @@ for more details.</p>
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/index.html b/index.html
index 7c2b42d..427ba99 100644
--- a/index.html
+++ b/index.html
@@ -275,7 +275,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/issue-tracking.html b/issue-tracking.html
index bb92836..f23798a 100644
--- a/issue-tracking.html
+++ b/issue-tracking.html
@@ -169,7 +169,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/mail-lists.html b/mail-lists.html
index b8a407f..cf458e1 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -215,7 +215,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/metrics.html b/metrics.html
index 562552d..583bb6b 100644
--- a/metrics.html
+++ b/metrics.html
@@ -325,7 +325,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS 
-Dcom.sun.management.jmxrem
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/old_news.html b/old_news.html
index f4e07b3..bd5be11 100644
--- a/old_news.html
+++ b/old_news.html
@@ -316,7 +316,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/plugin-management.html b/plugin-management.html
index db83419..8371af3 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -321,7 +321,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/plugins.html b/plugins.html
index 95ba119..4d36cd9 100644
--- a/plugins.html
+++ b/plugins.html
@@ -248,7 +248,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/poweredbyhbase.html b/poweredbyhbase.html
index f3bb6b3..2dbde6a 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -650,7 +650,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/project-info.html b/project-info.html
index 025789a..73825ea 100644
--- a/project-info.html
+++ b/project-info.html
@@ -210,7 +210,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/project-reports.html b/project-reports.html
index a705797..6fe28da 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -186,7 +186,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/project-summary.html b/project-summary.html
index fb047a0..4d8a24d 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -212,7 +212,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/pseudo-distributed.html b/pseudo-distributed.html
index d90b2fc..691714f 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -174,7 +174,7 @@ Running Apache HBase (TM) in pseudo-distributed mode
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/replication.html b/replication.html
index 41b9e5d..378ed2f 100644
--- a/replication.html
+++ b/replication.html
@@ -169,7 +169,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/resources.html b/resources.html
index c540159..095820b 100644
--- a/resources.html
+++ b/resources.html
@@ -197,7 +197,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/source-repository.html b/source-repository.html
index 722048c..f1a2385 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -180,7 +180,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/sponsors.html b/sponsors.html
index 91665cc..ff83129 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -199,7 +199,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/supportingprojects.html b/supportingprojects.html
index b89a1a1..0bf7c46 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -390,7 +390,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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/team-list.html b/team-list.html
index 3d214ea..767a391 100644
--- a/team-list.html
+++ b/team-list.html
@@ -731,7 +731,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-06-16</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>

Reply via email to