You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2021/06/16 20:20:05 UTC
[hbase-site] branch asf-site updated: Published site at
7466e08aec99b24d7317b9d760ae1f6933557d00.
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 <bu...@apache.org>
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 ©2007–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 ©2007–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>"2"</tt></li></ul></td>
-<td>526</td>
+<td>524</td>
<td><img src="images/icon_error_sml.gif" alt="" /> 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="" /> 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="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 14 has parse error. Details: mismatched input ':' expecting <EOF> 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="" /> 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 ©2007–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:private@hbase.apache.org">the priv
<div class="row">
<p>Copyright ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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> </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> </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> </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> </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><<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></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#adminSubs">adminSubs</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#adminStubs">adminStubs</a></span></code> </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 <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><<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> <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 <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><<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> <a href="../../../../../src-html/org/apache/hadoop/hbase [...]
+<h4>adminStubs</h4>
+<pre>private final <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><<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> <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 <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><org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.108">masterStub</a></pre>
+<pre>private final <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><org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface> <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 <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><<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><org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Int [...]
+<pre>private final <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><<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><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 <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><<a href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html" title="class in org.apache.hadoop.hbase.client">ServerStatisticTracker</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.113">stats</a></pre>
+<pre>private final <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><<a href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html" title="class in org.apache.hadoop.hbase.client">ServerStatisticTracker</a>> <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 <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 <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 <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 <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 <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 <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 <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><<a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.120">metrics</a></pre>
+<pre>private final <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><<a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a>> <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 <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 <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 <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 <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 <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.126">AsyncConnectionImpl</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.127">AsyncConnectionImpl</a>(org.apache.hadoop.conf.Configuration conf,
<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionRegistry.html" title="interface in org.apache.hadoop.hbase.client">ConnectionRegistry</a> 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> 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> 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.180">spawnRenewalChore</a>(org.apache.hadoop.security.UserGroupInformation user)</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.181">spawnRenewalChore</a>(org.apache.hadoop.security.UserGroupInformation 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> <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> <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 org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.200">getConfiguration</a>()</pre>
+<pre>public org.apache.hadoop.conf.Configuration <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: <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 boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.205">isClosed</a>()</pre>
+<pre>public boolean <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: <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.210">close</a>()</pre>
+<pre>public void <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> in interface <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 void <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>[] stackTraceElements)</pre>
+<pre>private void <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>[] 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 <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableRegionLocator.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableRegionLocator</a> <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> tableName)</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableRegionLocator.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableRegionLocator</a> <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> tableName)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.253">clearRegionLocationCache</a>()</pre>
+<pre>public void <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: <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> <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> <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> <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> <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 org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface <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> serverName)
+<pre>private org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface <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> 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 <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> serverName)
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.Interface <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> 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 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface <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> serverName)
+<pre>private org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface <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> 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 org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface <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> serverName)
+<pre>private org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface <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> 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 <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> serverName)
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface <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> 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><org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface> <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><org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface> <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> <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> <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 <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 stub)</pre>
+<pre>void <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 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><<a href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html" title="class in org.apache.hadoop.hbase.client">ServerStatisticTracker</a>> <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><<a href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html" title="class in org.apache.hadoop.hbase.client">ServerStatisticTracker</a>> <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> <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> <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 <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a><<a href="../../../../../org/apache/hadoop/hbase/client/AdvancedScanResultConsumer.html" title="interface in org.apache.hadoop.hbase.client">AdvancedScanResultConsumer</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.336">getTableBuilder</a>(<a href="../../../.. [...]
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a><<a href="../../../../../org/apache/hadoop/hbase/client/AdvancedScanResultConsumer.html" title="interface in org.apache.hadoop.hbase.client">AdvancedScanResultConsumer</a>> <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: <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 <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a><<a href="../../../../../org/apache/hadoop/hbase/client/ScanResultConsumer.html" title="interface in org.apache.hadoop.hbase.client">ScanResultConsumer</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.347">getTableBuilder</a>(<a href="../../../../../org/apache/h [...]
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a><<a href="../../../../../org/apache/hadoop/hbase/client/ScanResultConsumer.html" title="interface in org.apache.hadoop.hbase.client">ScanResultConsumer</a>> <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> pool)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdminBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdminBuilder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.361">getAdminBuilder</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdminBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdminBuilder</a> <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: <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 <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdminBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdminBuilder</a> <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> pool)</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdminBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdminBuilder</a> <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> pool)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncBufferedMutatorBuilder</a> <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> tableName)</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncBufferedMutatorBuilder</a> <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> tableName)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncBufferedMutatorBuilder</a> <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> tableName,
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncBufferedMutatorBuilder</a> <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> 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> pool)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.395">toConnection</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.396">toConnection</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface in org.apache.hadoop.hbase.client">Hbck</a> <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> masterServer)</pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface in org.apache.hadoop.hbase.client">Hbck</a> <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> 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 <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><<a href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface in org.apache.hadoop.hbase.client">Hbck</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#line.421">getHbck</a>()</pre>
+<pre>public <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><<a href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface in org.apache.hadoop.hbase.client">Hbck</a>> <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: <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 <a href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface in org.apache.hadoop.hbase.client">Hbck</a> <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> masterServer)</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Hbck.html" title="interface in org.apache.hadoop.hbase.client">Hbck</a> <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> masterServer)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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><<a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a>> <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><<a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a>> <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<String, ClientService.Interface> rsStubs = new ConcurrentHashMap<>();<a name="line.105"></a>
-<span class="sourceLineNo">106</span> private final ConcurrentMap<String, AdminService.Interface> adminSubs = new ConcurrentHashMap<>();<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span> private final AtomicReference<MasterService.Interface> masterStub = new AtomicReference<>();<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span> private final AtomicReference<CompletableFuture<MasterService.Interface>> masterStubMakeFuture =<a name="line.110"></a>
-<span class="sourceLineNo">111</span> new AtomicReference<>();<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span> private final Optional<ServerStatisticTracker> 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<MetricsConnection> 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(), () -> null, () -> 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<? extends ClusterStatusListener.Listener> 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(() -> {<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 -> LOG.warn("failed to close clusterStatusListener", e));<a name="line.220"></a>
-<span class="sourceLineNo">221</span> IOUtils.closeQuietly(rpcClient, e -> LOG.warn("failed to close rpcClient", e));<a name="line.221"></a>
-<span class="sourceLineNo">222</span> IOUtils.closeQuietly(registry, e -> 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> () -> 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> () -> 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<MasterService.Interface> getMasterStub() {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> return ConnectionUtils.getOrFetch(masterStub, masterStubMakeFuture, false, () -> {<a name="line.292"></a>
-<span class="sourceLineNo">293</span> CompletableFuture<MasterService.Interface> future = new CompletableFuture<>();<a name="line.293"></a>
-<span class="sourceLineNo">294</span> addListener(registry.getActiveMaster(), (addr, error) -> {<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 -> 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<ServerStatisticTracker> 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<AdvancedScanResultConsumer> getTableBuilder(TableName tableName) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span> return new AsyncTableBuilderBase<AdvancedScanResultConsumer>(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<AdvancedScanResultConsumer> 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<ScanResultConsumer> 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<ScanResultConsumer>(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<ScanResultConsumer> 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<Hbck> getHbck() {<a name="line.421"></a>
-<span class="sourceLineNo">422</span> return TraceUtil.tracedFuture(() -> {<a name="line.422"></a>
-<span class="sourceLineNo">423</span> CompletableFuture<Hbck> future = new CompletableFuture<>();<a name="line.423"></a>
-<span class="sourceLineNo">424</span> addListener(registry.getActiveMaster(), (sn, error) -> {<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<Hbck>() {<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<MetricsConnection> 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<String, AdminService.Interface> adminStubs =<a name="line.106"></a>
+<span class="sourceLineNo">107</span> new ConcurrentHashMap<>();<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span> private final AtomicReference<MasterService.Interface> masterStub = new AtomicReference<>();<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> private final AtomicReference<CompletableFuture<MasterService.Interface>> masterStubMakeFuture =<a name="line.111"></a>
+<span class="sourceLineNo">112</span> new AtomicReference<>();<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span> private final Optional<ServerStatisticTracker> 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<MetricsConnection> 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(), () -> null, () -> 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<? extends ClusterStatusListener.Listener> 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(() -> {<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 -> LOG.warn("failed to close clusterStatusListener", e));<a name="line.221"></a>
+<span class="sourceLineNo">222</span> IOUtils.closeQuietly(rpcClient, e -> LOG.warn("failed to close rpcClient", e));<a name="line.222"></a>
+<span class="sourceLineNo">223</span> IOUtils.closeQuietly(registry, e -> 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> () -> 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> () -> 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<MasterService.Interface> getMasterStub() {<a name="line.292"></a>
+<span class="sourceLineNo">293</span> return ConnectionUtils.getOrFetch(masterStub, masterStubMakeFuture, false, () -> {<a name="line.293"></a>
+<span class="sourceLineNo">294</span> CompletableFuture<MasterService.Interface> future = new CompletableFuture<>();<a name="line.294"></a>
+<span class="sourceLineNo">295</span> addListener(registry.getActiveMaster(), (addr, error) -> {<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 -> 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<ServerStatisticTracker> 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<AdvancedScanResultConsumer> getTableBuilder(TableName tableName) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span> return new AsyncTableBuilderBase<AdvancedScanResultConsumer>(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<AdvancedScanResultConsumer> 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<ScanResultConsumer> 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<ScanResultConsumer>(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<ScanResultConsumer> 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<Hbck> getHbck() {<a name="line.422"></a>
+<span class="sourceLineNo">423</span> return TraceUtil.tracedFuture(() -> {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> CompletableFuture<Hbck> future = new CompletableFuture<>();<a name="line.424"></a>
+<span class="sourceLineNo">425</span> addListener(registry.getActiveMaster(), (sn, error) -> {<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<Hbck>() {<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<MetricsConnection> 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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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="$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
<div class="row">
<p>Copyright ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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 ©2007–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>