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 2022/11/10 14:42:40 UTC

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

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 2f84330e51b Published site at da997384a4303aceff993b84e604c617608f836e.
2f84330e51b is described below

commit 2f84330e51bc863a25f3ea224d6c61a7bf8ba7ac
Author: jenkins <bu...@apache.org>
AuthorDate: Thu Nov 10 14:42:27 2022 +0000

    Published site at da997384a4303aceff993b84e604c617608f836e.
---
 acid-semantics.html                                |    2 +-
 apache_hbase_reference_guide.pdf                   |    4 +-
 .../apache/hadoop/hbase/rest/client/Client.html    |   86 +-
 .../apache/hadoop/hbase/rest/client/Client.html    | 1533 ++++++++++----------
 book.html                                          |    2 +-
 bulk-loads.html                                    |    2 +-
 checkstyle-aggregate.html                          | 1226 ++++++++--------
 checkstyle.rss                                     |    4 +-
 coc.html                                           |    2 +-
 dependencies.html                                  |    2 +-
 dependency-convergence.html                        |    2 +-
 dependency-info.html                               |    2 +-
 dependency-management.html                         |    2 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |    4 +-
 .../apache/hadoop/hbase/chaos/package-tree.html    |    2 +-
 .../apache/hadoop/hbase/client/package-tree.html   |   22 +-
 .../apache/hadoop/hbase/executor/package-tree.html |    2 +-
 .../apache/hadoop/hbase/filter/package-tree.html   |    6 +-
 .../org/apache/hadoop/hbase/http/package-tree.html |    2 +-
 .../hadoop/hbase/io/crypto/tls/package-tree.html   |    2 +-
 .../hadoop/hbase/io/encoding/package-tree.html     |    2 +-
 .../apache/hadoop/hbase/io/hfile/package-tree.html |    4 +-
 .../org/apache/hadoop/hbase/ipc/package-tree.html  |    4 +-
 .../hadoop/hbase/mapreduce/package-tree.html       |    4 +-
 .../hadoop/hbase/master/balancer/package-tree.html |    2 +-
 .../apache/hadoop/hbase/master/package-tree.html   |    4 +-
 .../hbase/master/procedure/package-tree.html       |    2 +-
 .../hadoop/hbase/monitoring/package-tree.html      |    2 +-
 .../org/apache/hadoop/hbase/package-tree.html      |   24 +-
 .../hadoop/hbase/procedure2/package-tree.html      |    2 +-
 .../apache/hadoop/hbase/quotas/package-tree.html   |    4 +-
 .../hadoop/hbase/regionserver/package-tree.html    |   20 +-
 .../regionserver/querymatcher/package-tree.html    |    2 +-
 .../storefiletracker/package-tree.html             |    2 +-
 .../hbase/regionserver/wal/package-tree.html       |    6 +-
 .../hadoop/hbase/replication/package-tree.html     |    2 +-
 .../replication/regionserver/package-tree.html     |    2 +-
 ...nt.ClientTrustStoreInitializationException.html |    4 +-
 .../apache/hadoop/hbase/rest/client/Client.html    |  114 +-
 .../hadoop/hbase/security/access/package-tree.html |    4 +-
 .../apache/hadoop/hbase/security/package-tree.html |    4 +-
 .../apache/hadoop/hbase/thrift/package-tree.html   |    2 +-
 .../apache/hadoop/hbase/trace/package-tree.html    |    2 +-
 .../org/apache/hadoop/hbase/util/package-tree.html |   10 +-
 ...nt.ClientTrustStoreInitializationException.html | 1533 ++++++++++----------
 .../apache/hadoop/hbase/rest/client/Client.html    | 1533 ++++++++++----------
 downloads.html                                     |    2 +-
 export_control.html                                |    2 +-
 index.html                                         |    2 +-
 issue-management.html                              |    2 +-
 licenses.html                                      |    2 +-
 mailing-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 +-
 pseudo-distributed.html                            |    2 +-
 replication.html                                   |    2 +-
 resources.html                                     |    2 +-
 scm.html                                           |    2 +-
 sponsors.html                                      |    2 +-
 summary.html                                       |    2 +-
 supportingprojects.html                            |    2 +-
 team.html                                          |    2 +-
 67 files changed, 3124 insertions(+), 3121 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index 20a835d49c1..7cb18a99c08 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -464,7 +464,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-09</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-10</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 1a02bbbf6ca..cddec35bb14 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 2.0.6, based on Prawn 2.4.0)
 /Producer (Apache HBase Team)
-/ModDate (D:20221109142938+00'00')
-/CreationDate (D:20221109144041+00'00')
+/ModDate (D:20221110142939+00'00')
+/CreationDate (D:20221110144010+00'00')
 >>
 endobj
 2 0 obj
diff --git a/apidocs/org/apache/hadoop/hbase/rest/client/Client.html b/apidocs/org/apache/hadoop/hbase/rest/client/Client.html
index 43781830eab..b12ad716176 100644
--- a/apidocs/org/apache/hadoop/hbase/rest/client/Client.html
+++ b/apidocs/org/apache/hadoop/hbase/rest/client/Client.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.73">Client</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.75">Client</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">A wrapper around HttpClient which provides some useful function and semantics for interacting
  with the REST gateway.</div>
@@ -503,7 +503,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EMPTY_HEADER_ARRAY</h4>
-<pre>public static final&nbsp;org.apache.http.Header[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.74">EMPTY_HEADER_ARRAY</a></pre>
+<pre>public static final&nbsp;org.apache.http.Header[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.76">EMPTY_HEADER_ARRAY</a></pre>
 </li>
 </ul>
 </li>
@@ -520,7 +520,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.94">Client</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.96">Client</a>()</pre>
 <div class="block">Default Constructor</div>
 </li>
 </ul>
@@ -530,7 +530,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.141">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.143">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster)</pre>
 <div class="block">Constructor</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -544,7 +544,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.150">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.152">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
               boolean&nbsp;sslEnabled)</pre>
 <div class="block">Constructor</div>
 <dl>
@@ -560,7 +560,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.160">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.162">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
               org.apache.hadoop.conf.Configuration&nbsp;conf,
               boolean&nbsp;sslEnabled)</pre>
 <div class="block">Constructor</div>
@@ -578,7 +578,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.172">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.174">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;trustStorePath,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;trustStorePassword,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;trustStoreType)</pre>
@@ -600,7 +600,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.186">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.188">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
               org.apache.hadoop.conf.Configuration&nbsp;conf,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;trustStorePath,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;trustStorePassword,
@@ -632,7 +632,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.212">shutdown</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.214">shutdown</a>()</pre>
 <div class="block">Shut down the client. Close any open persistent connections.</div>
 </li>
 </ul>
@@ -642,7 +642,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getHttpClient</h4>
-<pre>public&nbsp;org.apache.http.client.HttpClient&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.216">getHttpClient</a>()</pre>
+<pre>public&nbsp;org.apache.http.client.HttpClient&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.218">getHttpClient</a>()</pre>
 <div class="block">Returns the wrapped HttpClient</div>
 </li>
 </ul>
@@ -652,7 +652,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>addExtraHeader</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.224">addExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.226">addExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
 <div class="block">Add extra headers. These extra headers will be applied to all http methods before they are
  removed. If any header is not used any more, client needs to remove it explicitly.</div>
@@ -664,7 +664,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getExtraHeader</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.231">getExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.233">getExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Get an extra header value.</div>
 </li>
 </ul>
@@ -674,7 +674,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getExtraHeaders</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apa [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apa [...]
 <div class="block">Get all extra headers (read-only).</div>
 </li>
 </ul>
@@ -684,7 +684,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>removeExtraHeader</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.245">removeExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.247">removeExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Remove an extra header.</div>
 </li>
 </ul>
@@ -694,7 +694,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>executePathOnly</h4>
-<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.260">executePathOnly</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.262">executePathOnly</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                                                     org.apache.http.client.methods.HttpUriRequest&nbsp;method,
                                                     org.apache.http.Header[]&nbsp;headers,
                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
@@ -722,7 +722,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>executeURI</h4>
-<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.314">executeURI</a>(org.apache.http.client.methods.HttpUriRequest&nbsp;method,
+<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.316">executeURI</a>(org.apache.http.client.methods.HttpUriRequest&nbsp;method,
                                                org.apache.http.Header[]&nbsp;headers,
                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri)
                                         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>
@@ -745,7 +745,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>execute</h4>
-<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.353">execute</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.355">execute</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                                             org.apache.http.client.methods.HttpUriRequest&nbsp;method,
                                             org.apache.http.Header[]&nbsp;headers,
                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
@@ -772,7 +772,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getCluster</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.396">getCluster</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.398">getCluster</a>()</pre>
 <div class="block">Returns the cluster definition</div>
 </li>
 </ul>
@@ -782,7 +782,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setCluster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.403">setCluster</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.405">setCluster</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>cluster</code> - the cluster definition</dd>
@@ -795,7 +795,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>head</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.412">head</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.414">head</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a HEAD request</div>
 <dl>
@@ -814,7 +814,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>head</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.423">head</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.425">head</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      org.apache.http.Header[]&nbsp;headers)
               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>
@@ -837,7 +837,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.438">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.440">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a GET request</div>
 <dl>
@@ -856,7 +856,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.448">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.450">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a GET request</div>
@@ -877,7 +877,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.458">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.460">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;accept)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a GET request</div>
@@ -898,7 +898,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.469">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.471">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;accept)
              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>
@@ -921,7 +921,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.481">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.483">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     org.apache.http.Header[]&nbsp;headers)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a GET request</div>
@@ -965,7 +965,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.527">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;c,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.530">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;c,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     org.apache.http.Header[]&nbsp;headers)
              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>
@@ -988,7 +988,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.544">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.547">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                     byte[]&nbsp;content)
              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>
@@ -1011,7 +1011,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.556">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.559">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                     byte[]&nbsp;content,
                     org.apache.http.Header&nbsp;extraHdr)
@@ -1036,7 +1036,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.570">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.573">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                     byte[]&nbsp;content)
@@ -1061,7 +1061,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.587">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.590">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                     byte[]&nbsp;content,
@@ -1088,7 +1088,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.605">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.608">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     org.apache.http.Header[]&nbsp;headers,
                     byte[]&nbsp;content)
              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>
@@ -1111,7 +1111,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.617">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.620">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     org.apache.http.Header[]&nbsp;headers,
                     byte[]&nbsp;content)
@@ -1136,7 +1136,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.638">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.641">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                      byte[]&nbsp;content)
               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>
@@ -1159,7 +1159,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.650">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.653">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                      byte[]&nbsp;content,
                      org.apache.http.Header&nbsp;extraHdr)
@@ -1184,7 +1184,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.664">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.667">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                      byte[]&nbsp;content)
@@ -1209,7 +1209,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.681">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.684">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                      byte[]&nbsp;content,
@@ -1236,7 +1236,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.699">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.702">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      org.apache.http.Header[]&nbsp;headers,
                      byte[]&nbsp;content)
               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>
@@ -1259,7 +1259,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.711">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.714">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      org.apache.http.Header[]&nbsp;headers,
                      byte[]&nbsp;content)
@@ -1284,7 +1284,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.730">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.733">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a DELETE request</div>
 <dl>
@@ -1303,7 +1303,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.740">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.743">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                        org.apache.http.Header&nbsp;extraHdr)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a DELETE request</div>
@@ -1324,7 +1324,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.751">delete</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.754">delete</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a DELETE request</div>
@@ -1345,7 +1345,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.770">delete</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.773">delete</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                        org.apache.http.Header&nbsp;extraHdr)
                 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>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.html b/apidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.html
index 0bb3285abee..16b6ce3bea6 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.html
@@ -27,774 +27,777 @@
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import java.io.BufferedInputStream;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.ByteArrayInputStream;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.io.ByteArrayOutputStream;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.io.File;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.io.IOException;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.io.InputStream;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.net.URI;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.net.URISyntaxException;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.net.URL;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.nio.file.Files;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.security.KeyManagementException;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.security.KeyStore;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.security.KeyStoreException;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.security.NoSuchAlgorithmException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.security.cert.CertificateException;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.Collections;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.Optional;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import javax.net.ssl.SSLContext;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.conf.Configuration;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.rest.Constants;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.security.authentication.client.AuthenticatedURL;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.security.authentication.client.AuthenticationException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.security.authentication.client.KerberosAuthenticator;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.http.Header;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.http.HttpResponse;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.http.HttpStatus;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.http.client.HttpClient;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.http.client.config.RequestConfig;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.http.client.methods.HttpDelete;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.http.client.methods.HttpGet;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.http.client.methods.HttpHead;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.http.client.methods.HttpPost;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.http.client.methods.HttpPut;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.http.client.methods.HttpUriRequest;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.http.entity.InputStreamEntity;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.http.impl.client.HttpClientBuilder;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.http.impl.client.HttpClients;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.http.message.BasicHeader;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.http.ssl.SSLContexts;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.http.util.EntityUtils;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.slf4j.Logger;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.slf4j.LoggerFactory;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>/**<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * A wrapper around HttpClient which provides some useful function and semantics for interacting<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * with the REST gateway.<a name="line.70"></a>
-<span class="sourceLineNo">071</span> */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>@InterfaceAudience.Public<a name="line.72"></a>
-<span class="sourceLineNo">073</span>public class Client {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public static final Header[] EMPTY_HEADER_ARRAY = new Header[0];<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final Logger LOG = LoggerFactory.getLogger(Client.class);<a name="line.76"></a>
+<span class="sourceLineNo">022</span>import java.io.File;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.io.IOException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.io.InputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.net.URI;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.net.URISyntaxException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.net.URL;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.nio.file.Files;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.security.KeyManagementException;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.security.KeyStore;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.security.KeyStoreException;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.NoSuchAlgorithmException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.security.cert.CertificateException;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.Map;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Optional;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import javax.net.ssl.SSLContext;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.conf.Configuration;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.rest.Constants;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.security.authentication.client.AuthenticatedURL;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.security.authentication.client.AuthenticationException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.security.authentication.client.KerberosAuthenticator;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.http.Header;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.http.HttpResponse;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.http.HttpStatus;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.http.client.HttpClient;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.http.client.config.RequestConfig;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.http.client.methods.HttpDelete;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.http.client.methods.HttpGet;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.http.client.methods.HttpHead;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.http.client.methods.HttpPost;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.http.client.methods.HttpPut;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.http.client.methods.HttpUriRequest;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.http.entity.InputStreamEntity;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.http.impl.client.HttpClientBuilder;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.http.impl.client.HttpClients;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.http.message.BasicHeader;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.http.ssl.SSLContexts;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.http.util.EntityUtils;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.slf4j.Logger;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.slf4j.LoggerFactory;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hbase.thirdparty.com.google.common.io.Closeables;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>/**<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * A wrapper around HttpClient which provides some useful function and semantics for interacting<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * with the REST gateway.<a name="line.72"></a>
+<span class="sourceLineNo">073</span> */<a name="line.73"></a>
+<span class="sourceLineNo">074</span>@InterfaceAudience.Public<a name="line.74"></a>
+<span class="sourceLineNo">075</span>public class Client {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  public static final Header[] EMPTY_HEADER_ARRAY = new Header[0];<a name="line.76"></a>
 <span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private HttpClient httpClient;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private Cluster cluster;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private Configuration conf;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private boolean sslEnabled;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private HttpResponse resp;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private HttpGet httpGet = null;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private Map&lt;String, String&gt; extraHeaders;<a name="line.85"></a>
+<span class="sourceLineNo">078</span>  private static final Logger LOG = LoggerFactory.getLogger(Client.class);<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private HttpClient httpClient;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private Cluster cluster;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private Configuration conf;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private boolean sslEnabled;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private HttpResponse resp;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private HttpGet httpGet = null;<a name="line.85"></a>
 <span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private static final String AUTH_COOKIE = "hadoop.auth";<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  private static final String AUTH_COOKIE_EQ = AUTH_COOKIE + "=";<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  private static final String COOKIE = "Cookie";<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  /**<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   * Default Constructor<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   */<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public Client() {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    this(null);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private void initialize(Cluster cluster, Configuration conf, boolean sslEnabled,<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    Optional&lt;KeyStore&gt; trustStore) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    this.cluster = cluster;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    this.conf = conf;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    this.sslEnabled = sslEnabled;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    extraHeaders = new ConcurrentHashMap&lt;&gt;();<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    String clspath = System.getProperty("java.class.path");<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    LOG.debug("classpath " + clspath);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    HttpClientBuilder httpClientBuilder = HttpClients.custom();<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>    int connTimeout = this.conf.getInt(Constants.REST_CLIENT_CONN_TIMEOUT,<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      Constants.DEFAULT_REST_CLIENT_CONN_TIMEOUT);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    int socketTimeout = this.conf.getInt(Constants.REST_CLIENT_SOCKET_TIMEOUT,<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      Constants.DEFAULT_REST_CLIENT_SOCKET_TIMEOUT);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connTimeout)<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      .setSocketTimeout(socketTimeout).setNormalizeUri(false) // URIs should not be normalized, see<a name="line.113"></a>
-<span class="sourceLineNo">114</span>                                                              // HBASE-26903<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      .build();<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    httpClientBuilder.setDefaultRequestConfig(requestConfig);<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    // Since HBASE-25267 we don't use the deprecated DefaultHttpClient anymore.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    // The new http client would decompress the gzip content automatically.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    // In order to keep the original behaviour of this public class, we disable<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    // automatic content compression.<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    httpClientBuilder.disableContentCompression();<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    if (sslEnabled &amp;&amp; trustStore.isPresent()) {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      try {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        SSLContext sslcontext =<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          SSLContexts.custom().loadTrustMaterial(trustStore.get(), null).build();<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        httpClientBuilder.setSSLContext(sslcontext);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      } catch (NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        throw new ClientTrustStoreInitializationException("Error while processing truststore", e);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      }<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>    this.httpClient = httpClientBuilder.build();<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  /**<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   * Constructor<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   * @param cluster the cluster definition<a name="line.139"></a>
-<span class="sourceLineNo">140</span>   */<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  public Client(Cluster cluster) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    this(cluster, false);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  /**<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   * Constructor<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * @param cluster    the cluster definition<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * @param sslEnabled enable SSL or not<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   */<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  public Client(Cluster cluster, boolean sslEnabled) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    initialize(cluster, HBaseConfiguration.create(), sslEnabled, Optional.empty());<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  /**<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   * Constructor<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @param cluster    the cluster definition<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * @param conf       Configuration<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * @param sslEnabled enable SSL or not<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   */<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  public Client(Cluster cluster, Configuration conf, boolean sslEnabled) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    initialize(cluster, conf, sslEnabled, Optional.empty());<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  }<a name="line.162"></a>
-<span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>  /**<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * @param cluster            the cluster definition<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * @param trustStorePassword password to use for custom trust store<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * @param trustStoreType     type of custom trust store<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   */<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public Client(Cluster cluster, String trustStorePath, Optional&lt;String&gt; trustStorePassword,<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    Optional&lt;String&gt; trustStoreType) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    this(cluster, HBaseConfiguration.create(), trustStorePath, trustStorePassword, trustStoreType);<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>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * @param cluster            the cluster definition<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * @param conf               Configuration<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * @param trustStorePassword password to use for custom trust store<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * @param trustStoreType     type of custom trust store<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  public Client(Cluster cluster, Configuration conf, String trustStorePath,<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Optional&lt;String&gt; trustStorePassword, Optional&lt;String&gt; trustStoreType) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    char[] password = trustStorePassword.map(String::toCharArray).orElse(null);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    String type = trustStoreType.orElse(KeyStore.getDefaultType());<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>    KeyStore trustStore;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    try {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      trustStore = KeyStore.getInstance(type);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    } catch (KeyStoreException e) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      throw new ClientTrustStoreInitializationException("Invalid trust store type: " + type, e);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    try (InputStream inputStream =<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      new BufferedInputStream(Files.newInputStream(new File(trustStorePath).toPath()))) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      trustStore.load(inputStream, password);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    } catch (CertificateException | NoSuchAlgorithmException | IOException e) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      throw new ClientTrustStoreInitializationException("Trust store load error: " + trustStorePath,<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        e);<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>    initialize(cluster, conf, true, Optional.of(trustStore));<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>  /**<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * Shut down the client. Close any open persistent connections.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  public void shutdown() {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  /** Returns the wrapped HttpClient */<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  public HttpClient getHttpClient() {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    return httpClient;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>  /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   * Add extra headers. These extra headers will be applied to all http methods before they are<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   * removed. If any header is not used any more, client needs to remove it explicitly.<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  public void addExtraHeader(final String name, final String value) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    extraHeaders.put(name, value);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<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>   * Get an extra header value.<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   */<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  public String getExtraHeader(final String name) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    return extraHeaders.get(name);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>  /**<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   * Get all extra headers (read-only).<a name="line.236"></a>
-<span class="sourceLineNo">237</span>   */<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  public Map&lt;String, String&gt; getExtraHeaders() {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    return Collections.unmodifiableMap(extraHeaders);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>  /**<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * Remove an extra header.<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   */<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  public void removeExtraHeader(final String name) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    extraHeaders.remove(name);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  /**<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   * Execute a transaction method given only the path. Will select at random one of the members of<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * the supplied cluster definition and iterate through the list until a transaction can be<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * successfully completed. The definition of success here is a complete HTTP transaction,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * irrespective of result code.<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * @param cluster the cluster definition<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * @param method  the transaction method<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * @param headers HTTP header values to send<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * @param path    the properly urlencoded path<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * @return the HTTP response code<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   */<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  public HttpResponse executePathOnly(Cluster cluster, HttpUriRequest method, Header[] headers,<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    String path) throws IOException {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    IOException lastException;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    if (cluster.nodes.size() &lt; 1) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      throw new IOException("Cluster is empty");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    int start = (int) Math.round((cluster.nodes.size() - 1) * Math.random());<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    int i = start;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    do {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      cluster.lastHost = cluster.nodes.get(i);<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      try {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        StringBuilder sb = new StringBuilder();<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        if (sslEnabled) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>          sb.append("https://");<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        } else {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          sb.append("http://");<a name="line.275"></a>
-<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        sb.append(cluster.lastHost);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        sb.append(path);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        URI uri = new URI(sb.toString());<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        if (method instanceof HttpPut) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          HttpPut put = new HttpPut(uri);<a name="line.281"></a>
-<span class="sourceLineNo">282</span>          put.setEntity(((HttpPut) method).getEntity());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          put.setHeaders(method.getAllHeaders());<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          method = put;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else if (method instanceof HttpGet) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          method = new HttpGet(uri);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        } else if (method instanceof HttpHead) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          method = new HttpHead(uri);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        } else if (method instanceof HttpDelete) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          method = new HttpDelete(uri);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        } else if (method instanceof HttpPost) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          HttpPost post = new HttpPost(uri);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>          post.setEntity(((HttpPost) method).getEntity());<a name="line.293"></a>
-<span class="sourceLineNo">294</span>          post.setHeaders(method.getAllHeaders());<a name="line.294"></a>
-<span class="sourceLineNo">295</span>          method = post;<a name="line.295"></a>
-<span class="sourceLineNo">296</span>        }<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        return executeURI(method, headers, uri.toString());<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      } catch (IOException e) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        lastException = e;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      } catch (URISyntaxException use) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        lastException = new IOException(use);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    } while (++i != start &amp;&amp; i &lt; cluster.nodes.size());<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    throw lastException;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<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>   * Execute a transaction method given a complete URI.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   * @param method  the transaction method<a name="line.309"></a>
-<span class="sourceLineNo">310</span>   * @param headers HTTP header values to send<a name="line.310"></a>
-<span class="sourceLineNo">311</span>   * @param uri     a properly urlencoded URI<a name="line.311"></a>
-<span class="sourceLineNo">312</span>   * @return the HTTP response code<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   */<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  public HttpResponse executeURI(HttpUriRequest method, Header[] headers, String uri)<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    // method.setURI(new URI(uri, true));<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    for (Map.Entry&lt;String, String&gt; e : extraHeaders.entrySet()) {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      method.addHeader(e.getKey(), e.getValue());<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    if (headers != null) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      for (Header header : headers) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        method.addHeader(header);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    long startTime = EnvironmentEdgeManager.currentTime();<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    if (resp != null) EntityUtils.consumeQuietly(resp.getEntity());<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    resp = httpClient.execute(method);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_UNAUTHORIZED) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      // Authentication error<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      LOG.debug("Performing negotiation with the server.");<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      negotiate(method, uri);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      resp = httpClient.execute(method);<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>    long endTime = EnvironmentEdgeManager.currentTime();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    if (LOG.isTraceEnabled()) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      LOG.trace(method.getMethod() + " " + uri + " " + resp.getStatusLine().getStatusCode() + " "<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        + resp.getStatusLine().getReasonPhrase() + " in " + (endTime - startTime) + " ms");<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    return resp;<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  }<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>   * Execute a transaction method. Will call either &lt;tt&gt;executePathOnly&lt;/tt&gt; or &lt;tt&gt;executeURI&lt;/tt&gt;<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * depending on whether a path only is supplied in 'path', or if a complete URI is passed instead,<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   * respectively.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   * @param cluster the cluster definition<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * @param method  the HTTP method<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * @param headers HTTP header values to send<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * @param path    the properly urlencoded path or URI<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   * @return the HTTP response code<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   */<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public HttpResponse execute(Cluster cluster, HttpUriRequest method, Header[] headers, String path)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    throws IOException {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    if (path.startsWith("/")) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      return executePathOnly(cluster, method, headers, path);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    return executeURI(method, headers, path);<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>  /**<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * Initiate client side Kerberos negotiation with the server.<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * @param method method to inject the authentication token into.<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   * @param uri    the String to parse as a URL.<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * @throws IOException if unknown protocol is found.<a name="line.365"></a>
-<span class="sourceLineNo">366</span>   */<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  private void negotiate(HttpUriRequest method, String uri) throws IOException {<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    try {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      AuthenticatedURL.Token token = new AuthenticatedURL.Token();<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      KerberosAuthenticator authenticator = new KerberosAuthenticator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      authenticator.authenticate(new URL(uri), token);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      // Inject the obtained negotiated token in the method cookie<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      injectToken(method, token);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    } catch (AuthenticationException e) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      LOG.error("Failed to negotiate with the server.", e);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      throw new IOException(e);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    }<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  }<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>  /**<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   * Helper method that injects an authentication token to send with the method.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   * @param method method to inject the authentication token into.<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * @param token  authentication token to inject.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private void injectToken(HttpUriRequest method, AuthenticatedURL.Token token) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    String t = token.toString();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    if (t != null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      if (!t.startsWith("\"")) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        t = "\"" + t + "\"";<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      method.addHeader(COOKIE, AUTH_COOKIE_EQ + t);<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><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  /** Returns the cluster definition */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public Cluster getCluster() {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    return cluster;<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>  /**<a name="line.400"></a>
-<span class="sourceLineNo">401</span>   * @param cluster the cluster definition<a name="line.401"></a>
-<span class="sourceLineNo">402</span>   */<a name="line.402"></a>
-<span class="sourceLineNo">403</span>  public void setCluster(Cluster cluster) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    this.cluster = cluster;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  }<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>  /**<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * Send a HEAD request<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   * @param path the path or URI<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @return a Response object with response detail<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  public Response head(String path) throws IOException {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    return head(cluster, path, null);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * Send a HEAD request<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @param cluster the cluster definition<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * @param path    the path or URI<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   * @param headers the HTTP headers to include in the request<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   * @return a Response object with response detail<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   */<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  public Response head(Cluster cluster, String path, Header[] headers) throws IOException {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    HttpHead method = new HttpHead(path);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    try {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      HttpResponse resp = execute(cluster, method, null, path);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      return new Response(resp.getStatusLine().getStatusCode(), resp.getAllHeaders(), null);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    } finally {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      method.releaseConnection();<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><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   * Send a GET request<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * @param path the path or URI<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * @return a Response object with response detail<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   */<a name="line.437"></a>
-<span class="sourceLineNo">438</span>  public Response get(String path) throws IOException {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    return get(cluster, path);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>  /**<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * Send a GET request<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * @param cluster the cluster definition<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   * @param path    the path or URI<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   * @return a Response object with response detail<a name="line.446"></a>
-<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public Response get(Cluster cluster, String path) throws IOException {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    return get(cluster, path, EMPTY_HEADER_ARRAY);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  /**<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * Send a GET request<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * @param path   the path or URI<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @param accept Accept header value<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @return a Response object with response detail<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   */<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public Response get(String path, String accept) throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    return get(cluster, path, accept);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>  /**<a name="line.462"></a>
-<span class="sourceLineNo">463</span>   * Send a GET request<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * @param cluster the cluster definition<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * @param path    the path or URI<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * @param accept  Accept header value<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * @return a Response object with response detail<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   */<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  public Response get(Cluster cluster, String path, String accept) throws IOException {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    Header[] headers = new Header[1];<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    headers[0] = new BasicHeader("Accept", accept);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    return get(cluster, path, headers);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>  }<a name="line.473"></a>
-<span class="sourceLineNo">474</span><a name="line.474"></a>
-<span class="sourceLineNo">475</span>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Send a GET request<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * @param path    the path or URI<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @param headers the HTTP headers to include in the request, &lt;tt&gt;Accept&lt;/tt&gt; must be supplied<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @return a Response object with response detail<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   */<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  public Response get(String path, Header[] headers) throws IOException {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    return get(cluster, path, headers);<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  }<a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>  /**<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * Returns the response body of the HTTPResponse, if any, as an array of bytes. If response body<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * is not available or cannot be read, returns &lt;tt&gt;null&lt;/tt&gt; Note: This will cause the entire<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   * response body to be buffered in memory. A malicious server may easily exhaust all the VM<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * memory. It is strongly recommended, to use getResponseAsStream if the content length of the<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * response is unknown or reasonably large.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * @param resp HttpResponse<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   * @return The response body, null if body is empty<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   * @throws IOException If an I/O (transport) problem occurs while obtaining the response body.<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   */<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "NP_LOAD_OF_KNOWN_NULL_VALUE",<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      justification = "null is possible return value")<a name="line.496"></a>
+<span class="sourceLineNo">087</span>  private Map&lt;String, String&gt; extraHeaders;<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private static final String AUTH_COOKIE = "hadoop.auth";<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private static final String AUTH_COOKIE_EQ = AUTH_COOKIE + "=";<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  private static final String COOKIE = "Cookie";<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * Default Constructor<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public Client() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    this(null);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>  private void initialize(Cluster cluster, Configuration conf, boolean sslEnabled,<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    Optional&lt;KeyStore&gt; trustStore) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    this.cluster = cluster;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    this.conf = conf;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.sslEnabled = sslEnabled;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    extraHeaders = new ConcurrentHashMap&lt;&gt;();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    String clspath = System.getProperty("java.class.path");<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    LOG.debug("classpath " + clspath);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    HttpClientBuilder httpClientBuilder = HttpClients.custom();<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>    int connTimeout = this.conf.getInt(Constants.REST_CLIENT_CONN_TIMEOUT,<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      Constants.DEFAULT_REST_CLIENT_CONN_TIMEOUT);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    int socketTimeout = this.conf.getInt(Constants.REST_CLIENT_SOCKET_TIMEOUT,<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      Constants.DEFAULT_REST_CLIENT_SOCKET_TIMEOUT);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connTimeout)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      .setSocketTimeout(socketTimeout).setNormalizeUri(false) // URIs should not be normalized, see<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                                              // HBASE-26903<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      .build();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    httpClientBuilder.setDefaultRequestConfig(requestConfig);<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    // Since HBASE-25267 we don't use the deprecated DefaultHttpClient anymore.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    // The new http client would decompress the gzip content automatically.<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    // In order to keep the original behaviour of this public class, we disable<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // automatic content compression.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    httpClientBuilder.disableContentCompression();<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>    if (sslEnabled &amp;&amp; trustStore.isPresent()) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      try {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        SSLContext sslcontext =<a name="line.128"></a>
+<span class="sourceLineNo">129</span>          SSLContexts.custom().loadTrustMaterial(trustStore.get(), null).build();<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        httpClientBuilder.setSSLContext(sslcontext);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      } catch (NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        throw new ClientTrustStoreInitializationException("Error while processing truststore", e);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>    this.httpClient = httpClientBuilder.build();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  /**<a name="line.139"></a>
+<span class="sourceLineNo">140</span>   * Constructor<a name="line.140"></a>
+<span class="sourceLineNo">141</span>   * @param cluster the cluster definition<a name="line.141"></a>
+<span class="sourceLineNo">142</span>   */<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  public Client(Cluster cluster) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    this(cluster, false);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * Constructor<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * @param cluster    the cluster definition<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * @param sslEnabled enable SSL or not<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public Client(Cluster cluster, boolean sslEnabled) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    initialize(cluster, HBaseConfiguration.create(), sslEnabled, Optional.empty());<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  /**<a name="line.156"></a>
+<span class="sourceLineNo">157</span>   * Constructor<a name="line.157"></a>
+<span class="sourceLineNo">158</span>   * @param cluster    the cluster definition<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   * @param conf       Configuration<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * @param sslEnabled enable SSL or not<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  public Client(Cluster cluster, Configuration conf, boolean sslEnabled) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    initialize(cluster, conf, sslEnabled, Optional.empty());<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * @param cluster            the cluster definition<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * @param trustStorePassword password to use for custom trust store<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   * @param trustStoreType     type of custom trust store<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public Client(Cluster cluster, String trustStorePath, Optional&lt;String&gt; trustStorePassword,<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    Optional&lt;String&gt; trustStoreType) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    this(cluster, HBaseConfiguration.create(), trustStorePath, trustStorePassword, trustStoreType);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   * @param cluster            the cluster definition<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * @param conf               Configuration<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * @param trustStorePassword password to use for custom trust store<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * @param trustStoreType     type of custom trust store<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  public Client(Cluster cluster, Configuration conf, String trustStorePath,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    Optional&lt;String&gt; trustStorePassword, Optional&lt;String&gt; trustStoreType) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>    char[] password = trustStorePassword.map(String::toCharArray).orElse(null);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    String type = trustStoreType.orElse(KeyStore.getDefaultType());<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    KeyStore trustStore;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    try {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      trustStore = KeyStore.getInstance(type);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    } catch (KeyStoreException e) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      throw new ClientTrustStoreInitializationException("Invalid trust store type: " + type, e);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    try (InputStream inputStream =<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      new BufferedInputStream(Files.newInputStream(new File(trustStorePath).toPath()))) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      trustStore.load(inputStream, password);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    } catch (CertificateException | NoSuchAlgorithmException | IOException e) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      throw new ClientTrustStoreInitializationException("Trust store load error: " + trustStorePath,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        e);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    initialize(cluster, conf, true, Optional.of(trustStore));<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  /**<a name="line.211"></a>
+<span class="sourceLineNo">212</span>   * Shut down the client. Close any open persistent connections.<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   */<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  public void shutdown() {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  /** Returns the wrapped HttpClient */<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  public HttpClient getHttpClient() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    return httpClient;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  /**<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   * Add extra headers. These extra headers will be applied to all http methods before they are<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   * removed. If any header is not used any more, client needs to remove it explicitly.<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>  public void addExtraHeader(final String name, final String value) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    extraHeaders.put(name, value);<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>  /**<a name="line.230"></a>
+<span class="sourceLineNo">231</span>   * Get an extra header value.<a name="line.231"></a>
+<span class="sourceLineNo">232</span>   */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public String getExtraHeader(final String name) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    return extraHeaders.get(name);<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>  /**<a name="line.237"></a>
+<span class="sourceLineNo">238</span>   * Get all extra headers (read-only).<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   */<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  public Map&lt;String, String&gt; getExtraHeaders() {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    return Collections.unmodifiableMap(extraHeaders);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   * Remove an extra header.<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  public void removeExtraHeader(final String name) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    extraHeaders.remove(name);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  }<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>   * Execute a transaction method given only the path. Will select at random one of the members of<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * the supplied cluster definition and iterate through the list until a transaction can be<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * successfully completed. The definition of success here is a complete HTTP transaction,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * irrespective of result code.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * @param cluster the cluster definition<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * @param method  the transaction method<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * @param headers HTTP header values to send<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * @param path    the properly urlencoded path<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * @return the HTTP response code<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  public HttpResponse executePathOnly(Cluster cluster, HttpUriRequest method, Header[] headers,<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    String path) throws IOException {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    IOException lastException;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    if (cluster.nodes.size() &lt; 1) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      throw new IOException("Cluster is empty");<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    int start = (int) Math.round((cluster.nodes.size() - 1) * Math.random());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    int i = start;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    do {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      cluster.lastHost = cluster.nodes.get(i);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      try {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        StringBuilder sb = new StringBuilder();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        if (sslEnabled) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>          sb.append("https://");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        } else {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          sb.append("http://");<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        sb.append(cluster.lastHost);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        sb.append(path);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        URI uri = new URI(sb.toString());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        if (method instanceof HttpPut) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>          HttpPut put = new HttpPut(uri);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>          put.setEntity(((HttpPut) method).getEntity());<a name="line.284"></a>
+<span class="sourceLineNo">285</span>          put.setHeaders(method.getAllHeaders());<a name="line.285"></a>
+<span class="sourceLineNo">286</span>          method = put;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        } else if (method instanceof HttpGet) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>          method = new HttpGet(uri);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        } else if (method instanceof HttpHead) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>          method = new HttpHead(uri);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        } else if (method instanceof HttpDelete) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          method = new HttpDelete(uri);<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else if (method instanceof HttpPost) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          HttpPost post = new HttpPost(uri);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>          post.setEntity(((HttpPost) method).getEntity());<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          post.setHeaders(method.getAllHeaders());<a name="line.296"></a>
+<span class="sourceLineNo">297</span>          method = post;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        return executeURI(method, headers, uri.toString());<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      } catch (IOException e) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        lastException = e;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      } catch (URISyntaxException use) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        lastException = new IOException(use);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    } while (++i != start &amp;&amp; i &lt; cluster.nodes.size());<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    throw lastException;<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>   * Execute a transaction method given a complete URI.<a name="line.310"></a>
+<span class="sourceLineNo">311</span>   * @param method  the transaction method<a name="line.311"></a>
+<span class="sourceLineNo">312</span>   * @param headers HTTP header values to send<a name="line.312"></a>
+<span class="sourceLineNo">313</span>   * @param uri     a properly urlencoded URI<a name="line.313"></a>
+<span class="sourceLineNo">314</span>   * @return the HTTP response code<a name="line.314"></a>
+<span class="sourceLineNo">315</span>   */<a name="line.315"></a>
+<span class="sourceLineNo">316</span>  public HttpResponse executeURI(HttpUriRequest method, Header[] headers, String uri)<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    throws IOException {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // method.setURI(new URI(uri, true));<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    for (Map.Entry&lt;String, String&gt; e : extraHeaders.entrySet()) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      method.addHeader(e.getKey(), e.getValue());<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    if (headers != null) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      for (Header header : headers) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        method.addHeader(header);<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>    long startTime = EnvironmentEdgeManager.currentTime();<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    if (resp != null) EntityUtils.consumeQuietly(resp.getEntity());<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    resp = httpClient.execute(method);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_UNAUTHORIZED) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      // Authentication error<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      LOG.debug("Performing negotiation with the server.");<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      negotiate(method, uri);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      resp = httpClient.execute(method);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>    long endTime = EnvironmentEdgeManager.currentTime();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    if (LOG.isTraceEnabled()) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      LOG.trace(method.getMethod() + " " + uri + " " + resp.getStatusLine().getStatusCode() + " "<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        + resp.getStatusLine().getReasonPhrase() + " in " + (endTime - startTime) + " ms");<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return resp;<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>   * Execute a transaction method. Will call either &lt;tt&gt;executePathOnly&lt;/tt&gt; or &lt;tt&gt;executeURI&lt;/tt&gt;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   * depending on whether a path only is supplied in 'path', or if a complete URI is passed instead,<a name="line.347"></a>
+<span class="sourceLineNo">348</span>   * respectively.<a name="line.348"></a>
+<span class="sourceLineNo">349</span>   * @param cluster the cluster definition<a name="line.349"></a>
+<span class="sourceLineNo">350</span>   * @param method  the HTTP method<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   * @param headers HTTP header values to send<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   * @param path    the properly urlencoded path or URI<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   * @return the HTTP response code<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  public HttpResponse execute(Cluster cluster, HttpUriRequest method, Header[] headers, String path)<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    throws IOException {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    if (path.startsWith("/")) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      return executePathOnly(cluster, method, headers, path);<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    }<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    return executeURI(method, headers, path);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  /**<a name="line.363"></a>
+<span class="sourceLineNo">364</span>   * Initiate client side Kerberos negotiation with the server.<a name="line.364"></a>
+<span class="sourceLineNo">365</span>   * @param method method to inject the authentication token into.<a name="line.365"></a>
+<span class="sourceLineNo">366</span>   * @param uri    the String to parse as a URL.<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   * @throws IOException if unknown protocol is found.<a name="line.367"></a>
+<span class="sourceLineNo">368</span>   */<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  private void negotiate(HttpUriRequest method, String uri) throws IOException {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    try {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      AuthenticatedURL.Token token = new AuthenticatedURL.Token();<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      KerberosAuthenticator authenticator = new KerberosAuthenticator();<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      authenticator.authenticate(new URL(uri), token);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      // Inject the obtained negotiated token in the method cookie<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      injectToken(method, token);<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    } catch (AuthenticationException e) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      LOG.error("Failed to negotiate with the server.", e);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      throw new IOException(e);<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>   * Helper method that injects an authentication token to send with the method.<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   * @param method method to inject the authentication token into.<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   * @param token  authentication token to inject.<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   */<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  private void injectToken(HttpUriRequest method, AuthenticatedURL.Token token) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    String t = token.toString();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    if (t != null) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      if (!t.startsWith("\"")) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        t = "\"" + t + "\"";<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      method.addHeader(COOKIE, AUTH_COOKIE_EQ + t);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
+<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>  /** Returns the cluster definition */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  public Cluster getCluster() {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    return cluster;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>  }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>  /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>   * @param cluster the cluster definition<a name="line.403"></a>
+<span class="sourceLineNo">404</span>   */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>  public void setCluster(Cluster cluster) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    this.cluster = cluster;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>  }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>  /**<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * Send a HEAD request<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   * @param path the path or URI<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   * @return a Response object with response detail<a name="line.412"></a>
+<span class="sourceLineNo">413</span>   */<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  public Response head(String path) throws IOException {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    return head(cluster, path, null);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>  /**<a name="line.418"></a>
+<span class="sourceLineNo">419</span>   * Send a HEAD request<a name="line.419"></a>
+<span class="sourceLineNo">420</span>   * @param cluster the cluster definition<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   * @param path    the path or URI<a name="line.421"></a>
+<span class="sourceLineNo">422</span>   * @param headers the HTTP headers to include in the request<a name="line.422"></a>
+<span class="sourceLineNo">423</span>   * @return a Response object with response detail<a name="line.423"></a>
+<span class="sourceLineNo">424</span>   */<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  public Response head(Cluster cluster, String path, Header[] headers) throws IOException {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    HttpHead method = new HttpHead(path);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      HttpResponse resp = execute(cluster, method, null, path);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      return new Response(resp.getStatusLine().getStatusCode(), resp.getAllHeaders(), null);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    } finally {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      method.releaseConnection();<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>  }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>  /**<a name="line.435"></a>
+<span class="sourceLineNo">436</span>   * Send a GET request<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * @param path the path or URI<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   * @return a Response object with response detail<a name="line.438"></a>
+<span class="sourceLineNo">439</span>   */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  public Response get(String path) throws IOException {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    return get(cluster, path);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>  /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   * Send a GET request<a name="line.445"></a>
+<span class="sourceLineNo">446</span>   * @param cluster the cluster definition<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   * @param path    the path or URI<a name="line.447"></a>
+<span class="sourceLineNo">448</span>   * @return a Response object with response detail<a name="line.448"></a>
+<span class="sourceLineNo">449</span>   */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>  public Response get(Cluster cluster, String path) throws IOException {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    return get(cluster, path, EMPTY_HEADER_ARRAY);<a name="line.451"></a>
+<span class="sourceLineNo">452</span>  }<a name="line.452"></a>
+<span class="sourceLineNo">453</span><a name="line.453"></a>
+<span class="sourceLineNo">454</span>  /**<a name="line.454"></a>
+<span class="sourceLineNo">455</span>   * Send a GET request<a name="line.455"></a>
+<span class="sourceLineNo">456</span>   * @param path   the path or URI<a name="line.456"></a>
+<span class="sourceLineNo">457</span>   * @param accept Accept header value<a name="line.457"></a>
+<span class="sourceLineNo">458</span>   * @return a Response object with response detail<a name="line.458"></a>
+<span class="sourceLineNo">459</span>   */<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  public Response get(String path, String accept) throws IOException {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    return get(cluster, path, accept);<a name="line.461"></a>
+<span class="sourceLineNo">462</span>  }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
+<span class="sourceLineNo">465</span>   * Send a GET request<a name="line.465"></a>
+<span class="sourceLineNo">466</span>   * @param cluster the cluster definition<a name="line.466"></a>
+<span class="sourceLineNo">467</span>   * @param path    the path or URI<a name="line.467"></a>
+<span class="sourceLineNo">468</span>   * @param accept  Accept header value<a name="line.468"></a>
+<span class="sourceLineNo">469</span>   * @return a Response object with response detail<a name="line.469"></a>
+<span class="sourceLineNo">470</span>   */<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public Response get(Cluster cluster, String path, String accept) throws IOException {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    Header[] headers = new Header[1];<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    headers[0] = new BasicHeader("Accept", accept);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>    return get(cluster, path, headers);<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  }<a name="line.475"></a>
+<span class="sourceLineNo">476</span><a name="line.476"></a>
+<span class="sourceLineNo">477</span>  /**<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   * Send a GET request<a name="line.478"></a>
+<span class="sourceLineNo">479</span>   * @param path    the path or URI<a name="line.479"></a>
+<span class="sourceLineNo">480</span>   * @param headers the HTTP headers to include in the request, &lt;tt&gt;Accept&lt;/tt&gt; must be supplied<a name="line.480"></a>
+<span class="sourceLineNo">481</span>   * @return a Response object with response detail<a name="line.481"></a>
+<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
+<span class="sourceLineNo">483</span>  public Response get(String path, Header[] headers) throws IOException {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    return get(cluster, path, headers);<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  }<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>  /**<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   * Returns the response body of the HTTPResponse, if any, as an array of bytes. If response body<a name="line.488"></a>
+<span class="sourceLineNo">489</span>   * is not available or cannot be read, returns &lt;tt&gt;null&lt;/tt&gt; Note: This will cause the entire<a name="line.489"></a>
+<span class="sourceLineNo">490</span>   * response body to be buffered in memory. A malicious server may easily exhaust all the VM<a name="line.490"></a>
+<span class="sourceLineNo">491</span>   * memory. It is strongly recommended, to use getResponseAsStream if the content length of the<a name="line.491"></a>
+<span class="sourceLineNo">492</span>   * response is unknown or reasonably large.<a name="line.492"></a>
+<span class="sourceLineNo">493</span>   * @param resp HttpResponse<a name="line.493"></a>
+<span class="sourceLineNo">494</span>   * @return The response body, null if body is empty<a name="line.494"></a>
+<span class="sourceLineNo">495</span>   * @throws IOException If an I/O (transport) problem occurs while obtaining the response body.<a name="line.495"></a>
+<span class="sourceLineNo">496</span>   */<a name="line.496"></a>
 <span class="sourceLineNo">497</span>  public static byte[] getResponseBody(HttpResponse resp) throws IOException {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    if (resp.getEntity() == null) return null;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    try (InputStream instream = resp.getEntity().getContent()) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      if (instream != null) {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>        long contentLength = resp.getEntity().getContentLength();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>        if (contentLength &gt; Integer.MAX_VALUE) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>          // guard integer cast from overflow<a name="line.503"></a>
-<span class="sourceLineNo">504</span>          throw new IOException("Content too large to be buffered: " + contentLength + " bytes");<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        ByteArrayOutputStream outstream =<a name="line.506"></a>
-<span class="sourceLineNo">507</span>          new ByteArrayOutputStream(contentLength &gt; 0 ? (int) contentLength : 4 * 1024);<a name="line.507"></a>
-<span class="sourceLineNo">508</span>        byte[] buffer = new byte[4096];<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        int len;<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        while ((len = instream.read(buffer)) &gt; 0) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>          outstream.write(buffer, 0, len);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        }<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        outstream.close();<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        return outstream.toByteArray();<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      return null;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span>  }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>  /**<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * Send a GET request<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   * @param c       the cluster definition<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   * @param path    the path or URI<a name="line.523"></a>
-<span class="sourceLineNo">524</span>   * @param headers the HTTP headers to include in the request<a name="line.524"></a>
-<span class="sourceLineNo">525</span>   * @return a Response object with response detail<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   */<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  public Response get(Cluster c, String path, Header[] headers) throws IOException {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    if (httpGet != null) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      httpGet.releaseConnection();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    httpGet = new HttpGet(path);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    HttpResponse resp = execute(c, httpGet, headers, path);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    return new Response(resp.getStatusLine().getStatusCode(), resp.getAllHeaders(), resp,<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      resp.getEntity() == null ? null : resp.getEntity().getContent());<a name="line.534"></a>
-<span class="sourceLineNo">535</span>  }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>  /**<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   * Send a PUT request<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   * @param path        the path or URI<a name="line.539"></a>
-<span class="sourceLineNo">540</span>   * @param contentType the content MIME type<a name="line.540"></a>
-<span class="sourceLineNo">541</span>   * @param content     the content bytes<a name="line.541"></a>
-<span class="sourceLineNo">542</span>   * @return a Response object with response detail<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   */<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  public Response put(String path, String contentType, byte[] content) throws IOException {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    return put(cluster, path, contentType, content);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>  /**<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * Send a PUT request<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param path        the path or URI<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @param contentType the content MIME type<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * @param content     the content bytes<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * @param extraHdr    extra Header to send<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   * @return a Response object with response detail<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   */<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  public Response put(String path, String contentType, byte[] content, Header extraHdr)<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    throws IOException {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    return put(cluster, path, contentType, content, extraHdr);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>  /**<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   * Send a PUT request<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * @param cluster     the cluster definition<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   * @param path        the path or URI<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * @param contentType the content MIME type<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * @param content     the content bytes<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * @return a Response object with response detail<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   * @throws IOException for error<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   */<a name="line.569"></a>
-<span class="sourceLineNo">570</span>  public Response put(Cluster cluster, String path, String contentType, byte[] content)<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    throws IOException {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    Header[] headers = new Header[1];<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    return put(cluster, path, headers, content);<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  }<a name="line.575"></a>
-<span class="sourceLineNo">576</span><a name="line.576"></a>
-<span class="sourceLineNo">577</span>  /**<a name="line.577"></a>
-<span class="sourceLineNo">578</span>   * Send a PUT request<a name="line.578"></a>
-<span class="sourceLineNo">579</span>   * @param cluster     the cluster definition<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   * @param path        the path or URI<a name="line.580"></a>
-<span class="sourceLineNo">581</span>   * @param contentType the content MIME type<a name="line.581"></a>
-<span class="sourceLineNo">582</span>   * @param content     the content bytes<a name="line.582"></a>
-<span class="sourceLineNo">583</span>   * @param extraHdr    additional Header to send<a name="line.583"></a>
-<span class="sourceLineNo">584</span>   * @return a Response object with response detail<a name="line.584"></a>
-<span class="sourceLineNo">585</span>   * @throws IOException for error<a name="line.585"></a>
-<span class="sourceLineNo">586</span>   */<a name="line.586"></a>
-<span class="sourceLineNo">587</span>  public Response put(Cluster cluster, String path, String contentType, byte[] content,<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    Header extraHdr) throws IOException {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>    int cnt = extraHdr == null ? 1 : 2;<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    Header[] headers = new Header[cnt];<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    if (extraHdr != null) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      headers[1] = extraHdr;<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    return put(cluster, path, headers, content);<a name="line.595"></a>
-<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * Send a PUT request<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @param path    the path or URI<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * @param content the content bytes<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * @return a Response object with response detail<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   */<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  public Response put(String path, Header[] headers, byte[] content) throws IOException {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    return put(cluster, path, headers, content);<a name="line.606"></a>
-<span class="sourceLineNo">607</span>  }<a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span>  /**<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   * Send a PUT request<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @param cluster the cluster definition<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   * @param path    the path or URI<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   * @param content the content bytes<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   * @return a Response object with response detail<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   */<a name="line.616"></a>
-<span class="sourceLineNo">617</span>  public Response put(Cluster cluster, String path, Header[] headers, byte[] content)<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    throws IOException {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    HttpPut method = new HttpPut(path);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    try {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      method.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      headers = resp.getAllHeaders();<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      content = getResponseBody(resp);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    } finally {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      method.releaseConnection();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>  }<a name="line.629"></a>
-<span class="sourceLineNo">630</span><a name="line.630"></a>
-<span class="sourceLineNo">631</span>  /**<a name="line.631"></a>
-<span class="sourceLineNo">632</span>   * Send a POST request<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   * @param path        the path or URI<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * @param contentType the content MIME type<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   * @param content     the content bytes<a name="line.635"></a>
-<span class="sourceLineNo">636</span>   * @return a Response object with response detail<a name="line.636"></a>
-<span class="sourceLineNo">637</span>   */<a name="line.637"></a>
-<span class="sourceLineNo">638</span>  public Response post(String path, String contentType, byte[] content) throws IOException {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    return post(cluster, path, contentType, content);<a name="line.639"></a>
-<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
-<span class="sourceLineNo">641</span><a name="line.641"></a>
-<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * Send a POST request<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * @param path        the path or URI<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   * @param contentType the content MIME type<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   * @param content     the content bytes<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   * @param extraHdr    additional Header to send<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   * @return a Response object with response detail<a name="line.648"></a>
-<span class="sourceLineNo">649</span>   */<a name="line.649"></a>
-<span class="sourceLineNo">650</span>  public Response post(String path, String contentType, byte[] content, Header extraHdr)<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    throws IOException {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    return post(cluster, path, contentType, content, extraHdr);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>  }<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>  /**<a name="line.655"></a>
-<span class="sourceLineNo">656</span>   * Send a POST request<a name="line.656"></a>
-<span class="sourceLineNo">657</span>   * @param cluster     the cluster definition<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   * @param path        the path or URI<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   * @param contentType the content MIME type<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * @param content     the content bytes<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * @return a Response object with response detail<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   * @throws IOException for error<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   */<a name="line.663"></a>
-<span class="sourceLineNo">664</span>  public Response post(Cluster cluster, String path, String contentType, byte[] content)<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    throws IOException {<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    Header[] headers = new Header[1];<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    return post(cluster, path, headers, content);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>  }<a name="line.669"></a>
-<span class="sourceLineNo">670</span><a name="line.670"></a>
-<span class="sourceLineNo">671</span>  /**<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * Send a POST request<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @param cluster     the cluster definition<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * @param path        the path or URI<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   * @param contentType the content MIME type<a name="line.675"></a>
-<span class="sourceLineNo">676</span>   * @param content     the content bytes<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   * @param extraHdr    additional Header to send<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * @return a Response object with response detail<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   * @throws IOException for error<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   */<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  public Response post(Cluster cluster, String path, String contentType, byte[] content,<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    Header extraHdr) throws IOException {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    int cnt = extraHdr == null ? 1 : 2;<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    Header[] headers = new Header[cnt];<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (extraHdr != null) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      headers[1] = extraHdr;<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    return post(cluster, path, headers, content);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
-<span class="sourceLineNo">691</span><a name="line.691"></a>
-<span class="sourceLineNo">692</span>  /**<a name="line.692"></a>
-<span class="sourceLineNo">693</span>   * Send a POST request<a name="line.693"></a>
-<span class="sourceLineNo">694</span>   * @param path    the path or URI<a name="line.694"></a>
-<span class="sourceLineNo">695</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.695"></a>
-<span class="sourceLineNo">696</span>   * @param content the content bytes<a name="line.696"></a>
-<span class="sourceLineNo">697</span>   * @return a Response object with response detail<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   */<a name="line.698"></a>
-<span class="sourceLineNo">699</span>  public Response post(String path, Header[] headers, byte[] content) throws IOException {<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    return post(cluster, path, headers, content);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>  }<a name="line.701"></a>
-<span class="sourceLineNo">702</span><a name="line.702"></a>
-<span class="sourceLineNo">703</span>  /**<a name="line.703"></a>
-<span class="sourceLineNo">704</span>   * Send a POST request<a name="line.704"></a>
-<span class="sourceLineNo">705</span>   * @param cluster the cluster definition<a name="line.705"></a>
-<span class="sourceLineNo">706</span>   * @param path    the path or URI<a name="line.706"></a>
-<span class="sourceLineNo">707</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.707"></a>
-<span class="sourceLineNo">708</span>   * @param content the content bytes<a name="line.708"></a>
-<span class="sourceLineNo">709</span>   * @return a Response object with response detail<a name="line.709"></a>
-<span class="sourceLineNo">710</span>   */<a name="line.710"></a>
-<span class="sourceLineNo">711</span>  public Response post(Cluster cluster, String path, Header[] headers, byte[] content)<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    throws IOException {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>    HttpPost method = new HttpPost(path);<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    try {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      method.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      headers = resp.getAllHeaders();<a name="line.717"></a>
-<span class="sourceLineNo">718</span>      content = getResponseBody(resp);<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    } finally {<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      method.releaseConnection();<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    }<a name="line.722"></a>
-<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>  /**<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * Send a DELETE request<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * @param path the path or URI<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   * @return a Response object with response detail<a name="line.728"></a>
-<span class="sourceLineNo">729</span>   */<a name="line.729"></a>
-<span class="sourceLineNo">730</span>  public Response delete(String path) throws IOException {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    return delete(cluster, path);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  }<a name="line.732"></a>
-<span class="sourceLineNo">733</span><a name="line.733"></a>
-<span class="sourceLineNo">734</span>  /**<a name="line.734"></a>
-<span class="sourceLineNo">735</span>   * Send a DELETE request<a name="line.735"></a>
-<span class="sourceLineNo">736</span>   * @param path     the path or URI<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * @param extraHdr additional Header to send<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   * @return a Response object with response detail<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   */<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  public Response delete(String path, Header extraHdr) throws IOException {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return delete(cluster, path, extraHdr);<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Send a DELETE request<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * @param cluster the cluster definition<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * @param path    the path or URI<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @return a Response object with response detail<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   * @throws IOException for error<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  public Response delete(Cluster cluster, String path) throws IOException {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    HttpDelete method = new HttpDelete(path);<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    try {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>      HttpResponse resp = execute(cluster, method, null, path);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>      Header[] headers = resp.getAllHeaders();<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      byte[] content = getResponseBody(resp);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    } finally {<a name="line.758"></a>
-<span class="sourceLineNo">759</span>      method.releaseConnection();<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    }<a name="line.760"></a>
-<span class="sourceLineNo">761</span>  }<a name="line.761"></a>
-<span class="sourceLineNo">762</span><a name="line.762"></a>
-<span class="sourceLineNo">763</span>  /**<a name="line.763"></a>
-<span class="sourceLineNo">764</span>   * Send a DELETE request<a name="line.764"></a>
-<span class="sourceLineNo">765</span>   * @param cluster the cluster definition<a name="line.765"></a>
-<span class="sourceLineNo">766</span>   * @param path    the path or URI<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * @return a Response object with response detail<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   * @throws IOException for error<a name="line.768"></a>
-<span class="sourceLineNo">769</span>   */<a name="line.769"></a>
-<span class="sourceLineNo">770</span>  public Response delete(Cluster cluster, String path, Header extraHdr) throws IOException {<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    HttpDelete method = new HttpDelete(path);<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    try {<a name="line.772"></a>
-<span class="sourceLineNo">773</span>      Header[] headers = { extraHdr };<a name="line.773"></a>
-<span class="sourceLineNo">774</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>      headers = resp.getAllHeaders();<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      byte[] content = getResponseBody(resp);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    } finally {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      method.releaseConnection();<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
-<span class="sourceLineNo">781</span>  }<a name="line.781"></a>
-<span class="sourceLineNo">782</span><a name="line.782"></a>
-<span class="sourceLineNo">783</span>  public static class ClientTrustStoreInitializationException extends RuntimeException {<a name="line.783"></a>
-<span class="sourceLineNo">784</span><a name="line.784"></a>
-<span class="sourceLineNo">785</span>    public ClientTrustStoreInitializationException(String message, Throwable cause) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>      super(message, cause);<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    }<a name="line.787"></a>
-<span class="sourceLineNo">788</span>  }<a name="line.788"></a>
-<span class="sourceLineNo">789</span>}<a name="line.789"></a>
+<span class="sourceLineNo">498</span>    if (resp.getEntity() == null) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      return null;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    InputStream instream = resp.getEntity().getContent();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    if (instream == null) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      return null;<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    try {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      long contentLength = resp.getEntity().getContentLength();<a name="line.506"></a>
+<span class="sourceLineNo">507</span>      if (contentLength &gt; Integer.MAX_VALUE) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        // guard integer cast from overflow<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        throw new IOException("Content too large to be buffered: " + contentLength + " bytes");<a name="line.509"></a>
+<span class="sourceLineNo">510</span>      }<a name="line.510"></a>
+<span class="sourceLineNo">511</span>      if (contentLength &gt; 0) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        byte[] content = new byte[(int) contentLength];<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        ByteStreams.readFully(instream, content);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        return content;<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      } else {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        return ByteStreams.toByteArray(instream);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>      }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    } finally {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      Closeables.closeQuietly(instream);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>  /**<a name="line.523"></a>
+<span class="sourceLineNo">524</span>   * Send a GET request<a name="line.524"></a>
+<span class="sourceLineNo">525</span>   * @param c       the cluster definition<a name="line.525"></a>
+<span class="sourceLineNo">526</span>   * @param path    the path or URI<a name="line.526"></a>
+<span class="sourceLineNo">527</span>   * @param headers the HTTP headers to include in the request<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   * @return a Response object with response detail<a name="line.528"></a>
+<span class="sourceLineNo">529</span>   */<a name="line.529"></a>
+<span class="sourceLineNo">530</span>  public Response get(Cluster c, String path, Header[] headers) throws IOException {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    if (httpGet != null) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      httpGet.releaseConnection();<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    httpGet = new HttpGet(path);<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    HttpResponse resp = execute(c, httpGet, headers, path);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    return new Response(resp.getStatusLine().getStatusCode(), resp.getAllHeaders(), resp,<a name="line.536"></a>
+<span class="sourceLineNo">537</span>      resp.getEntity() == null ? null : resp.getEntity().getContent());<a name="line.537"></a>
+<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>  /**<a name="line.540"></a>
+<span class="sourceLineNo">541</span>   * Send a PUT request<a name="line.541"></a>
+<span class="sourceLineNo">542</span>   * @param path        the path or URI<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * @param contentType the content MIME type<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * @param content     the content bytes<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * @return a Response object with response detail<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>  public Response put(String path, String contentType, byte[] content) throws IOException {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    return put(cluster, path, contentType, content);<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * Send a PUT request<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   * @param path        the path or URI<a name="line.553"></a>
+<span class="sourceLineNo">554</span>   * @param contentType the content MIME type<a name="line.554"></a>
+<span class="sourceLineNo">555</span>   * @param content     the content bytes<a name="line.555"></a>
+<span class="sourceLineNo">556</span>   * @param extraHdr    extra Header to send<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   * @return a Response object with response detail<a name="line.557"></a>
+<span class="sourceLineNo">558</span>   */<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  public Response put(String path, String contentType, byte[] content, Header extraHdr)<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    throws IOException {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    return put(cluster, path, contentType, content, extraHdr);<a name="line.561"></a>
+<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
+<span class="sourceLineNo">563</span><a name="line.563"></a>
+<span class="sourceLineNo">564</span>  /**<a name="line.564"></a>
+<span class="sourceLineNo">565</span>   * Send a PUT request<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * @param cluster     the cluster definition<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   * @param path        the path or URI<a name="line.567"></a>
+<span class="sourceLineNo">568</span>   * @param contentType the content MIME type<a name="line.568"></a>
+<span class="sourceLineNo">569</span>   * @param content     the content bytes<a name="line.569"></a>
+<span class="sourceLineNo">570</span>   * @return a Response object with response detail<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   * @throws IOException for error<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
+<span class="sourceLineNo">573</span>  public Response put(Cluster cluster, String path, String contentType, byte[] content)<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    throws IOException {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    Header[] headers = new Header[1];<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    return put(cluster, path, headers, content);<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span>  /**<a name="line.580"></a>
+<span class="sourceLineNo">581</span>   * Send a PUT request<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   * @param cluster     the cluster definition<a name="line.582"></a>
+<span class="sourceLineNo">583</span>   * @param path        the path or URI<a name="line.583"></a>
+<span class="sourceLineNo">584</span>   * @param contentType the content MIME type<a name="line.584"></a>
+<span class="sourceLineNo">585</span>   * @param content     the content bytes<a name="line.585"></a>
+<span class="sourceLineNo">586</span>   * @param extraHdr    additional Header to send<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   * @return a Response object with response detail<a name="line.587"></a>
+<span class="sourceLineNo">588</span>   * @throws IOException for error<a name="line.588"></a>
+<span class="sourceLineNo">589</span>   */<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  public Response put(Cluster cluster, String path, String contentType, byte[] content,<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    Header extraHdr) throws IOException {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    int cnt = extraHdr == null ? 1 : 2;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    Header[] headers = new Header[cnt];<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    if (extraHdr != null) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      headers[1] = extraHdr;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    return put(cluster, path, headers, content);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>  }<a name="line.599"></a>
+<span class="sourceLineNo">600</span><a name="line.600"></a>
+<span class="sourceLineNo">601</span>  /**<a name="line.601"></a>
+<span class="sourceLineNo">602</span>   * Send a PUT request<a name="line.602"></a>
+<span class="sourceLineNo">603</span>   * @param path    the path or URI<a name="line.603"></a>
+<span class="sourceLineNo">604</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.604"></a>
+<span class="sourceLineNo">605</span>   * @param content the content bytes<a name="line.605"></a>
+<span class="sourceLineNo">606</span>   * @return a Response object with response detail<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   */<a name="line.607"></a>
+<span class="sourceLineNo">608</span>  public Response put(String path, Header[] headers, byte[] content) throws IOException {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    return put(cluster, path, headers, content);<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>  /**<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   * Send a PUT request<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * @param cluster the cluster definition<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   * @param path    the path or URI<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.616"></a>
+<span class="sourceLineNo">617</span>   * @param content the content bytes<a name="line.617"></a>
+<span class="sourceLineNo">618</span>   * @return a Response object with response detail<a name="line.618"></a>
+<span class="sourceLineNo">619</span>   */<a name="line.619"></a>
+<span class="sourceLineNo">620</span>  public Response put(Cluster cluster, String path, Header[] headers, byte[] content)<a name="line.620"></a>
+<span class="sourceLineNo">621</span>    throws IOException {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    HttpPut method = new HttpPut(path);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    try {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      method.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      headers = resp.getAllHeaders();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>      content = getResponseBody(resp);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    } finally {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      method.releaseConnection();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>    }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>  }<a name="line.632"></a>
+<span class="sourceLineNo">633</span><a name="line.633"></a>
+<span class="sourceLineNo">634</span>  /**<a name="line.634"></a>
+<span class="sourceLineNo">635</span>   * Send a POST request<a name="line.635"></a>
+<span class="sourceLineNo">636</span>   * @param path        the path or URI<a name="line.636"></a>
+<span class="sourceLineNo">637</span>   * @param contentType the content MIME type<a name="line.637"></a>
+<span class="sourceLineNo">638</span>   * @param content     the content bytes<a name="line.638"></a>
+<span class="sourceLineNo">639</span>   * @return a Response object with response detail<a name="line.639"></a>
+<span class="sourceLineNo">640</span>   */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>  public Response post(String path, String contentType, byte[] content) throws IOException {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    return post(cluster, path, contentType, content);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>  /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   * Send a POST request<a name="line.646"></a>
+<span class="sourceLineNo">647</span>   * @param path        the path or URI<a name="line.647"></a>
+<span class="sourceLineNo">648</span>   * @param contentType the content MIME type<a name="line.648"></a>
+<span class="sourceLineNo">649</span>   * @param content     the content bytes<a name="line.649"></a>
+<span class="sourceLineNo">650</span>   * @param extraHdr    additional Header to send<a name="line.650"></a>
+<span class="sourceLineNo">651</span>   * @return a Response object with response detail<a name="line.651"></a>
+<span class="sourceLineNo">652</span>   */<a name="line.652"></a>
+<span class="sourceLineNo">653</span>  public Response post(String path, String contentType, byte[] content, Header extraHdr)<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    throws IOException {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>    return post(cluster, path, contentType, content, extraHdr);<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>  /**<a name="line.658"></a>
+<span class="sourceLineNo">659</span>   * Send a POST request<a name="line.659"></a>
+<span class="sourceLineNo">660</span>   * @param cluster     the cluster definition<a name="line.660"></a>
+<span class="sourceLineNo">661</span>   * @param path        the path or URI<a name="line.661"></a>
+<span class="sourceLineNo">662</span>   * @param contentType the content MIME type<a name="line.662"></a>
+<span class="sourceLineNo">663</span>   * @param content     the content bytes<a name="line.663"></a>
+<span class="sourceLineNo">664</span>   * @return a Response object with response detail<a name="line.664"></a>
+<span class="sourceLineNo">665</span>   * @throws IOException for error<a name="line.665"></a>
+<span class="sourceLineNo">666</span>   */<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  public Response post(Cluster cluster, String path, String contentType, byte[] content)<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    throws IOException {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    Header[] headers = new Header[1];<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.670"></a>
+<span class="sourceLineNo">671</span>    return post(cluster, path, headers, content);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
+<span class="sourceLineNo">673</span><a name="line.673"></a>
+<span class="sourceLineNo">674</span>  /**<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   * Send a POST request<a name="line.675"></a>
+<span class="sourceLineNo">676</span>   * @param cluster     the cluster definition<a name="line.676"></a>
+<span class="sourceLineNo">677</span>   * @param path        the path or URI<a name="line.677"></a>
+<span class="sourceLineNo">678</span>   * @param contentType the content MIME type<a name="line.678"></a>
+<span class="sourceLineNo">679</span>   * @param content     the content bytes<a name="line.679"></a>
+<span class="sourceLineNo">680</span>   * @param extraHdr    additional Header to send<a name="line.680"></a>
+<span class="sourceLineNo">681</span>   * @return a Response object with response detail<a name="line.681"></a>
+<span class="sourceLineNo">682</span>   * @throws IOException for error<a name="line.682"></a>
+<span class="sourceLineNo">683</span>   */<a name="line.683"></a>
+<span class="sourceLineNo">684</span>  public Response post(Cluster cluster, String path, String contentType, byte[] content,<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    Header extraHdr) throws IOException {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    int cnt = extraHdr == null ? 1 : 2;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    Header[] headers = new Header[cnt];<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    if (extraHdr != null) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>      headers[1] = extraHdr;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>    }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    return post(cluster, path, headers, content);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>  }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>  /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>   * Send a POST request<a name="line.696"></a>
+<span class="sourceLineNo">697</span>   * @param path    the path or URI<a name="line.697"></a>
+<span class="sourceLineNo">698</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.698"></a>
+<span class="sourceLineNo">699</span>   * @param content the content bytes<a name="line.699"></a>
+<span class="sourceLineNo">700</span>   * @return a Response object with response detail<a name="line.700"></a>
+<span class="sourceLineNo">701</span>   */<a name="line.701"></a>
+<span class="sourceLineNo">702</span>  public Response post(String path, Header[] headers, byte[] content) throws IOException {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    return post(cluster, path, headers, content);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>  }<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>  /**<a name="line.706"></a>
+<span class="sourceLineNo">707</span>   * Send a POST request<a name="line.707"></a>
+<span class="sourceLineNo">708</span>   * @param cluster the cluster definition<a name="line.708"></a>
+<span class="sourceLineNo">709</span>   * @param path    the path or URI<a name="line.709"></a>
+<span class="sourceLineNo">710</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.710"></a>
+<span class="sourceLineNo">711</span>   * @param content the content bytes<a name="line.711"></a>
+<span class="sourceLineNo">712</span>   * @return a Response object with response detail<a name="line.712"></a>
+<span class="sourceLineNo">713</span>   */<a name="line.713"></a>
+<span class="sourceLineNo">714</span>  public Response post(Cluster cluster, String path, Header[] headers, byte[] content)<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    throws IOException {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>    HttpPost method = new HttpPost(path);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    try {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>      method.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>      headers = resp.getAllHeaders();<a name="line.720"></a>
+<span class="sourceLineNo">721</span>      content = getResponseBody(resp);<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.722"></a>
+<span class="sourceLineNo">723</span>    } finally {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>      method.releaseConnection();<a name="line.724"></a>
+<span class="sourceLineNo">725</span>    }<a name="line.725"></a>
+<span class="sourceLineNo">726</span>  }<a name="line.726"></a>
+<span class="sourceLineNo">727</span><a name="line.727"></a>
+<span class="sourceLineNo">728</span>  /**<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   * Send a DELETE request<a name="line.729"></a>
+<span class="sourceLineNo">730</span>   * @param path the path or URI<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * @return a Response object with response detail<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   */<a name="line.732"></a>
+<span class="sourceLineNo">733</span>  public Response delete(String path) throws IOException {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    return delete(cluster, path);<a name="line.734"></a>
+<span class="sourceLineNo">735</span>  }<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>  /**<a name="line.737"></a>
+<span class="sourceLineNo">738</span>   * Send a DELETE request<a name="line.738"></a>
+<span class="sourceLineNo">739</span>   * @param path     the path or URI<a name="line.739"></a>
+<span class="sourceLineNo">740</span>   * @param extraHdr additional Header to send<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   * @return a Response object with response detail<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   */<a name="line.742"></a>
+<span class="sourceLineNo">743</span>  public Response delete(String path, Header extraHdr) throws IOException {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>    return delete(cluster, path, extraHdr);<a name="line.744"></a>
+<span class="sourceLineNo">745</span>  }<a name="line.745"></a>
+<span class="sourceLineNo">746</span><a name="line.746"></a>
+<span class="sourceLineNo">747</span>  /**<a name="line.747"></a>
+<span class="sourceLineNo">748</span>   * Send a DELETE request<a name="line.748"></a>
+<span class="sourceLineNo">749</span>   * @param cluster the cluster definition<a name="line.749"></a>
+<span class="sourceLineNo">750</span>   * @param path    the path or URI<a name="line.750"></a>
+<span class="sourceLineNo">751</span>   * @return a Response object with response detail<a name="line.751"></a>
+<span class="sourceLineNo">752</span>   * @throws IOException for error<a name="line.752"></a>
+<span class="sourceLineNo">753</span>   */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>  public Response delete(Cluster cluster, String path) throws IOException {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    HttpDelete method = new HttpDelete(path);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    try {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      HttpResponse resp = execute(cluster, method, null, path);<a name="line.757"></a>
+<span class="sourceLineNo">758</span>      Header[] headers = resp.getAllHeaders();<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      byte[] content = getResponseBody(resp);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    } finally {<a name="line.761"></a>
+<span class="sourceLineNo">762</span>      method.releaseConnection();<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    }<a name="line.763"></a>
+<span class="sourceLineNo">764</span>  }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>  /**<a name="line.766"></a>
+<span class="sourceLineNo">767</span>   * Send a DELETE request<a name="line.767"></a>
+<span class="sourceLineNo">768</span>   * @param cluster the cluster definition<a name="line.768"></a>
+<span class="sourceLineNo">769</span>   * @param path    the path or URI<a name="line.769"></a>
+<span class="sourceLineNo">770</span>   * @return a Response object with response detail<a name="line.770"></a>
+<span class="sourceLineNo">771</span>   * @throws IOException for error<a name="line.771"></a>
+<span class="sourceLineNo">772</span>   */<a name="line.772"></a>
+<span class="sourceLineNo">773</span>  public Response delete(Cluster cluster, String path, Header extraHdr) throws IOException {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    HttpDelete method = new HttpDelete(path);<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    try {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>      Header[] headers = { extraHdr };<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      headers = resp.getAllHeaders();<a name="line.778"></a>
+<span class="sourceLineNo">779</span>      byte[] content = getResponseBody(resp);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    } finally {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>      method.releaseConnection();<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    }<a name="line.783"></a>
+<span class="sourceLineNo">784</span>  }<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span>  public static class ClientTrustStoreInitializationException extends RuntimeException {<a name="line.786"></a>
+<span class="sourceLineNo">787</span><a name="line.787"></a>
+<span class="sourceLineNo">788</span>    public ClientTrustStoreInitializationException(String message, Throwable cause) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>      super(message, cause);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    }<a name="line.790"></a>
+<span class="sourceLineNo">791</span>  }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>}<a name="line.792"></a>
 
 
 
diff --git a/book.html b/book.html
index a4c317abc9a..49980190a82 100644
--- a/book.html
+++ b/book.html
@@ -48194,7 +48194,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-alpha-4-SNAPSHOT<br>
-Last updated 2022-11-09 14:29:38 UTC
+Last updated 2022-11-10 14:29:39 UTC
 </div>
 </div>
 <script type="text/x-mathjax-config">
diff --git a/bulk-loads.html b/bulk-loads.html
index 1cec40f2645..14de7bd574a 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -180,7 +180,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-09</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-10</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 80b8fbea91b..6479a822d49 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -176,7 +176,7 @@
 <td>4789</td>
 <td>0</td>
 <td>0</td>
-<td>1748</td></tr></table></section><section>
+<td>1747</td></tr></table></section><section>
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
 <tr class="a">
@@ -2523,7 +2523,7 @@
 <td><a href="#org.apache.hadoop.hbase.rest.client.Client.java">org/apache/hadoop/hbase/rest/client/Client.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
+<td>1</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.model.ScannerModel.java">org/apache/hadoop/hbase/rest/model/ScannerModel.java</a></td>
 <td>0</td>
@@ -3239,7 +3239,7 @@
 <tr class="b">
 <td>annotation</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_annotation.html#MissingDeprecated">MissingDeprecated</a></td>
-<td>10</td>
+<td>13</td>
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td></tr>
 <tr class="a">
 <td>blocks</td>
@@ -3249,7 +3249,7 @@
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_blocks.html#NeedBraces">NeedBraces</a></td>
-<td>957</td>
+<td>956</td>
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td></tr>
 <tr class="a">
 <td>coding</td>
@@ -3309,7 +3309,7 @@
 <tr class="b">
 <td>javadoc</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>53</td>
+<td>50</td>
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td></tr>
 <tr class="a">
 <td>misc</td>
@@ -4700,8 +4700,8 @@
 <th>Line</th></tr>
 <tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
-<td>javadoc</td>
-<td>NonEmptyAtclauseDescription</td>
+<td>annotation</td>
+<td>MissingDeprecated</td>
 <td>Javadoc comment at column 20 has parse error. Missed HTML close tag 'path-to-conf'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>172</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.Action.java">org/apache/hadoop/hbase/client/Action.java</h3>
@@ -9818,8 +9818,8 @@
 <th>Line</th></tr>
 <tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
-<td>javadoc</td>
-<td>NonEmptyAtclauseDescription</td>
+<td>annotation</td>
+<td>MissingDeprecated</td>
 <td>Javadoc comment at column 14 has parse error. Details: mismatched input ':' expecting &lt;EOF&gt; while parsing JAVADOC</td>
 <td>46</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.mapreduce.SimpleTotalOrderPartitioner.java">org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.java</h3>
@@ -14829,148 +14829,142 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>326</td></tr>
-<tr class="a">
-<td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
-<td>blocks</td>
-<td>NeedBraces</td>
-<td>'if' construct must use '{}'s.</td>
-<td>498</td></tr></table></section><section>
+<td>328</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.rest.model.ScannerModel.java">org/apache/hadoop/hbase/rest/model/ScannerModel.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'type' must be private and have accessor methods.</td>
 <td>133</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'value' must be private and have accessor methods.</td>
 <td>135</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'op' must be private and have accessor methods.</td>
 <td>137</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'type' must be private and have accessor methods.</td>
 <td>208</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'op' must be private and have accessor methods.</td>
 <td>210</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'value' must be private and have accessor methods.</td>
 <td>214</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'filters' must be private and have accessor methods.</td>
 <td>216</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'limit' must be private and have accessor methods.</td>
 <td>218</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'offset' must be private and have accessor methods.</td>
 <td>220</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'family' must be private and have accessor methods.</td>
 <td>222</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'qualifier' must be private and have accessor methods.</td>
 <td>224</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'ifMissing' must be private and have accessor methods.</td>
 <td>226</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'latestVersion' must be private and have accessor methods.</td>
 <td>228</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'minColumn' must be private and have accessor methods.</td>
 <td>230</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'minColumnInclusive' must be private and have accessor methods.</td>
 <td>232</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'maxColumn' must be private and have accessor methods.</td>
 <td>234</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'maxColumnInclusive' must be private and have accessor methods.</td>
 <td>236</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'dropDependentColumn' must be private and have accessor methods.</td>
 <td>238</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'chance' must be private and have accessor methods.</td>
 <td>240</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'prefixes' must be private and have accessor methods.</td>
 <td>242</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'timestamps' must be private and have accessor methods.</td>
 <td>246</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -14978,13 +14972,13 @@
 <td>841</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.rest.model.TableRegionModel.java">org/apache/hadoop/hbase/rest/model/TableRegionModel.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -14992,19 +14986,19 @@
 <td>124</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.rest.model.TestScannerModel.java">org/apache/hadoop/hbase/rest/model/TestScannerModel.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 117).</td>
 <td>57</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -15012,13 +15006,13 @@
 <td>58</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.rest.model.VersionModel.java">org/apache/hadoop/hbase/rest/model/VersionModel.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15026,13 +15020,13 @@
 <td>75</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.AbstractTestSecureIPC.java">org/apache/hadoop/hbase/security/AbstractTestSecureIPC.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -15040,13 +15034,13 @@
 <td>344</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.AuthMethod.java">org/apache/hadoop/hbase/security/AuthMethod.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
@@ -15054,13 +15048,13 @@
 <td>36</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.HBaseSaslRpcClient.java">org/apache/hadoop/hbase/security/HBaseSaslRpcClient.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -15068,13 +15062,13 @@
 <td>216</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.SaslUtil.java">org/apache/hadoop/hbase/security/SaslUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -15082,13 +15076,13 @@
 <td>34</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.SecurityUtil.java">org/apache/hadoop/hbase/security/SecurityUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -15096,13 +15090,13 @@
 <td>26</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.TestUser.java">org/apache/hadoop/hbase/security/TestUser.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -15110,13 +15104,13 @@
 <td>20</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.User.java">org/apache/hadoop/hbase/security/User.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15124,13 +15118,13 @@
 <td>291</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.AccessControlClient.java">org/apache/hadoop/hbase/security/access/AccessControlClient.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -15138,13 +15132,13 @@
 <td>40</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.AccessControlFilter.java">org/apache/hadoop/hbase/security/access/AccessControlFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -15152,13 +15146,13 @@
 <td>165</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.AccessControlUtil.java">org/apache/hadoop/hbase/security/access/AccessControlUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -15166,19 +15160,19 @@
 <td>45</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.AccessController.java">org/apache/hadoop/hbase/security/access/AccessController.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 169 lines (max allowed is 150).</td>
 <td>435</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15186,25 +15180,25 @@
 <td>549</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.SecureTestUtil.java">org/apache/hadoop/hbase/security/access/SecureTestUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>70</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>117</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -15212,25 +15206,25 @@
 <td>262</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.ShadedAccessControlUtil.java">org/apache/hadoop/hbase/security/access/ShadedAccessControlUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>46</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>148</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15238,25 +15232,25 @@
 <td>149</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.TestAccessController.java">org/apache/hadoop/hbase/security/access/TestAccessController.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>930</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 243 lines (max allowed is 150).</td>
 <td>1344</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -15264,19 +15258,19 @@
 <td>1810</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.TestAccessController2.java">org/apache/hadoop/hbase/security/access/TestAccessController2.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>304</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
@@ -15284,13 +15278,13 @@
 <td>330</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.TestCellACLs.java">org/apache/hadoop/hbase/security/access/TestCellACLs.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -15298,13 +15292,13 @@
 <td>151</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.TestHDFSAclHelper.java">org/apache/hadoop/hbase/security/access/TestHDFSAclHelper.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -15312,31 +15306,31 @@
 <td>32</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.TestNamespaceCommands.java">org/apache/hadoop/hbase/security/access/TestNamespaceCommands.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
 <td>253</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 106).</td>
 <td>254</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>255</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -15344,43 +15338,43 @@
 <td>256</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.TestWithDisabledAuthorization.java">org/apache/hadoop/hbase/security/access/TestWithDisabledAuthorization.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 162 lines (max allowed is 150).</td>
 <td>235</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 296 lines (max allowed is 150).</td>
 <td>458</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
 <td>684</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 106).</td>
 <td>685</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>686</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -15388,13 +15382,13 @@
 <td>687</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.access.ZKPermissionWatcher.java">org/apache/hadoop/hbase/security/access/ZKPermissionWatcher.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15402,13 +15396,13 @@
 <td>232</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.token.SecureTestCluster.java">org/apache/hadoop/hbase/security/token/SecureTestCluster.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -15416,13 +15410,13 @@
 <td>36</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.token.TestZKSecretWatcher.java">org/apache/hadoop/hbase/security/token/TestZKSecretWatcher.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -15430,19 +15424,19 @@
 <td>137</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.token.TokenUtil.java">org/apache/hadoop/hbase/security/token/TokenUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>41</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -15450,19 +15444,19 @@
 <td>116</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.CellVisibility.java">org/apache/hadoop/hbase/security/visibility/CellVisibility.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>63</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15470,31 +15464,31 @@
 <td>64</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.DefaultVisibilityLabelServiceImpl.java">org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>364</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>400</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>627</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15502,13 +15496,13 @@
 <td>672</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.ExpAsStringVisibilityLabelServiceImpl.java">org/apache/hadoop/hbase/security/visibility/ExpAsStringVisibilityLabelServiceImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15516,13 +15510,13 @@
 <td>430</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.ExpressionParser.java">org/apache/hadoop/hbase/security/visibility/ExpressionParser.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15530,19 +15524,19 @@
 <td>76</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.LabelFilteringScanLabelGenerator.java">org/apache/hadoop/hbase/security/visibility/LabelFilteringScanLabelGenerator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>45</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15550,13 +15544,13 @@
 <td>48</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.TestExpressionExpander.java">org/apache/hadoop/hbase/security/visibility/TestExpressionExpander.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -15564,13 +15558,13 @@
 <td>41</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.TestExpressionParser.java">org/apache/hadoop/hbase/security/visibility/TestExpressionParser.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -15578,13 +15572,13 @@
 <td>44</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsReplication.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsReplication.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -15592,13 +15586,13 @@
 <td>121</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithDefaultVisLabelService.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsWithDefaultVisLabelService.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15606,13 +15600,13 @@
 <td>148</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithDeletes.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsWithDeletes.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -15620,13 +15614,13 @@
 <td>2582</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.TestVisibilityLablesWithGroups.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLablesWithGroups.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -15634,13 +15628,13 @@
 <td>119</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.VisibilityClient.java">org/apache/hadoop/hbase/security/visibility/VisibilityClient.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -15648,13 +15642,13 @@
 <td>52</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.VisibilityConstants.java">org/apache/hadoop/hbase/security/visibility/VisibilityConstants.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -15662,13 +15656,13 @@
 <td>25</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.VisibilityController.java">org/apache/hadoop/hbase/security/visibility/VisibilityController.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15676,13 +15670,13 @@
 <td>578</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.VisibilityLabelServiceManager.java">org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -15690,13 +15684,13 @@
 <td>30</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.VisibilityLabelsCache.java">org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -15704,13 +15698,13 @@
 <td>48</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.VisibilityLabelsValidator.java">org/apache/hadoop/hbase/security/visibility/VisibilityLabelsValidator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -15718,13 +15712,13 @@
 <td>26</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.VisibilityNewVersionBehaivorTracker.java">org/apache/hadoop/hbase/security/visibility/VisibilityNewVersionBehaivorTracker.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -15732,13 +15726,13 @@
 <td>55</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.VisibilityTestUtil.java">org/apache/hadoop/hbase/security/visibility/VisibilityTestUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -15746,13 +15740,13 @@
 <td>28</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.security.visibility.VisibilityUtils.java">org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -15760,121 +15754,121 @@
 <td>72</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil.java">org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>343</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>408</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>505</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>517</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>581</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1432</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1434</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1510</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1516</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1646</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1784</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 106).</td>
 <td>2012</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 110).</td>
 <td>2013</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2090</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2238</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2247</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2274</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2283</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15882,37 +15876,37 @@
 <td>3080</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.shaded.protobuf.ResponseConverter.java">org/apache/hadoop/hbase/shaded/protobuf/ResponseConverter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>255</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>265</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>295</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>305</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15920,13 +15914,13 @@
 <td>414</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.slowlog.SlowLogTableAccessor.java">org/apache/hadoop/hbase/slowlog/SlowLogTableAccessor.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -15934,61 +15928,61 @@
 <td>44</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.snapshot.ExportSnapshot.java">org/apache/hadoop/hbase/snapshot/ExportSnapshot.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>290</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>291</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>552</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>555</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>559</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>562</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>828</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>829</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -15996,19 +15990,19 @@
 <td>965</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils.java">org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>44</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -16016,43 +16010,43 @@
 <td>132</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.snapshot.RestoreSnapshotHelper.java">org/apache/hadoop/hbase/snapshot/RestoreSnapshotHelper.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>369</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>409</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>424</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>439</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>601</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16060,13 +16054,13 @@
 <td>776</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.snapshot.SnapshotDescriptionUtils.java">org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16074,37 +16068,37 @@
 <td>444</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.snapshot.SnapshotInfo.java">org/apache/hadoop/hbase/snapshot/SnapshotInfo.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>138</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>139</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>140</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>339</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16112,19 +16106,19 @@
 <td>485</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.snapshot.SnapshotManifest.java">org/apache/hadoop/hbase/snapshot/SnapshotManifest.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>346</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16132,13 +16126,13 @@
 <td>472</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.snapshot.SnapshotManifestV2.java">org/apache/hadoop/hbase/snapshot/SnapshotManifestV2.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16146,19 +16140,19 @@
 <td>146</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils.java">org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>546</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16166,91 +16160,91 @@
 <td>579</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.test.IntegrationTestBigLinkedList.java">org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td>636</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td>695</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td>699</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td>702</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>914</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>999</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>1001</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1034</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1280</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1304</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1307</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1626</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1633</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16258,13 +16252,13 @@
 <td>1634</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.test.IntegrationTestBigLinkedListWithVisibility.java">org/apache/hadoop/hbase/test/IntegrationTestBigLinkedListWithVisibility.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16272,43 +16266,43 @@
 <td>336</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.test.IntegrationTestLoadAndVerify.java">org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>454</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>470</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>487</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>489</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>498</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -16316,13 +16310,13 @@
 <td>638</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.test.IntegrationTestTimeBoundedMultiGetRequestsWithRegionReplicas.java">org/apache/hadoop/hbase/test/IntegrationTestTimeBoundedMultiGetRequestsWithRegionReplicas.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -16330,19 +16324,19 @@
 <td>66</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.test.IntegrationTestTimeBoundedRequestsWithRegionReplicas.java">org/apache/hadoop/hbase/test/IntegrationTestTimeBoundedRequestsWithRegionReplicas.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>227</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16350,13 +16344,13 @@
 <td>347</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.test.IntegrationTestWithCellVisibilityLoadAndVerify.java">org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -16364,13 +16358,13 @@
 <td>401</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.thrift.TestThriftServer.java">org/apache/hadoop/hbase/thrift/TestThriftServer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16378,13 +16372,13 @@
 <td>732</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.thrift2.DemoClient.java">org/apache/hadoop/hbase/thrift2/DemoClient.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -16392,13 +16386,13 @@
 <td>109</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.tool.MapreduceTestingShim.java">org/apache/hadoop/hbase/tool/MapreduceTestingShim.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16406,19 +16400,19 @@
 <td>104</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.tool.TestBulkLoadHFilesSplitRecovery.java">org/apache/hadoop/hbase/tool/TestBulkLoadHFilesSplitRecovery.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>246</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -16426,27 +16420,27 @@
 <td>549</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.trace.OpenTelemetryClassRule.java">org/apache/hadoop/hbase/trace/OpenTelemetryClassRule.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
-<td>javadoc</td>
-<td>NonEmptyAtclauseDescription</td>
+<td>annotation</td>
+<td>MissingDeprecated</td>
 <td>Javadoc comment at column 20 has parse error. Missed HTML close tag 'SpanData'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>65</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.AbstractHBaseTool.java">org/apache/hadoop/hbase/util/AbstractHBaseTool.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -16454,25 +16448,25 @@
 <td>282</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.Addressing.java">org/apache/hadoop/hbase/util/Addressing.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>32</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>121</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16480,61 +16474,61 @@
 <td>125</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.AvlUtil.java">org/apache/hadoop/hbase/util/AvlUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>157</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>203</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>230</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>234</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>238</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>258</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>428</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>522</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16542,31 +16536,31 @@
 <td>523</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.BoundedPriorityBlockingQueue.java">org/apache/hadoop/hbase/util/BoundedPriorityBlockingQueue.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>87</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>189</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>312</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16574,205 +16568,205 @@
 <td>313</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.Bytes.java">org/apache/hadoop/hbase/util/Bytes.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>542</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>556</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>577</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>578</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>602</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1465</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1466</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1467</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1468</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1473</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1505</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1518</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1519</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1520</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1712</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1790</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1791</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1795</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>1796</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>1823</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1897</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1899</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>1901</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1927</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1929</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>1931</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1957</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1984</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2009</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>2026</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>2037</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2050</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16780,67 +16774,67 @@
 <td>2063</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.ClassSize.java">org/apache/hadoop/hbase/util/ClassSize.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>33</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>360</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>370</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>371</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>372</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>373</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>374</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>375</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>376</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16848,13 +16842,13 @@
 <td>377</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.Classes.java">org/apache/hadoop/hbase/util/Classes.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -16862,13 +16856,13 @@
 <td>25</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.CompressionTest.java">org/apache/hadoop/hbase/util/CompressionTest.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -16876,31 +16870,31 @@
 <td>52</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.ConcurrentMapUtils.java">org/apache/hadoop/hbase/util/ConcurrentMapUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>28</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>59</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>59</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -16908,13 +16902,13 @@
 <td>60</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.ConnectionCache.java">org/apache/hadoop/hbase/util/ConnectionCache.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16922,13 +16916,13 @@
 <td>129</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.CoprocessorClassLoader.java">org/apache/hadoop/hbase/util/CoprocessorClassLoader.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -16936,19 +16930,19 @@
 <td>71</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.DirectMemoryUtils.java">org/apache/hadoop/hbase/util/DirectMemoryUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>44</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16956,13 +16950,13 @@
 <td>114</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.EncryptionTest.java">org/apache/hadoop/hbase/util/EncryptionTest.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -16970,13 +16964,13 @@
 <td>36</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.EnvironmentEdgeManager.java">org/apache/hadoop/hbase/util/EnvironmentEdgeManager.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -16984,55 +16978,55 @@
 <td>56</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.FSUtils.java">org/apache/hadoop/hbase/util/FSUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>464</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>574</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>654</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>908</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 115).</td>
 <td>1421</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1474</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1486</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17040,13 +17034,13 @@
 <td>1696</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.GetJavaProperty.java">org/apache/hadoop/hbase/util/GetJavaProperty.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -17054,19 +17048,19 @@
 <td>27</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.HBaseConfTool.java">org/apache/hadoop/hbase/util/HBaseConfTool.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>27</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -17074,187 +17068,187 @@
 <td>29</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.HBaseFsck.java">org/apache/hadoop/hbase/util/HBaseFsck.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>672</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>806</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'regionName' must be private and have accessor methods.</td>
 <td>832</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'metaFirstKey' must be private and have accessor methods.</td>
 <td>833</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'metaLastKey' must be private and have accessor methods.</td>
 <td>834</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'storesFirstKey' must be private and have accessor methods.</td>
 <td>835</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'storesLastKey' must be private and have accessor methods.</td>
 <td>836</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>896</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>898</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>973</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1099</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1104</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1153</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1157</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 118).</td>
 <td>1163</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
 <td>1173</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1191</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1346</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2026</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2068</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 231 lines (max allowed is 150).</td>
 <td>2089</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2092</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2164</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'errorCount' must be private and have accessor methods.</td>
 <td>2796</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>3460</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 114).</td>
 <td>3465</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
 <td>3480</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 120).</td>
 <td>3488</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
 <td>3492</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -17262,13 +17256,13 @@
 <td>3544</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.HBaseFsckRepair.java">org/apache/hadoop/hbase/util/HBaseFsckRepair.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -17276,13 +17270,13 @@
 <td>54</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.HBaseHomePath.java">org/apache/hadoop/hbase/util/HBaseHomePath.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -17290,43 +17284,43 @@
 <td>24</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.HFileArchiveTestingUtil.java">org/apache/hadoop/hbase/util/HFileArchiveTestingUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
 <td>Class HFileArchiveTestingUtil should be declared as final.</td>
 <td>41</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>133</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>135</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>188</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>189</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17334,25 +17328,25 @@
 <td>197</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.HFileArchiveUtil.java">org/apache/hadoop/hbase/util/HFileArchiveUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>196</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>197</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17360,13 +17354,13 @@
 <td>200</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.HFileTestUtil.java">org/apache/hadoop/hbase/util/HFileTestUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -17374,19 +17368,19 @@
 <td>52</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.HashedBytes.java">org/apache/hadoop/hbase/util/HashedBytes.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>51</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17394,13 +17388,13 @@
 <td>52</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.JSONBean.java">org/apache/hadoop/hbase/util/JSONBean.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -17408,19 +17402,19 @@
 <td>255</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.JVM.java">org/apache/hadoop/hbase/util/JVM.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>181</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -17428,19 +17422,19 @@
 <td>305</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.JVMClusterUtil.java">org/apache/hadoop/hbase/util/JVMClusterUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>40</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17448,19 +17442,19 @@
 <td>305</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.JenkinsHash.java">org/apache/hadoop/hbase/util/JenkinsHash.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>104</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -17468,13 +17462,13 @@
 <td>104</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.JvmPauseMonitor.java">org/apache/hadoop/hbase/util/JvmPauseMonitor.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -17482,13 +17476,13 @@
 <td>116</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.KeyLocker.java">org/apache/hadoop/hbase/util/KeyLocker.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17496,13 +17490,13 @@
 <td>64</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.LoadTestDataGeneratorWithMOB.java">org/apache/hadoop/hbase/util/LoadTestDataGeneratorWithMOB.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17510,25 +17504,25 @@
 <td>60</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.LoadTestTool.java">org/apache/hadoop/hbase/util/LoadTestTool.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 189 lines (max allowed is 150).</td>
 <td>574</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>647</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17536,13 +17530,13 @@
 <td>886</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.LogMonitoring.java">org/apache/hadoop/hbase/util/LogMonitoring.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17550,13 +17544,13 @@
 <td>68</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.MD5Hash.java">org/apache/hadoop/hbase/util/MD5Hash.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -17564,19 +17558,19 @@
 <td>28</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.ModifyRegionUtils.java">org/apache/hadoop/hbase/util/ModifyRegionUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>96</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17584,25 +17578,25 @@
 <td>120</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.MultiThreadedAction.java">org/apache/hadoop/hbase/util/MultiThreadedAction.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 229).</td>
 <td>81</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 170 lines (max allowed is 150).</td>
 <td>314</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17610,229 +17604,229 @@
 <td>533</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.OrderedBytes.java">org/apache/hadoop/hbase/util/OrderedBytes.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>296</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>369</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>369</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>371</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>469</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>470</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>471</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>472</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>473</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>474</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>475</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>476</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>477</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>609</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>610</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>851</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>933</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>934</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>935</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>936</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>955</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>956</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>957</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>974</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>990</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>997</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>998</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1015</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>1016</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>1105</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>1106</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1123</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1145</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1167</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1202</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>1722</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
@@ -17840,43 +17834,43 @@
 <td>1723</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.PairOfSameType.java">org/apache/hadoop/hbase/util/PairOfSameType.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>71</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>72</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>73</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>93</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>94</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17884,13 +17878,13 @@
 <td>95</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.PrettyPrinter.java">org/apache/hadoop/hbase/util/PrettyPrinter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -17898,13 +17892,13 @@
 <td>32</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.ReflectionUtils.java">org/apache/hadoop/hbase/util/ReflectionUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -17912,13 +17906,13 @@
 <td>35</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.RegionMover.java">org/apache/hadoop/hbase/util/RegionMover.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -17926,37 +17920,37 @@
 <td>84</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.RegionSplitCalculator.java">org/apache/hadoop/hbase/util/RegionSplitCalculator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>44</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>75</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>76</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>77</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -17964,49 +17958,49 @@
 <td>200</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.RegionSplitter.java">org/apache/hadoop/hbase/util/RegionSplitter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>134</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 194 lines (max allowed is 150).</td>
 <td>398</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>514</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>675</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>683</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>751</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18014,19 +18008,19 @@
 <td>752</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.ServerCommandLine.java">org/apache/hadoop/hbase/util/ServerCommandLine.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>123</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -18034,13 +18028,13 @@
 <td>138</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.ShutdownHookManager.java">org/apache/hadoop/hbase/util/ShutdownHookManager.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18048,13 +18042,13 @@
 <td>65</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.SimpleByteRange.java">org/apache/hadoop/hbase/util/SimpleByteRange.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EqualsHashCode</td>
@@ -18062,25 +18056,25 @@
 <td>125</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.SimpleMutableByteRange.java">org/apache/hadoop/hbase/util/SimpleMutableByteRange.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>108</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>114</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EqualsHashCode</td>
@@ -18088,31 +18082,31 @@
 <td>207</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.SimplePositionedMutableByteRange.java">org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>162</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>168</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>194</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18120,13 +18114,13 @@
 <td>200</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.StealJobQueue.java">org/apache/hadoop/hbase/util/StealJobQueue.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18134,19 +18128,19 @@
 <td>122</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.TestBloomFilterChunk.java">org/apache/hadoop/hbase/util/TestBloomFilterChunk.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>121</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18154,13 +18148,13 @@
 <td>163</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.TestCompressionTest.java">org/apache/hadoop/hbase/util/TestCompressionTest.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -18168,25 +18162,25 @@
 <td>20</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.TestFSUtils.java">org/apache/hadoop/hbase/util/TestFSUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>139</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>172</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -18194,13 +18188,13 @@
 <td>205</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.TestIdLock.java">org/apache/hadoop/hbase/util/TestIdLock.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18208,13 +18202,13 @@
 <td>101</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.TestIdReadWriteLockWithObjectPool.java">org/apache/hadoop/hbase/util/TestIdReadWriteLockWithObjectPool.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18222,13 +18216,13 @@
 <td>126</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.TestRegionMoverWithRSGroupEnable.java">org/apache/hadoop/hbase/util/TestRegionMoverWithRSGroupEnable.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18236,13 +18230,13 @@
 <td>96</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.TestSortedList.java">org/apache/hadoop/hbase/util/TestSortedList.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -18250,19 +18244,19 @@
 <td>20</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.Threads.java">org/apache/hadoop/hbase/util/Threads.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>36</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18270,25 +18264,25 @@
 <td>94</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.Triple.java">org/apache/hadoop/hbase/util/Triple.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>64</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>66</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18296,13 +18290,13 @@
 <td>68</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.VersionInfo.java">org/apache/hadoop/hbase/util/VersionInfo.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -18310,13 +18304,13 @@
 <td>35</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.Writables.java">org/apache/hadoop/hbase/util/Writables.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -18324,25 +18318,25 @@
 <td>34</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.ZKDataMigrator.java">org/apache/hadoop/hbase/util/ZKDataMigrator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
 <td>Class ZKDataMigrator should be declared as final.</td>
 <td>42</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>62</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18350,13 +18344,13 @@
 <td>104</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.util.hbck.HbckTestingUtil.java">org/apache/hadoop/hbase/util/hbck/HbckTestingUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -18364,13 +18358,13 @@
 <td>35</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.wal.BoundedGroupingStrategy.java">org/apache/hadoop/hbase/wal/BoundedGroupingStrategy.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18378,13 +18372,13 @@
 <td>58</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.wal.DisabledWALProvider.java">org/apache/hadoop/hbase/wal/DisabledWALProvider.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18392,19 +18386,19 @@
 <td>223</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.wal.IOTestProvider.java">org/apache/hadoop/hbase/wal/IOTestProvider.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>241</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -18412,55 +18406,55 @@
 <td>243</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.wal.TestWALFactory.java">org/apache/hadoop/hbase/wal/TestWALFactory.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>286</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>301</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>309</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>326</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>334</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>339</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>475</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18468,13 +18462,13 @@
 <td>535</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.wal.TestWALRootDir.java">org/apache/hadoop/hbase/wal/TestWALRootDir.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18482,37 +18476,37 @@
 <td>132</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.wal.TestWALSplit.java">org/apache/hadoop/hbase/wal/TestWALSplit.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>234</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>714</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>849</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1062</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -18520,43 +18514,43 @@
 <td>1066</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.wal.WALPerformanceEvaluation.java">org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 180 lines (max allowed is 150).</td>
 <td>181</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>326</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>329</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>350</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>402</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18564,13 +18558,13 @@
 <td>532</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.wal.WALSplitter.java">org/apache/hadoop/hbase/wal/WALSplitter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -18578,13 +18572,13 @@
 <td>281</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.zookeeper.ZKMetadata.java">org/apache/hadoop/hbase/zookeeper/ZKMetadata.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -18592,109 +18586,109 @@
 <td>27</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.zookeeper.ZNodePaths.java">org/apache/hadoop/hbase/zookeeper/ZNodePaths.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'baseZNode' must be private and have accessor methods.</td>
 <td>43</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'rsZNode' must be private and have accessor methods.</td>
 <td>52</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'drainingZNode' must be private and have accessor methods.</td>
 <td>54</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'masterAddressZNode' must be private and have accessor methods.</td>
 <td>56</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'backupMasterAddressesZNode' must be private and have accessor methods.</td>
 <td>58</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'clusterStateZNode' must be private and have accessor methods.</td>
 <td>60</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'tableZNode' must be private and have accessor methods.</td>
 <td>66</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'clusterIdZNode' must be private and have accessor methods.</td>
 <td>68</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'splitLogZNode' must be private and have accessor methods.</td>
 <td>70</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'balancerZNode' must be private and have accessor methods.</td>
 <td>72</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'regionNormalizerZNode' must be private and have accessor methods.</td>
 <td>74</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'switchZNode' must be private and have accessor methods.</td>
 <td>76</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'masterMaintZNode' must be private and have accessor methods.</td>
 <td>78</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'replicationZNode' must be private and have accessor methods.</td>
 <td>81</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'peersZNode' must be private and have accessor methods.</td>
 <td>83</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'queuesZNode' must be private and have accessor methods.</td>
 <td>85</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
@@ -18708,7 +18702,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-09</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-10</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.rss b/checkstyle.rss
index 9802899c68f..0a67a12de5d 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -26,7 +26,7 @@ under the License.
     <copyright>&#169;2007 - 2022 The Apache Software Foundation</copyright>
     <item>
       <title>File: 4789,
-             Errors: 1748,
+             Errors: 1747,
              Warnings: 0,
              Infos: 0
       </title>
@@ -25479,7 +25479,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  1
                 </td>
               </tr>
                           <tr>
diff --git a/coc.html b/coc.html
index d1eb5c624d7..74a4028c112 100644
--- a/coc.html
+++ b/coc.html
@@ -248,7 +248,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-09</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-10</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 5231568705a..284545c1fdf 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -313,7 +313,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-09</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-10</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 0e187007e0c..d320dfc2daa 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -1013,7 +1013,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-09</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-10</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 a934fb464e8..98eb213da98 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -195,7 +195,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-09</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-10</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 935a3f630d0..6f6c87df6e6 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -1319,7 +1319,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-09</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-11-10</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/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index c9ba6ae0c72..43ded693db3 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -166,10 +166,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/chaos/package-tree.html b/devapidocs/org/apache/hadoop/hbase/chaos/package-tree.html
index 0a0fcc3460b..192324858b4 100644
--- a/devapidocs/org/apache/hadoop/hbase/chaos/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/chaos/package-tree.html
@@ -103,8 +103,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.chaos.<a href="../../../../../org/apache/hadoop/hbase/chaos/ChaosService.ChaosServiceName.html" title="enum in org.apache.hadoop.hbase.chaos"><span class="typeNameLink">ChaosService.ChaosServiceName</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.chaos.<a href="../../../../../org/apache/hadoop/hbase/chaos/ChaosService.ExecutorAction.html" title="enum in org.apache.hadoop.hbase.chaos"><span class="typeNameLink">ChaosService.ExecutorAction</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.chaos.<a href="../../../../../org/apache/hadoop/hbase/chaos/ChaosService.ChaosServiceName.html" title="enum in org.apache.hadoop.hbase.chaos"><span class="typeNameLink">ChaosService.ChaosServiceName</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index a48d910e363..d701c281b85 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -469,24 +469,24 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/LogQueryFilter.Type.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">LogQueryFilter.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/LogQueryFilter.FilterByOperator.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">LogQueryFilter.FilterByOperator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/LogQueryFilter.Type.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">LogQueryFilter.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ServerType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ServerType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/LogQueryFilter.FilterByOperator.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">LogQueryFilter.FilterByOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
index d59170746fa..6982d896c24 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -105,8 +105,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index 0eeb46cee75..29557714d93 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -190,13 +190,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
index 94cdb9e241a..680f8cf8697 100644
--- a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
@@ -141,8 +141,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Event.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Event</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Output.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Output</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Event.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Event</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/HttpConfig.Policy.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">HttpConfig.Policy</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/crypto/tls/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/crypto/tls/package-tree.html
index eb9895ccc3a..66a78162776 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/crypto/tls/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/crypto/tls/package-tree.html
@@ -124,8 +124,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.crypto.tls.<a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/tls/KeyStoreFileType.html" title="enum in org.apache.hadoop.hbase.io.crypto.tls"><span class="typeNameLink">KeyStoreFileType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.crypto.tls.<a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/tls/X509Util.ClientAuth.html" title="enum in org.apache.hadoop.hbase.io.crypto.tls"><span class="typeNameLink">X509Util.ClientAuth</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.crypto.tls.<a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/tls/KeyStoreFileType.html" title="enum in org.apache.hadoop.hbase.io.crypto.tls"><span class="typeNameLink">KeyStoreFileType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.crypto.tls.<a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/tls/StandardTypeFileKeyStoreLoader.SupportedStandardKeyFormat.html" title="enum in org.apache.hadoop.hbase.io.crypto.tls"><span class="typeNameLink">StandardTypeFileKeyStoreLoader.SupportedStandardKeyFormat</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/encoding/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/encoding/package-tree.html
index a6fd37815f8..06b1904ccb5 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/encoding/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/encoding/package-tree.html
@@ -166,8 +166,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.encoding.<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding"><span class="typeNameLink">DataBlockEncoding</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.encoding.<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding"><span class="typeNameLink">IndexBlockEncoding</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.encoding.<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding"><span class="typeNameLink">DataBlockEncoding</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index a2d8134b62e..828058e1d4b 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -321,10 +321,10 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ReaderContext.ReaderType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">ReaderContext.ReaderType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ReaderContext.ReaderType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">ReaderContext.ReaderType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 9c12a58d2c9..3e9e110098e 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -368,9 +368,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index e61b56b6b2d..839fe22df88 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -300,11 +300,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/WALPlayer.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">WALPlayer.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/WALPlayer.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">WALPlayer.Counter</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
index b080f222931..e16bef14e92 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
@@ -213,8 +213,8 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalanceAction.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BalanceAction.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.GeneratorType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">StochasticLoadBalancer.GeneratorType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BalancerClusterState.LocalityType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.GeneratorType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">StochasticLoadBalancer.GeneratorType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index 0c118b263e1..7f770bee5fa 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -318,11 +318,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.ServerLiveState.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">ServerManager.ServerLiveState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.ServerLiveState.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">ServerManager.ServerLiveState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index 9cec29c18c9..a86aa08dcd4 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -227,9 +227,9 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
index feb8a8c188c..ea16cfa6271 100644
--- a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
@@ -126,8 +126,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index 1ebe6cdd2cd..90783cf8a33 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -483,22 +483,22 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CatalogReplicaMode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CatalogReplicaMode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ServerTask.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ServerTask.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaRegionLocationCache.ZNodeOpType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaRegionLocationCache.ZNodeOpType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClientMetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClientMetaTableAccessor.QueryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ServerTask.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ServerTask.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CatalogReplicaMode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CatalogReplicaMode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 7474171d2a1..afe1b84b914 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -217,9 +217,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index d1cec78f553..3f8986525fb 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -240,12 +240,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 76a17820904..ecccc91708c 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -755,21 +755,21 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReadPointCalculationLock.LockType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ReadPointCalculationLock.LockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReadPointCalculationLock.LockType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ReadPointCalculationLock.LockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index e429447de7c..43d1a1ef739 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -131,8 +131,8 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/storefiletracker/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/storefiletracker/package-tree.html
index 1333e550192..16aa28fd4d8 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/storefiletracker/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/storefiletracker/package-tree.html
@@ -132,8 +132,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.storefiletracker.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/storefiletracker/StoreFileTrackerFactory.Trackers.html" title="enum in org.apache.hadoop.hbase.regionserver.storefiletracker"><span class="typeNameLink">StoreFileTrackerFactory.Trackers</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.storefiletracker.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/storefiletracker/ModifyStoreFileTrackerProcedure.StoreFileTrackerState.html" title="enum in org.apache.hadoop.hbase.regionserver.storefiletracker"><span class="typeNameLink">ModifyStoreFileTrackerProcedure.StoreFileTrackerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.storefiletracker.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/storefiletracker/StoreFileTrackerFactory.Trackers.html" title="enum in org.apache.hadoop.hbase.regionserver.storefiletracker"><span class="typeNameLink">StoreFileTrackerFactory.Trackers</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index a71e0692f99..7d7d2e334e0 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -251,11 +251,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEventTrackerListener.WalState.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALEventTrackerListener.WalState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.RollRequestReason.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALActionsListener.RollRequestReason</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEventTrackerListener.WalState.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALEventTrackerListener.WalState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
index f9442ed52e7..13f95f813bf 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
@@ -173,8 +173,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index 1a54113f14e..ced5370a25b 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -217,8 +217,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/client/Client.ClientTrustStoreInitializationException.html b/devapidocs/org/apache/hadoop/hbase/rest/client/Client.ClientTrustStoreInitializationException.html
index b2e6bc72d9b..aa5c4982c5c 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/client/Client.ClientTrustStoreInitializationException.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/client/Client.ClientTrustStoreInitializationException.html
@@ -126,7 +126,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.783">Client.ClientTrustStoreInitializationException</a>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.786">Client.ClientTrustStoreInitializationException</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -196,7 +196,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeExce
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ClientTrustStoreInitializationException</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.ClientTrustStoreInitializationException.html#line.785">ClientTrustStoreInitializationException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.ClientTrustStoreInitializationException.html#line.788">ClientTrustStoreInitializationException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/client/Client.html b/devapidocs/org/apache/hadoop/hbase/rest/client/Client.html
index 9a583bde9f4..f133894aefb 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/client/Client.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/client/Client.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.73">Client</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.75">Client</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">A wrapper around HttpClient which provides some useful function and semantics for interacting
  with the REST gateway.</div>
@@ -587,7 +587,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>EMPTY_HEADER_ARRAY</h4>
-<pre>public static final&nbsp;org.apache.http.Header[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.74">EMPTY_HEADER_ARRAY</a></pre>
+<pre>public static final&nbsp;org.apache.http.Header[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.76">EMPTY_HEADER_ARRAY</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -596,7 +596,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.76">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.78">LOG</a></pre>
 </li>
 </ul>
 <a name="httpClient">
@@ -605,7 +605,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>httpClient</h4>
-<pre>private&nbsp;org.apache.http.client.HttpClient <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.78">httpClient</a></pre>
+<pre>private&nbsp;org.apache.http.client.HttpClient <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.80">httpClient</a></pre>
 </li>
 </ul>
 <a name="cluster">
@@ -614,7 +614,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cluster</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.79">cluster</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.81">cluster</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -623,7 +623,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.80">conf</a></pre>
+<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.82">conf</a></pre>
 </li>
 </ul>
 <a name="sslEnabled">
@@ -632,7 +632,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>sslEnabled</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.81">sslEnabled</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.83">sslEnabled</a></pre>
 </li>
 </ul>
 <a name="resp">
@@ -641,7 +641,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>resp</h4>
-<pre>private&nbsp;org.apache.http.HttpResponse <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.82">resp</a></pre>
+<pre>private&nbsp;org.apache.http.HttpResponse <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.84">resp</a></pre>
 </li>
 </ul>
 <a name="httpGet">
@@ -650,7 +650,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>httpGet</h4>
-<pre>private&nbsp;org.apache.http.client.methods.HttpGet <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.83">httpGet</a></pre>
+<pre>private&nbsp;org.apache.http.client.methods.HttpGet <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.85">httpGet</a></pre>
 </li>
 </ul>
 <a name="extraHeaders">
@@ -659,7 +659,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>extraHeaders</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../../src-html/org/apache/ [...]
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../../src-html/org/apache/ [...]
 </li>
 </ul>
 <a name="AUTH_COOKIE">
@@ -668,7 +668,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>AUTH_COOKIE</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.87">AUTH_COOKIE</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.89">AUTH_COOKIE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.rest.client.Client.AUTH_COOKIE">Constant Field Values</a></dd>
@@ -681,7 +681,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>AUTH_COOKIE_EQ</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.88">AUTH_COOKIE_EQ</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.90">AUTH_COOKIE_EQ</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.rest.client.Client.AUTH_COOKIE_EQ">Constant Field Values</a></dd>
@@ -694,7 +694,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>COOKIE</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.89">COOKIE</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.91">COOKIE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.rest.client.Client.COOKIE">Constant Field Values</a></dd>
@@ -715,7 +715,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.94">Client</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.96">Client</a>()</pre>
 <div class="block">Default Constructor</div>
 </li>
 </ul>
@@ -725,7 +725,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.141">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.143">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster)</pre>
 <div class="block">Constructor</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -739,7 +739,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.150">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.152">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
               boolean&nbsp;sslEnabled)</pre>
 <div class="block">Constructor</div>
 <dl>
@@ -755,7 +755,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.160">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.162">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
               org.apache.hadoop.conf.Configuration&nbsp;conf,
               boolean&nbsp;sslEnabled)</pre>
 <div class="block">Constructor</div>
@@ -773,7 +773,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.172">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.174">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;trustStorePath,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;trustStorePassword,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;trustStoreType)</pre>
@@ -795,7 +795,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Client</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.186">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.188">Client</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
               org.apache.hadoop.conf.Configuration&nbsp;conf,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;trustStorePath,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;trustStorePassword,
@@ -827,7 +827,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>initialize</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.98">initialize</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.100">initialize</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                         org.apache.hadoop.conf.Configuration&nbsp;conf,
                         boolean&nbsp;sslEnabled,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security">KeyStore</a>&gt;&nbsp;trustStore)</pre>
@@ -839,7 +839,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.212">shutdown</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.214">shutdown</a>()</pre>
 <div class="block">Shut down the client. Close any open persistent connections.</div>
 </li>
 </ul>
@@ -849,7 +849,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getHttpClient</h4>
-<pre>public&nbsp;org.apache.http.client.HttpClient&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.216">getHttpClient</a>()</pre>
+<pre>public&nbsp;org.apache.http.client.HttpClient&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.218">getHttpClient</a>()</pre>
 <div class="block">Returns the wrapped HttpClient</div>
 </li>
 </ul>
@@ -859,7 +859,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>addExtraHeader</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.224">addExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.226">addExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
 <div class="block">Add extra headers. These extra headers will be applied to all http methods before they are
  removed. If any header is not used any more, client needs to remove it explicitly.</div>
@@ -871,7 +871,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getExtraHeader</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.231">getExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.233">getExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Get an extra header value.</div>
 </li>
 </ul>
@@ -881,7 +881,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getExtraHeaders</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apa [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apa [...]
 <div class="block">Get all extra headers (read-only).</div>
 </li>
 </ul>
@@ -891,7 +891,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>removeExtraHeader</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.245">removeExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.247">removeExtraHeader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Remove an extra header.</div>
 </li>
 </ul>
@@ -901,7 +901,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>executePathOnly</h4>
-<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.260">executePathOnly</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.262">executePathOnly</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                                                     org.apache.http.client.methods.HttpUriRequest&nbsp;method,
                                                     org.apache.http.Header[]&nbsp;headers,
                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
@@ -929,7 +929,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>executeURI</h4>
-<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.314">executeURI</a>(org.apache.http.client.methods.HttpUriRequest&nbsp;method,
+<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.316">executeURI</a>(org.apache.http.client.methods.HttpUriRequest&nbsp;method,
                                                org.apache.http.Header[]&nbsp;headers,
                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri)
                                         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>
@@ -952,7 +952,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>execute</h4>
-<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.353">execute</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;org.apache.http.HttpResponse&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.355">execute</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                                             org.apache.http.client.methods.HttpUriRequest&nbsp;method,
                                             org.apache.http.Header[]&nbsp;headers,
                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
@@ -979,7 +979,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>negotiate</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.367">negotiate</a>(org.apache.http.client.methods.HttpUriRequest&nbsp;method,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.369">negotiate</a>(org.apache.http.client.methods.HttpUriRequest&nbsp;method,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Initiate client side Kerberos negotiation with the server.</div>
@@ -998,7 +998,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>injectToken</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.385">injectToken</a>(org.apache.http.client.methods.HttpUriRequest&nbsp;method,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.387">injectToken</a>(org.apache.http.client.methods.HttpUriRequest&nbsp;method,
                          org.apache.hadoop.security.authentication.client.AuthenticatedURL.Token&nbsp;token)</pre>
 <div class="block">Helper method that injects an authentication token to send with the method.</div>
 <dl>
@@ -1014,7 +1014,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getCluster</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.396">getCluster</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.398">getCluster</a>()</pre>
 <div class="block">Returns the cluster definition</div>
 </li>
 </ul>
@@ -1024,7 +1024,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setCluster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.403">setCluster</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.405">setCluster</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>cluster</code> - the cluster definition</dd>
@@ -1037,7 +1037,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>head</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.412">head</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.414">head</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a HEAD request</div>
 <dl>
@@ -1056,7 +1056,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>head</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.423">head</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.425">head</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      org.apache.http.Header[]&nbsp;headers)
               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>
@@ -1079,7 +1079,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.438">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.440">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a GET request</div>
 <dl>
@@ -1098,7 +1098,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.448">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.450">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a GET request</div>
@@ -1119,7 +1119,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.458">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.460">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;accept)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a GET request</div>
@@ -1140,7 +1140,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.469">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.471">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;accept)
              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>
@@ -1163,7 +1163,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.481">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.483">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     org.apache.http.Header[]&nbsp;headers)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a GET request</div>
@@ -1207,7 +1207,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.527">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;c,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.530">get</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;c,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     org.apache.http.Header[]&nbsp;headers)
              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>
@@ -1230,7 +1230,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.544">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.547">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                     byte[]&nbsp;content)
              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>
@@ -1253,7 +1253,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.556">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.559">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                     byte[]&nbsp;content,
                     org.apache.http.Header&nbsp;extraHdr)
@@ -1278,7 +1278,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.570">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.573">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                     byte[]&nbsp;content)
@@ -1303,7 +1303,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.587">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.590">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                     byte[]&nbsp;content,
@@ -1330,7 +1330,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.605">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.608">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     org.apache.http.Header[]&nbsp;headers,
                     byte[]&nbsp;content)
              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>
@@ -1353,7 +1353,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.617">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.620">put</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                     org.apache.http.Header[]&nbsp;headers,
                     byte[]&nbsp;content)
@@ -1378,7 +1378,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.638">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.641">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                      byte[]&nbsp;content)
               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>
@@ -1401,7 +1401,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.650">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.653">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                      byte[]&nbsp;content,
                      org.apache.http.Header&nbsp;extraHdr)
@@ -1426,7 +1426,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.664">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.667">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                      byte[]&nbsp;content)
@@ -1451,7 +1451,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.681">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.684">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;contentType,
                      byte[]&nbsp;content,
@@ -1478,7 +1478,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.699">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.702">post</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      org.apache.http.Header[]&nbsp;headers,
                      byte[]&nbsp;content)
               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>
@@ -1501,7 +1501,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>post</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.711">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.714">post</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                      org.apache.http.Header[]&nbsp;headers,
                      byte[]&nbsp;content)
@@ -1526,7 +1526,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.730">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.733">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a DELETE request</div>
 <dl>
@@ -1545,7 +1545,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.740">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.743">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                        org.apache.http.Header&nbsp;extraHdr)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a DELETE request</div>
@@ -1566,7 +1566,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.751">delete</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.754">delete</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Send a DELETE request</div>
@@ -1587,7 +1587,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.770">delete</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/Client.html#line.773">delete</a>(<a href="../../../../../../org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a>&nbsp;cluster,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path,
                        org.apache.http.Header&nbsp;extraHdr)
                 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>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index 04f6a88e980..e426600c258 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -162,11 +162,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.HDFSAclOperation.OperationType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.OperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index 4aa01916529..70afe1515d0 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -196,9 +196,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index e36d11617c2..2cd298fe2c5 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -211,8 +211,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ImplType</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/trace/package-tree.html b/devapidocs/org/apache/hadoop/hbase/trace/package-tree.html
index 6566d6c7162..d11adda7d5a 100644
--- a/devapidocs/org/apache/hadoop/hbase/trace/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/trace/package-tree.html
@@ -97,9 +97,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.trace.<a href="../../../../../org/apache/hadoop/hbase/trace/HBaseSemanticAttributes.ReadType.html" title="enum in org.apache.hadoop.hbase.trace"><span class="typeNameLink">HBaseSemanticAttributes.ReadType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.trace.<a href="../../../../../org/apache/hadoop/hbase/trace/HBaseSemanticAttributes.Operation.html" title="enum in org.apache.hadoop.hbase.trace"><span class="typeNameLink">HBaseSemanticAttributes.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.trace.<a href="../../../../../org/apache/hadoop/hbase/trace/HBaseSemanticAttributes.RpcSystem.html" title="enum in org.apache.hadoop.hbase.trace"><span class="typeNameLink">HBaseSemanticAttributes.RpcSystem</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.trace.<a href="../../../../../org/apache/hadoop/hbase/trace/HBaseSemanticAttributes.ReadType.html" title="enum in org.apache.hadoop.hbase.trace"><span class="typeNameLink">HBaseSemanticAttributes.ReadType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index c7a583918e3..e3e04e990ea 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -536,15 +536,15 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/DNS.ServerType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">DNS.ServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLockWithObjectPool.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLockWithObjectPool.ReferenceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HbckErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HbckErrorReporter.ERROR_CODE</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLockWithObjectPool.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLockWithObjectPool.ReferenceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/DNS.ServerType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">DNS.ServerType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.ClientTrustStoreInitializationException.html b/devapidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.ClientTrustStoreInitializationException.html
index 0bb3285abee..16b6ce3bea6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.ClientTrustStoreInitializationException.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.ClientTrustStoreInitializationException.html
@@ -27,774 +27,777 @@
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import java.io.BufferedInputStream;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.ByteArrayInputStream;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.io.ByteArrayOutputStream;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.io.File;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.io.IOException;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.io.InputStream;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.net.URI;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.net.URISyntaxException;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.net.URL;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.nio.file.Files;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.security.KeyManagementException;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.security.KeyStore;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.security.KeyStoreException;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.security.NoSuchAlgorithmException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.security.cert.CertificateException;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.Collections;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.Optional;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import javax.net.ssl.SSLContext;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.conf.Configuration;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.rest.Constants;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.security.authentication.client.AuthenticatedURL;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.security.authentication.client.AuthenticationException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.security.authentication.client.KerberosAuthenticator;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.http.Header;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.http.HttpResponse;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.http.HttpStatus;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.http.client.HttpClient;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.http.client.config.RequestConfig;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.http.client.methods.HttpDelete;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.http.client.methods.HttpGet;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.http.client.methods.HttpHead;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.http.client.methods.HttpPost;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.http.client.methods.HttpPut;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.http.client.methods.HttpUriRequest;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.http.entity.InputStreamEntity;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.http.impl.client.HttpClientBuilder;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.http.impl.client.HttpClients;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.http.message.BasicHeader;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.http.ssl.SSLContexts;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.http.util.EntityUtils;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.slf4j.Logger;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.slf4j.LoggerFactory;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>/**<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * A wrapper around HttpClient which provides some useful function and semantics for interacting<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * with the REST gateway.<a name="line.70"></a>
-<span class="sourceLineNo">071</span> */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>@InterfaceAudience.Public<a name="line.72"></a>
-<span class="sourceLineNo">073</span>public class Client {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public static final Header[] EMPTY_HEADER_ARRAY = new Header[0];<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final Logger LOG = LoggerFactory.getLogger(Client.class);<a name="line.76"></a>
+<span class="sourceLineNo">022</span>import java.io.File;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.io.IOException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.io.InputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.net.URI;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.net.URISyntaxException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.net.URL;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.nio.file.Files;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.security.KeyManagementException;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.security.KeyStore;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.security.KeyStoreException;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.NoSuchAlgorithmException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.security.cert.CertificateException;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.Map;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Optional;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import javax.net.ssl.SSLContext;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.conf.Configuration;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.rest.Constants;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.security.authentication.client.AuthenticatedURL;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.security.authentication.client.AuthenticationException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.security.authentication.client.KerberosAuthenticator;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.http.Header;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.http.HttpResponse;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.http.HttpStatus;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.http.client.HttpClient;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.http.client.config.RequestConfig;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.http.client.methods.HttpDelete;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.http.client.methods.HttpGet;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.http.client.methods.HttpHead;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.http.client.methods.HttpPost;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.http.client.methods.HttpPut;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.http.client.methods.HttpUriRequest;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.http.entity.InputStreamEntity;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.http.impl.client.HttpClientBuilder;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.http.impl.client.HttpClients;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.http.message.BasicHeader;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.http.ssl.SSLContexts;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.http.util.EntityUtils;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.slf4j.Logger;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.slf4j.LoggerFactory;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hbase.thirdparty.com.google.common.io.Closeables;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>/**<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * A wrapper around HttpClient which provides some useful function and semantics for interacting<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * with the REST gateway.<a name="line.72"></a>
+<span class="sourceLineNo">073</span> */<a name="line.73"></a>
+<span class="sourceLineNo">074</span>@InterfaceAudience.Public<a name="line.74"></a>
+<span class="sourceLineNo">075</span>public class Client {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  public static final Header[] EMPTY_HEADER_ARRAY = new Header[0];<a name="line.76"></a>
 <span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private HttpClient httpClient;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private Cluster cluster;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private Configuration conf;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private boolean sslEnabled;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private HttpResponse resp;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private HttpGet httpGet = null;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private Map&lt;String, String&gt; extraHeaders;<a name="line.85"></a>
+<span class="sourceLineNo">078</span>  private static final Logger LOG = LoggerFactory.getLogger(Client.class);<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private HttpClient httpClient;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private Cluster cluster;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private Configuration conf;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private boolean sslEnabled;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private HttpResponse resp;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private HttpGet httpGet = null;<a name="line.85"></a>
 <span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private static final String AUTH_COOKIE = "hadoop.auth";<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  private static final String AUTH_COOKIE_EQ = AUTH_COOKIE + "=";<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  private static final String COOKIE = "Cookie";<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  /**<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   * Default Constructor<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   */<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public Client() {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    this(null);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private void initialize(Cluster cluster, Configuration conf, boolean sslEnabled,<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    Optional&lt;KeyStore&gt; trustStore) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    this.cluster = cluster;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    this.conf = conf;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    this.sslEnabled = sslEnabled;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    extraHeaders = new ConcurrentHashMap&lt;&gt;();<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    String clspath = System.getProperty("java.class.path");<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    LOG.debug("classpath " + clspath);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    HttpClientBuilder httpClientBuilder = HttpClients.custom();<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>    int connTimeout = this.conf.getInt(Constants.REST_CLIENT_CONN_TIMEOUT,<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      Constants.DEFAULT_REST_CLIENT_CONN_TIMEOUT);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    int socketTimeout = this.conf.getInt(Constants.REST_CLIENT_SOCKET_TIMEOUT,<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      Constants.DEFAULT_REST_CLIENT_SOCKET_TIMEOUT);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connTimeout)<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      .setSocketTimeout(socketTimeout).setNormalizeUri(false) // URIs should not be normalized, see<a name="line.113"></a>
-<span class="sourceLineNo">114</span>                                                              // HBASE-26903<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      .build();<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    httpClientBuilder.setDefaultRequestConfig(requestConfig);<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    // Since HBASE-25267 we don't use the deprecated DefaultHttpClient anymore.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    // The new http client would decompress the gzip content automatically.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    // In order to keep the original behaviour of this public class, we disable<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    // automatic content compression.<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    httpClientBuilder.disableContentCompression();<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    if (sslEnabled &amp;&amp; trustStore.isPresent()) {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      try {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        SSLContext sslcontext =<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          SSLContexts.custom().loadTrustMaterial(trustStore.get(), null).build();<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        httpClientBuilder.setSSLContext(sslcontext);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      } catch (NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        throw new ClientTrustStoreInitializationException("Error while processing truststore", e);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      }<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>    this.httpClient = httpClientBuilder.build();<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  /**<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   * Constructor<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   * @param cluster the cluster definition<a name="line.139"></a>
-<span class="sourceLineNo">140</span>   */<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  public Client(Cluster cluster) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    this(cluster, false);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  /**<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   * Constructor<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * @param cluster    the cluster definition<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * @param sslEnabled enable SSL or not<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   */<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  public Client(Cluster cluster, boolean sslEnabled) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    initialize(cluster, HBaseConfiguration.create(), sslEnabled, Optional.empty());<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  /**<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   * Constructor<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @param cluster    the cluster definition<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * @param conf       Configuration<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * @param sslEnabled enable SSL or not<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   */<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  public Client(Cluster cluster, Configuration conf, boolean sslEnabled) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    initialize(cluster, conf, sslEnabled, Optional.empty());<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  }<a name="line.162"></a>
-<span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>  /**<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * @param cluster            the cluster definition<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * @param trustStorePassword password to use for custom trust store<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * @param trustStoreType     type of custom trust store<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   */<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public Client(Cluster cluster, String trustStorePath, Optional&lt;String&gt; trustStorePassword,<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    Optional&lt;String&gt; trustStoreType) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    this(cluster, HBaseConfiguration.create(), trustStorePath, trustStorePassword, trustStoreType);<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>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * @param cluster            the cluster definition<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * @param conf               Configuration<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * @param trustStorePassword password to use for custom trust store<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * @param trustStoreType     type of custom trust store<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  public Client(Cluster cluster, Configuration conf, String trustStorePath,<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Optional&lt;String&gt; trustStorePassword, Optional&lt;String&gt; trustStoreType) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    char[] password = trustStorePassword.map(String::toCharArray).orElse(null);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    String type = trustStoreType.orElse(KeyStore.getDefaultType());<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>    KeyStore trustStore;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    try {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      trustStore = KeyStore.getInstance(type);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    } catch (KeyStoreException e) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      throw new ClientTrustStoreInitializationException("Invalid trust store type: " + type, e);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    try (InputStream inputStream =<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      new BufferedInputStream(Files.newInputStream(new File(trustStorePath).toPath()))) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      trustStore.load(inputStream, password);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    } catch (CertificateException | NoSuchAlgorithmException | IOException e) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      throw new ClientTrustStoreInitializationException("Trust store load error: " + trustStorePath,<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        e);<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>    initialize(cluster, conf, true, Optional.of(trustStore));<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>  /**<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * Shut down the client. Close any open persistent connections.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  public void shutdown() {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  /** Returns the wrapped HttpClient */<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  public HttpClient getHttpClient() {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    return httpClient;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>  /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   * Add extra headers. These extra headers will be applied to all http methods before they are<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   * removed. If any header is not used any more, client needs to remove it explicitly.<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  public void addExtraHeader(final String name, final String value) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    extraHeaders.put(name, value);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<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>   * Get an extra header value.<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   */<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  public String getExtraHeader(final String name) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    return extraHeaders.get(name);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>  /**<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   * Get all extra headers (read-only).<a name="line.236"></a>
-<span class="sourceLineNo">237</span>   */<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  public Map&lt;String, String&gt; getExtraHeaders() {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    return Collections.unmodifiableMap(extraHeaders);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>  /**<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * Remove an extra header.<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   */<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  public void removeExtraHeader(final String name) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    extraHeaders.remove(name);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  /**<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   * Execute a transaction method given only the path. Will select at random one of the members of<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * the supplied cluster definition and iterate through the list until a transaction can be<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * successfully completed. The definition of success here is a complete HTTP transaction,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * irrespective of result code.<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * @param cluster the cluster definition<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * @param method  the transaction method<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * @param headers HTTP header values to send<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * @param path    the properly urlencoded path<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * @return the HTTP response code<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   */<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  public HttpResponse executePathOnly(Cluster cluster, HttpUriRequest method, Header[] headers,<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    String path) throws IOException {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    IOException lastException;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    if (cluster.nodes.size() &lt; 1) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      throw new IOException("Cluster is empty");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    int start = (int) Math.round((cluster.nodes.size() - 1) * Math.random());<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    int i = start;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    do {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      cluster.lastHost = cluster.nodes.get(i);<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      try {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        StringBuilder sb = new StringBuilder();<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        if (sslEnabled) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>          sb.append("https://");<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        } else {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          sb.append("http://");<a name="line.275"></a>
-<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        sb.append(cluster.lastHost);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        sb.append(path);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        URI uri = new URI(sb.toString());<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        if (method instanceof HttpPut) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          HttpPut put = new HttpPut(uri);<a name="line.281"></a>
-<span class="sourceLineNo">282</span>          put.setEntity(((HttpPut) method).getEntity());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          put.setHeaders(method.getAllHeaders());<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          method = put;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else if (method instanceof HttpGet) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          method = new HttpGet(uri);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        } else if (method instanceof HttpHead) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          method = new HttpHead(uri);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        } else if (method instanceof HttpDelete) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          method = new HttpDelete(uri);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        } else if (method instanceof HttpPost) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          HttpPost post = new HttpPost(uri);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>          post.setEntity(((HttpPost) method).getEntity());<a name="line.293"></a>
-<span class="sourceLineNo">294</span>          post.setHeaders(method.getAllHeaders());<a name="line.294"></a>
-<span class="sourceLineNo">295</span>          method = post;<a name="line.295"></a>
-<span class="sourceLineNo">296</span>        }<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        return executeURI(method, headers, uri.toString());<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      } catch (IOException e) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        lastException = e;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      } catch (URISyntaxException use) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        lastException = new IOException(use);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    } while (++i != start &amp;&amp; i &lt; cluster.nodes.size());<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    throw lastException;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<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>   * Execute a transaction method given a complete URI.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   * @param method  the transaction method<a name="line.309"></a>
-<span class="sourceLineNo">310</span>   * @param headers HTTP header values to send<a name="line.310"></a>
-<span class="sourceLineNo">311</span>   * @param uri     a properly urlencoded URI<a name="line.311"></a>
-<span class="sourceLineNo">312</span>   * @return the HTTP response code<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   */<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  public HttpResponse executeURI(HttpUriRequest method, Header[] headers, String uri)<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    // method.setURI(new URI(uri, true));<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    for (Map.Entry&lt;String, String&gt; e : extraHeaders.entrySet()) {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      method.addHeader(e.getKey(), e.getValue());<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    if (headers != null) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      for (Header header : headers) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        method.addHeader(header);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    long startTime = EnvironmentEdgeManager.currentTime();<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    if (resp != null) EntityUtils.consumeQuietly(resp.getEntity());<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    resp = httpClient.execute(method);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_UNAUTHORIZED) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      // Authentication error<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      LOG.debug("Performing negotiation with the server.");<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      negotiate(method, uri);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      resp = httpClient.execute(method);<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>    long endTime = EnvironmentEdgeManager.currentTime();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    if (LOG.isTraceEnabled()) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      LOG.trace(method.getMethod() + " " + uri + " " + resp.getStatusLine().getStatusCode() + " "<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        + resp.getStatusLine().getReasonPhrase() + " in " + (endTime - startTime) + " ms");<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    return resp;<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  }<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>   * Execute a transaction method. Will call either &lt;tt&gt;executePathOnly&lt;/tt&gt; or &lt;tt&gt;executeURI&lt;/tt&gt;<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * depending on whether a path only is supplied in 'path', or if a complete URI is passed instead,<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   * respectively.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   * @param cluster the cluster definition<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * @param method  the HTTP method<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * @param headers HTTP header values to send<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * @param path    the properly urlencoded path or URI<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   * @return the HTTP response code<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   */<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public HttpResponse execute(Cluster cluster, HttpUriRequest method, Header[] headers, String path)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    throws IOException {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    if (path.startsWith("/")) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      return executePathOnly(cluster, method, headers, path);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    return executeURI(method, headers, path);<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>  /**<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * Initiate client side Kerberos negotiation with the server.<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * @param method method to inject the authentication token into.<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   * @param uri    the String to parse as a URL.<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * @throws IOException if unknown protocol is found.<a name="line.365"></a>
-<span class="sourceLineNo">366</span>   */<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  private void negotiate(HttpUriRequest method, String uri) throws IOException {<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    try {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      AuthenticatedURL.Token token = new AuthenticatedURL.Token();<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      KerberosAuthenticator authenticator = new KerberosAuthenticator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      authenticator.authenticate(new URL(uri), token);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      // Inject the obtained negotiated token in the method cookie<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      injectToken(method, token);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    } catch (AuthenticationException e) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      LOG.error("Failed to negotiate with the server.", e);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      throw new IOException(e);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    }<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  }<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>  /**<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   * Helper method that injects an authentication token to send with the method.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   * @param method method to inject the authentication token into.<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * @param token  authentication token to inject.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private void injectToken(HttpUriRequest method, AuthenticatedURL.Token token) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    String t = token.toString();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    if (t != null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      if (!t.startsWith("\"")) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        t = "\"" + t + "\"";<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      method.addHeader(COOKIE, AUTH_COOKIE_EQ + t);<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><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  /** Returns the cluster definition */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public Cluster getCluster() {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    return cluster;<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>  /**<a name="line.400"></a>
-<span class="sourceLineNo">401</span>   * @param cluster the cluster definition<a name="line.401"></a>
-<span class="sourceLineNo">402</span>   */<a name="line.402"></a>
-<span class="sourceLineNo">403</span>  public void setCluster(Cluster cluster) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    this.cluster = cluster;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  }<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>  /**<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * Send a HEAD request<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   * @param path the path or URI<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @return a Response object with response detail<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  public Response head(String path) throws IOException {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    return head(cluster, path, null);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * Send a HEAD request<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @param cluster the cluster definition<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * @param path    the path or URI<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   * @param headers the HTTP headers to include in the request<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   * @return a Response object with response detail<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   */<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  public Response head(Cluster cluster, String path, Header[] headers) throws IOException {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    HttpHead method = new HttpHead(path);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    try {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      HttpResponse resp = execute(cluster, method, null, path);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      return new Response(resp.getStatusLine().getStatusCode(), resp.getAllHeaders(), null);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    } finally {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      method.releaseConnection();<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><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   * Send a GET request<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * @param path the path or URI<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * @return a Response object with response detail<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   */<a name="line.437"></a>
-<span class="sourceLineNo">438</span>  public Response get(String path) throws IOException {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    return get(cluster, path);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>  /**<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * Send a GET request<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * @param cluster the cluster definition<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   * @param path    the path or URI<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   * @return a Response object with response detail<a name="line.446"></a>
-<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public Response get(Cluster cluster, String path) throws IOException {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    return get(cluster, path, EMPTY_HEADER_ARRAY);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  /**<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * Send a GET request<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * @param path   the path or URI<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @param accept Accept header value<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @return a Response object with response detail<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   */<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public Response get(String path, String accept) throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    return get(cluster, path, accept);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>  /**<a name="line.462"></a>
-<span class="sourceLineNo">463</span>   * Send a GET request<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * @param cluster the cluster definition<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * @param path    the path or URI<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * @param accept  Accept header value<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * @return a Response object with response detail<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   */<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  public Response get(Cluster cluster, String path, String accept) throws IOException {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    Header[] headers = new Header[1];<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    headers[0] = new BasicHeader("Accept", accept);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    return get(cluster, path, headers);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>  }<a name="line.473"></a>
-<span class="sourceLineNo">474</span><a name="line.474"></a>
-<span class="sourceLineNo">475</span>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Send a GET request<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * @param path    the path or URI<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @param headers the HTTP headers to include in the request, &lt;tt&gt;Accept&lt;/tt&gt; must be supplied<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @return a Response object with response detail<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   */<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  public Response get(String path, Header[] headers) throws IOException {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    return get(cluster, path, headers);<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  }<a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>  /**<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * Returns the response body of the HTTPResponse, if any, as an array of bytes. If response body<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * is not available or cannot be read, returns &lt;tt&gt;null&lt;/tt&gt; Note: This will cause the entire<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   * response body to be buffered in memory. A malicious server may easily exhaust all the VM<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * memory. It is strongly recommended, to use getResponseAsStream if the content length of the<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * response is unknown or reasonably large.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * @param resp HttpResponse<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   * @return The response body, null if body is empty<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   * @throws IOException If an I/O (transport) problem occurs while obtaining the response body.<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   */<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "NP_LOAD_OF_KNOWN_NULL_VALUE",<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      justification = "null is possible return value")<a name="line.496"></a>
+<span class="sourceLineNo">087</span>  private Map&lt;String, String&gt; extraHeaders;<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private static final String AUTH_COOKIE = "hadoop.auth";<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private static final String AUTH_COOKIE_EQ = AUTH_COOKIE + "=";<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  private static final String COOKIE = "Cookie";<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * Default Constructor<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public Client() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    this(null);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>  private void initialize(Cluster cluster, Configuration conf, boolean sslEnabled,<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    Optional&lt;KeyStore&gt; trustStore) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    this.cluster = cluster;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    this.conf = conf;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.sslEnabled = sslEnabled;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    extraHeaders = new ConcurrentHashMap&lt;&gt;();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    String clspath = System.getProperty("java.class.path");<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    LOG.debug("classpath " + clspath);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    HttpClientBuilder httpClientBuilder = HttpClients.custom();<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>    int connTimeout = this.conf.getInt(Constants.REST_CLIENT_CONN_TIMEOUT,<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      Constants.DEFAULT_REST_CLIENT_CONN_TIMEOUT);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    int socketTimeout = this.conf.getInt(Constants.REST_CLIENT_SOCKET_TIMEOUT,<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      Constants.DEFAULT_REST_CLIENT_SOCKET_TIMEOUT);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connTimeout)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      .setSocketTimeout(socketTimeout).setNormalizeUri(false) // URIs should not be normalized, see<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                                              // HBASE-26903<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      .build();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    httpClientBuilder.setDefaultRequestConfig(requestConfig);<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    // Since HBASE-25267 we don't use the deprecated DefaultHttpClient anymore.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    // The new http client would decompress the gzip content automatically.<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    // In order to keep the original behaviour of this public class, we disable<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // automatic content compression.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    httpClientBuilder.disableContentCompression();<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>    if (sslEnabled &amp;&amp; trustStore.isPresent()) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      try {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        SSLContext sslcontext =<a name="line.128"></a>
+<span class="sourceLineNo">129</span>          SSLContexts.custom().loadTrustMaterial(trustStore.get(), null).build();<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        httpClientBuilder.setSSLContext(sslcontext);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      } catch (NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        throw new ClientTrustStoreInitializationException("Error while processing truststore", e);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>    this.httpClient = httpClientBuilder.build();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  /**<a name="line.139"></a>
+<span class="sourceLineNo">140</span>   * Constructor<a name="line.140"></a>
+<span class="sourceLineNo">141</span>   * @param cluster the cluster definition<a name="line.141"></a>
+<span class="sourceLineNo">142</span>   */<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  public Client(Cluster cluster) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    this(cluster, false);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * Constructor<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * @param cluster    the cluster definition<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * @param sslEnabled enable SSL or not<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public Client(Cluster cluster, boolean sslEnabled) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    initialize(cluster, HBaseConfiguration.create(), sslEnabled, Optional.empty());<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  /**<a name="line.156"></a>
+<span class="sourceLineNo">157</span>   * Constructor<a name="line.157"></a>
+<span class="sourceLineNo">158</span>   * @param cluster    the cluster definition<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   * @param conf       Configuration<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * @param sslEnabled enable SSL or not<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  public Client(Cluster cluster, Configuration conf, boolean sslEnabled) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    initialize(cluster, conf, sslEnabled, Optional.empty());<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * @param cluster            the cluster definition<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * @param trustStorePassword password to use for custom trust store<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   * @param trustStoreType     type of custom trust store<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public Client(Cluster cluster, String trustStorePath, Optional&lt;String&gt; trustStorePassword,<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    Optional&lt;String&gt; trustStoreType) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    this(cluster, HBaseConfiguration.create(), trustStorePath, trustStorePassword, trustStoreType);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   * @param cluster            the cluster definition<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * @param conf               Configuration<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * @param trustStorePassword password to use for custom trust store<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * @param trustStoreType     type of custom trust store<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  public Client(Cluster cluster, Configuration conf, String trustStorePath,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    Optional&lt;String&gt; trustStorePassword, Optional&lt;String&gt; trustStoreType) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>    char[] password = trustStorePassword.map(String::toCharArray).orElse(null);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    String type = trustStoreType.orElse(KeyStore.getDefaultType());<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    KeyStore trustStore;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    try {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      trustStore = KeyStore.getInstance(type);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    } catch (KeyStoreException e) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      throw new ClientTrustStoreInitializationException("Invalid trust store type: " + type, e);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    try (InputStream inputStream =<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      new BufferedInputStream(Files.newInputStream(new File(trustStorePath).toPath()))) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      trustStore.load(inputStream, password);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    } catch (CertificateException | NoSuchAlgorithmException | IOException e) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      throw new ClientTrustStoreInitializationException("Trust store load error: " + trustStorePath,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        e);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    initialize(cluster, conf, true, Optional.of(trustStore));<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  /**<a name="line.211"></a>
+<span class="sourceLineNo">212</span>   * Shut down the client. Close any open persistent connections.<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   */<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  public void shutdown() {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  /** Returns the wrapped HttpClient */<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  public HttpClient getHttpClient() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    return httpClient;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  /**<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   * Add extra headers. These extra headers will be applied to all http methods before they are<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   * removed. If any header is not used any more, client needs to remove it explicitly.<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>  public void addExtraHeader(final String name, final String value) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    extraHeaders.put(name, value);<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>  /**<a name="line.230"></a>
+<span class="sourceLineNo">231</span>   * Get an extra header value.<a name="line.231"></a>
+<span class="sourceLineNo">232</span>   */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public String getExtraHeader(final String name) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    return extraHeaders.get(name);<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>  /**<a name="line.237"></a>
+<span class="sourceLineNo">238</span>   * Get all extra headers (read-only).<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   */<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  public Map&lt;String, String&gt; getExtraHeaders() {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    return Collections.unmodifiableMap(extraHeaders);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   * Remove an extra header.<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  public void removeExtraHeader(final String name) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    extraHeaders.remove(name);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  }<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>   * Execute a transaction method given only the path. Will select at random one of the members of<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * the supplied cluster definition and iterate through the list until a transaction can be<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * successfully completed. The definition of success here is a complete HTTP transaction,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * irrespective of result code.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * @param cluster the cluster definition<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * @param method  the transaction method<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * @param headers HTTP header values to send<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * @param path    the properly urlencoded path<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * @return the HTTP response code<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  public HttpResponse executePathOnly(Cluster cluster, HttpUriRequest method, Header[] headers,<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    String path) throws IOException {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    IOException lastException;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    if (cluster.nodes.size() &lt; 1) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      throw new IOException("Cluster is empty");<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    int start = (int) Math.round((cluster.nodes.size() - 1) * Math.random());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    int i = start;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    do {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      cluster.lastHost = cluster.nodes.get(i);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      try {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        StringBuilder sb = new StringBuilder();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        if (sslEnabled) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>          sb.append("https://");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        } else {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          sb.append("http://");<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        sb.append(cluster.lastHost);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        sb.append(path);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        URI uri = new URI(sb.toString());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        if (method instanceof HttpPut) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>          HttpPut put = new HttpPut(uri);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>          put.setEntity(((HttpPut) method).getEntity());<a name="line.284"></a>
+<span class="sourceLineNo">285</span>          put.setHeaders(method.getAllHeaders());<a name="line.285"></a>
+<span class="sourceLineNo">286</span>          method = put;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        } else if (method instanceof HttpGet) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>          method = new HttpGet(uri);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        } else if (method instanceof HttpHead) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>          method = new HttpHead(uri);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        } else if (method instanceof HttpDelete) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          method = new HttpDelete(uri);<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else if (method instanceof HttpPost) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          HttpPost post = new HttpPost(uri);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>          post.setEntity(((HttpPost) method).getEntity());<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          post.setHeaders(method.getAllHeaders());<a name="line.296"></a>
+<span class="sourceLineNo">297</span>          method = post;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        return executeURI(method, headers, uri.toString());<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      } catch (IOException e) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        lastException = e;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      } catch (URISyntaxException use) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        lastException = new IOException(use);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    } while (++i != start &amp;&amp; i &lt; cluster.nodes.size());<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    throw lastException;<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>   * Execute a transaction method given a complete URI.<a name="line.310"></a>
+<span class="sourceLineNo">311</span>   * @param method  the transaction method<a name="line.311"></a>
+<span class="sourceLineNo">312</span>   * @param headers HTTP header values to send<a name="line.312"></a>
+<span class="sourceLineNo">313</span>   * @param uri     a properly urlencoded URI<a name="line.313"></a>
+<span class="sourceLineNo">314</span>   * @return the HTTP response code<a name="line.314"></a>
+<span class="sourceLineNo">315</span>   */<a name="line.315"></a>
+<span class="sourceLineNo">316</span>  public HttpResponse executeURI(HttpUriRequest method, Header[] headers, String uri)<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    throws IOException {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // method.setURI(new URI(uri, true));<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    for (Map.Entry&lt;String, String&gt; e : extraHeaders.entrySet()) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      method.addHeader(e.getKey(), e.getValue());<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    if (headers != null) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      for (Header header : headers) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        method.addHeader(header);<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>    long startTime = EnvironmentEdgeManager.currentTime();<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    if (resp != null) EntityUtils.consumeQuietly(resp.getEntity());<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    resp = httpClient.execute(method);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_UNAUTHORIZED) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      // Authentication error<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      LOG.debug("Performing negotiation with the server.");<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      negotiate(method, uri);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      resp = httpClient.execute(method);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>    long endTime = EnvironmentEdgeManager.currentTime();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    if (LOG.isTraceEnabled()) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      LOG.trace(method.getMethod() + " " + uri + " " + resp.getStatusLine().getStatusCode() + " "<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        + resp.getStatusLine().getReasonPhrase() + " in " + (endTime - startTime) + " ms");<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return resp;<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>   * Execute a transaction method. Will call either &lt;tt&gt;executePathOnly&lt;/tt&gt; or &lt;tt&gt;executeURI&lt;/tt&gt;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   * depending on whether a path only is supplied in 'path', or if a complete URI is passed instead,<a name="line.347"></a>
+<span class="sourceLineNo">348</span>   * respectively.<a name="line.348"></a>
+<span class="sourceLineNo">349</span>   * @param cluster the cluster definition<a name="line.349"></a>
+<span class="sourceLineNo">350</span>   * @param method  the HTTP method<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   * @param headers HTTP header values to send<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   * @param path    the properly urlencoded path or URI<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   * @return the HTTP response code<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  public HttpResponse execute(Cluster cluster, HttpUriRequest method, Header[] headers, String path)<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    throws IOException {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    if (path.startsWith("/")) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      return executePathOnly(cluster, method, headers, path);<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    }<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    return executeURI(method, headers, path);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  /**<a name="line.363"></a>
+<span class="sourceLineNo">364</span>   * Initiate client side Kerberos negotiation with the server.<a name="line.364"></a>
+<span class="sourceLineNo">365</span>   * @param method method to inject the authentication token into.<a name="line.365"></a>
+<span class="sourceLineNo">366</span>   * @param uri    the String to parse as a URL.<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   * @throws IOException if unknown protocol is found.<a name="line.367"></a>
+<span class="sourceLineNo">368</span>   */<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  private void negotiate(HttpUriRequest method, String uri) throws IOException {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    try {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      AuthenticatedURL.Token token = new AuthenticatedURL.Token();<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      KerberosAuthenticator authenticator = new KerberosAuthenticator();<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      authenticator.authenticate(new URL(uri), token);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      // Inject the obtained negotiated token in the method cookie<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      injectToken(method, token);<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    } catch (AuthenticationException e) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      LOG.error("Failed to negotiate with the server.", e);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      throw new IOException(e);<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>   * Helper method that injects an authentication token to send with the method.<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   * @param method method to inject the authentication token into.<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   * @param token  authentication token to inject.<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   */<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  private void injectToken(HttpUriRequest method, AuthenticatedURL.Token token) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    String t = token.toString();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    if (t != null) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      if (!t.startsWith("\"")) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        t = "\"" + t + "\"";<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      method.addHeader(COOKIE, AUTH_COOKIE_EQ + t);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
+<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>  /** Returns the cluster definition */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  public Cluster getCluster() {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    return cluster;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>  }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>  /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>   * @param cluster the cluster definition<a name="line.403"></a>
+<span class="sourceLineNo">404</span>   */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>  public void setCluster(Cluster cluster) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    this.cluster = cluster;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>  }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>  /**<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * Send a HEAD request<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   * @param path the path or URI<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   * @return a Response object with response detail<a name="line.412"></a>
+<span class="sourceLineNo">413</span>   */<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  public Response head(String path) throws IOException {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    return head(cluster, path, null);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>  /**<a name="line.418"></a>
+<span class="sourceLineNo">419</span>   * Send a HEAD request<a name="line.419"></a>
+<span class="sourceLineNo">420</span>   * @param cluster the cluster definition<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   * @param path    the path or URI<a name="line.421"></a>
+<span class="sourceLineNo">422</span>   * @param headers the HTTP headers to include in the request<a name="line.422"></a>
+<span class="sourceLineNo">423</span>   * @return a Response object with response detail<a name="line.423"></a>
+<span class="sourceLineNo">424</span>   */<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  public Response head(Cluster cluster, String path, Header[] headers) throws IOException {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    HttpHead method = new HttpHead(path);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      HttpResponse resp = execute(cluster, method, null, path);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      return new Response(resp.getStatusLine().getStatusCode(), resp.getAllHeaders(), null);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    } finally {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      method.releaseConnection();<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>  }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>  /**<a name="line.435"></a>
+<span class="sourceLineNo">436</span>   * Send a GET request<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * @param path the path or URI<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   * @return a Response object with response detail<a name="line.438"></a>
+<span class="sourceLineNo">439</span>   */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  public Response get(String path) throws IOException {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    return get(cluster, path);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>  /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   * Send a GET request<a name="line.445"></a>
+<span class="sourceLineNo">446</span>   * @param cluster the cluster definition<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   * @param path    the path or URI<a name="line.447"></a>
+<span class="sourceLineNo">448</span>   * @return a Response object with response detail<a name="line.448"></a>
+<span class="sourceLineNo">449</span>   */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>  public Response get(Cluster cluster, String path) throws IOException {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    return get(cluster, path, EMPTY_HEADER_ARRAY);<a name="line.451"></a>
+<span class="sourceLineNo">452</span>  }<a name="line.452"></a>
+<span class="sourceLineNo">453</span><a name="line.453"></a>
+<span class="sourceLineNo">454</span>  /**<a name="line.454"></a>
+<span class="sourceLineNo">455</span>   * Send a GET request<a name="line.455"></a>
+<span class="sourceLineNo">456</span>   * @param path   the path or URI<a name="line.456"></a>
+<span class="sourceLineNo">457</span>   * @param accept Accept header value<a name="line.457"></a>
+<span class="sourceLineNo">458</span>   * @return a Response object with response detail<a name="line.458"></a>
+<span class="sourceLineNo">459</span>   */<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  public Response get(String path, String accept) throws IOException {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    return get(cluster, path, accept);<a name="line.461"></a>
+<span class="sourceLineNo">462</span>  }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
+<span class="sourceLineNo">465</span>   * Send a GET request<a name="line.465"></a>
+<span class="sourceLineNo">466</span>   * @param cluster the cluster definition<a name="line.466"></a>
+<span class="sourceLineNo">467</span>   * @param path    the path or URI<a name="line.467"></a>
+<span class="sourceLineNo">468</span>   * @param accept  Accept header value<a name="line.468"></a>
+<span class="sourceLineNo">469</span>   * @return a Response object with response detail<a name="line.469"></a>
+<span class="sourceLineNo">470</span>   */<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public Response get(Cluster cluster, String path, String accept) throws IOException {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    Header[] headers = new Header[1];<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    headers[0] = new BasicHeader("Accept", accept);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>    return get(cluster, path, headers);<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  }<a name="line.475"></a>
+<span class="sourceLineNo">476</span><a name="line.476"></a>
+<span class="sourceLineNo">477</span>  /**<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   * Send a GET request<a name="line.478"></a>
+<span class="sourceLineNo">479</span>   * @param path    the path or URI<a name="line.479"></a>
+<span class="sourceLineNo">480</span>   * @param headers the HTTP headers to include in the request, &lt;tt&gt;Accept&lt;/tt&gt; must be supplied<a name="line.480"></a>
+<span class="sourceLineNo">481</span>   * @return a Response object with response detail<a name="line.481"></a>
+<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
+<span class="sourceLineNo">483</span>  public Response get(String path, Header[] headers) throws IOException {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    return get(cluster, path, headers);<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  }<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>  /**<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   * Returns the response body of the HTTPResponse, if any, as an array of bytes. If response body<a name="line.488"></a>
+<span class="sourceLineNo">489</span>   * is not available or cannot be read, returns &lt;tt&gt;null&lt;/tt&gt; Note: This will cause the entire<a name="line.489"></a>
+<span class="sourceLineNo">490</span>   * response body to be buffered in memory. A malicious server may easily exhaust all the VM<a name="line.490"></a>
+<span class="sourceLineNo">491</span>   * memory. It is strongly recommended, to use getResponseAsStream if the content length of the<a name="line.491"></a>
+<span class="sourceLineNo">492</span>   * response is unknown or reasonably large.<a name="line.492"></a>
+<span class="sourceLineNo">493</span>   * @param resp HttpResponse<a name="line.493"></a>
+<span class="sourceLineNo">494</span>   * @return The response body, null if body is empty<a name="line.494"></a>
+<span class="sourceLineNo">495</span>   * @throws IOException If an I/O (transport) problem occurs while obtaining the response body.<a name="line.495"></a>
+<span class="sourceLineNo">496</span>   */<a name="line.496"></a>
 <span class="sourceLineNo">497</span>  public static byte[] getResponseBody(HttpResponse resp) throws IOException {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    if (resp.getEntity() == null) return null;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    try (InputStream instream = resp.getEntity().getContent()) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      if (instream != null) {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>        long contentLength = resp.getEntity().getContentLength();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>        if (contentLength &gt; Integer.MAX_VALUE) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>          // guard integer cast from overflow<a name="line.503"></a>
-<span class="sourceLineNo">504</span>          throw new IOException("Content too large to be buffered: " + contentLength + " bytes");<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        ByteArrayOutputStream outstream =<a name="line.506"></a>
-<span class="sourceLineNo">507</span>          new ByteArrayOutputStream(contentLength &gt; 0 ? (int) contentLength : 4 * 1024);<a name="line.507"></a>
-<span class="sourceLineNo">508</span>        byte[] buffer = new byte[4096];<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        int len;<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        while ((len = instream.read(buffer)) &gt; 0) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>          outstream.write(buffer, 0, len);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        }<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        outstream.close();<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        return outstream.toByteArray();<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      return null;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span>  }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>  /**<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * Send a GET request<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   * @param c       the cluster definition<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   * @param path    the path or URI<a name="line.523"></a>
-<span class="sourceLineNo">524</span>   * @param headers the HTTP headers to include in the request<a name="line.524"></a>
-<span class="sourceLineNo">525</span>   * @return a Response object with response detail<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   */<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  public Response get(Cluster c, String path, Header[] headers) throws IOException {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    if (httpGet != null) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      httpGet.releaseConnection();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    httpGet = new HttpGet(path);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    HttpResponse resp = execute(c, httpGet, headers, path);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    return new Response(resp.getStatusLine().getStatusCode(), resp.getAllHeaders(), resp,<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      resp.getEntity() == null ? null : resp.getEntity().getContent());<a name="line.534"></a>
-<span class="sourceLineNo">535</span>  }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>  /**<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   * Send a PUT request<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   * @param path        the path or URI<a name="line.539"></a>
-<span class="sourceLineNo">540</span>   * @param contentType the content MIME type<a name="line.540"></a>
-<span class="sourceLineNo">541</span>   * @param content     the content bytes<a name="line.541"></a>
-<span class="sourceLineNo">542</span>   * @return a Response object with response detail<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   */<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  public Response put(String path, String contentType, byte[] content) throws IOException {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    return put(cluster, path, contentType, content);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>  /**<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * Send a PUT request<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param path        the path or URI<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @param contentType the content MIME type<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * @param content     the content bytes<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * @param extraHdr    extra Header to send<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   * @return a Response object with response detail<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   */<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  public Response put(String path, String contentType, byte[] content, Header extraHdr)<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    throws IOException {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    return put(cluster, path, contentType, content, extraHdr);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>  /**<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   * Send a PUT request<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * @param cluster     the cluster definition<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   * @param path        the path or URI<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * @param contentType the content MIME type<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * @param content     the content bytes<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * @return a Response object with response detail<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   * @throws IOException for error<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   */<a name="line.569"></a>
-<span class="sourceLineNo">570</span>  public Response put(Cluster cluster, String path, String contentType, byte[] content)<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    throws IOException {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    Header[] headers = new Header[1];<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    return put(cluster, path, headers, content);<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  }<a name="line.575"></a>
-<span class="sourceLineNo">576</span><a name="line.576"></a>
-<span class="sourceLineNo">577</span>  /**<a name="line.577"></a>
-<span class="sourceLineNo">578</span>   * Send a PUT request<a name="line.578"></a>
-<span class="sourceLineNo">579</span>   * @param cluster     the cluster definition<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   * @param path        the path or URI<a name="line.580"></a>
-<span class="sourceLineNo">581</span>   * @param contentType the content MIME type<a name="line.581"></a>
-<span class="sourceLineNo">582</span>   * @param content     the content bytes<a name="line.582"></a>
-<span class="sourceLineNo">583</span>   * @param extraHdr    additional Header to send<a name="line.583"></a>
-<span class="sourceLineNo">584</span>   * @return a Response object with response detail<a name="line.584"></a>
-<span class="sourceLineNo">585</span>   * @throws IOException for error<a name="line.585"></a>
-<span class="sourceLineNo">586</span>   */<a name="line.586"></a>
-<span class="sourceLineNo">587</span>  public Response put(Cluster cluster, String path, String contentType, byte[] content,<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    Header extraHdr) throws IOException {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>    int cnt = extraHdr == null ? 1 : 2;<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    Header[] headers = new Header[cnt];<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    if (extraHdr != null) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      headers[1] = extraHdr;<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    return put(cluster, path, headers, content);<a name="line.595"></a>
-<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * Send a PUT request<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @param path    the path or URI<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * @param content the content bytes<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * @return a Response object with response detail<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   */<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  public Response put(String path, Header[] headers, byte[] content) throws IOException {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    return put(cluster, path, headers, content);<a name="line.606"></a>
-<span class="sourceLineNo">607</span>  }<a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span>  /**<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   * Send a PUT request<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @param cluster the cluster definition<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   * @param path    the path or URI<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   * @param content the content bytes<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   * @return a Response object with response detail<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   */<a name="line.616"></a>
-<span class="sourceLineNo">617</span>  public Response put(Cluster cluster, String path, Header[] headers, byte[] content)<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    throws IOException {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    HttpPut method = new HttpPut(path);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    try {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      method.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      headers = resp.getAllHeaders();<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      content = getResponseBody(resp);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    } finally {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      method.releaseConnection();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>  }<a name="line.629"></a>
-<span class="sourceLineNo">630</span><a name="line.630"></a>
-<span class="sourceLineNo">631</span>  /**<a name="line.631"></a>
-<span class="sourceLineNo">632</span>   * Send a POST request<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   * @param path        the path or URI<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * @param contentType the content MIME type<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   * @param content     the content bytes<a name="line.635"></a>
-<span class="sourceLineNo">636</span>   * @return a Response object with response detail<a name="line.636"></a>
-<span class="sourceLineNo">637</span>   */<a name="line.637"></a>
-<span class="sourceLineNo">638</span>  public Response post(String path, String contentType, byte[] content) throws IOException {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    return post(cluster, path, contentType, content);<a name="line.639"></a>
-<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
-<span class="sourceLineNo">641</span><a name="line.641"></a>
-<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * Send a POST request<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * @param path        the path or URI<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   * @param contentType the content MIME type<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   * @param content     the content bytes<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   * @param extraHdr    additional Header to send<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   * @return a Response object with response detail<a name="line.648"></a>
-<span class="sourceLineNo">649</span>   */<a name="line.649"></a>
-<span class="sourceLineNo">650</span>  public Response post(String path, String contentType, byte[] content, Header extraHdr)<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    throws IOException {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    return post(cluster, path, contentType, content, extraHdr);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>  }<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>  /**<a name="line.655"></a>
-<span class="sourceLineNo">656</span>   * Send a POST request<a name="line.656"></a>
-<span class="sourceLineNo">657</span>   * @param cluster     the cluster definition<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   * @param path        the path or URI<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   * @param contentType the content MIME type<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * @param content     the content bytes<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * @return a Response object with response detail<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   * @throws IOException for error<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   */<a name="line.663"></a>
-<span class="sourceLineNo">664</span>  public Response post(Cluster cluster, String path, String contentType, byte[] content)<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    throws IOException {<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    Header[] headers = new Header[1];<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    return post(cluster, path, headers, content);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>  }<a name="line.669"></a>
-<span class="sourceLineNo">670</span><a name="line.670"></a>
-<span class="sourceLineNo">671</span>  /**<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * Send a POST request<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @param cluster     the cluster definition<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * @param path        the path or URI<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   * @param contentType the content MIME type<a name="line.675"></a>
-<span class="sourceLineNo">676</span>   * @param content     the content bytes<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   * @param extraHdr    additional Header to send<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * @return a Response object with response detail<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   * @throws IOException for error<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   */<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  public Response post(Cluster cluster, String path, String contentType, byte[] content,<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    Header extraHdr) throws IOException {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    int cnt = extraHdr == null ? 1 : 2;<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    Header[] headers = new Header[cnt];<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (extraHdr != null) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      headers[1] = extraHdr;<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    return post(cluster, path, headers, content);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
-<span class="sourceLineNo">691</span><a name="line.691"></a>
-<span class="sourceLineNo">692</span>  /**<a name="line.692"></a>
-<span class="sourceLineNo">693</span>   * Send a POST request<a name="line.693"></a>
-<span class="sourceLineNo">694</span>   * @param path    the path or URI<a name="line.694"></a>
-<span class="sourceLineNo">695</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.695"></a>
-<span class="sourceLineNo">696</span>   * @param content the content bytes<a name="line.696"></a>
-<span class="sourceLineNo">697</span>   * @return a Response object with response detail<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   */<a name="line.698"></a>
-<span class="sourceLineNo">699</span>  public Response post(String path, Header[] headers, byte[] content) throws IOException {<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    return post(cluster, path, headers, content);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>  }<a name="line.701"></a>
-<span class="sourceLineNo">702</span><a name="line.702"></a>
-<span class="sourceLineNo">703</span>  /**<a name="line.703"></a>
-<span class="sourceLineNo">704</span>   * Send a POST request<a name="line.704"></a>
-<span class="sourceLineNo">705</span>   * @param cluster the cluster definition<a name="line.705"></a>
-<span class="sourceLineNo">706</span>   * @param path    the path or URI<a name="line.706"></a>
-<span class="sourceLineNo">707</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.707"></a>
-<span class="sourceLineNo">708</span>   * @param content the content bytes<a name="line.708"></a>
-<span class="sourceLineNo">709</span>   * @return a Response object with response detail<a name="line.709"></a>
-<span class="sourceLineNo">710</span>   */<a name="line.710"></a>
-<span class="sourceLineNo">711</span>  public Response post(Cluster cluster, String path, Header[] headers, byte[] content)<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    throws IOException {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>    HttpPost method = new HttpPost(path);<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    try {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      method.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      headers = resp.getAllHeaders();<a name="line.717"></a>
-<span class="sourceLineNo">718</span>      content = getResponseBody(resp);<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    } finally {<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      method.releaseConnection();<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    }<a name="line.722"></a>
-<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>  /**<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * Send a DELETE request<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * @param path the path or URI<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   * @return a Response object with response detail<a name="line.728"></a>
-<span class="sourceLineNo">729</span>   */<a name="line.729"></a>
-<span class="sourceLineNo">730</span>  public Response delete(String path) throws IOException {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    return delete(cluster, path);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  }<a name="line.732"></a>
-<span class="sourceLineNo">733</span><a name="line.733"></a>
-<span class="sourceLineNo">734</span>  /**<a name="line.734"></a>
-<span class="sourceLineNo">735</span>   * Send a DELETE request<a name="line.735"></a>
-<span class="sourceLineNo">736</span>   * @param path     the path or URI<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * @param extraHdr additional Header to send<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   * @return a Response object with response detail<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   */<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  public Response delete(String path, Header extraHdr) throws IOException {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return delete(cluster, path, extraHdr);<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Send a DELETE request<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * @param cluster the cluster definition<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * @param path    the path or URI<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @return a Response object with response detail<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   * @throws IOException for error<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  public Response delete(Cluster cluster, String path) throws IOException {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    HttpDelete method = new HttpDelete(path);<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    try {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>      HttpResponse resp = execute(cluster, method, null, path);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>      Header[] headers = resp.getAllHeaders();<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      byte[] content = getResponseBody(resp);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    } finally {<a name="line.758"></a>
-<span class="sourceLineNo">759</span>      method.releaseConnection();<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    }<a name="line.760"></a>
-<span class="sourceLineNo">761</span>  }<a name="line.761"></a>
-<span class="sourceLineNo">762</span><a name="line.762"></a>
-<span class="sourceLineNo">763</span>  /**<a name="line.763"></a>
-<span class="sourceLineNo">764</span>   * Send a DELETE request<a name="line.764"></a>
-<span class="sourceLineNo">765</span>   * @param cluster the cluster definition<a name="line.765"></a>
-<span class="sourceLineNo">766</span>   * @param path    the path or URI<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * @return a Response object with response detail<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   * @throws IOException for error<a name="line.768"></a>
-<span class="sourceLineNo">769</span>   */<a name="line.769"></a>
-<span class="sourceLineNo">770</span>  public Response delete(Cluster cluster, String path, Header extraHdr) throws IOException {<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    HttpDelete method = new HttpDelete(path);<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    try {<a name="line.772"></a>
-<span class="sourceLineNo">773</span>      Header[] headers = { extraHdr };<a name="line.773"></a>
-<span class="sourceLineNo">774</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>      headers = resp.getAllHeaders();<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      byte[] content = getResponseBody(resp);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    } finally {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      method.releaseConnection();<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
-<span class="sourceLineNo">781</span>  }<a name="line.781"></a>
-<span class="sourceLineNo">782</span><a name="line.782"></a>
-<span class="sourceLineNo">783</span>  public static class ClientTrustStoreInitializationException extends RuntimeException {<a name="line.783"></a>
-<span class="sourceLineNo">784</span><a name="line.784"></a>
-<span class="sourceLineNo">785</span>    public ClientTrustStoreInitializationException(String message, Throwable cause) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>      super(message, cause);<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    }<a name="line.787"></a>
-<span class="sourceLineNo">788</span>  }<a name="line.788"></a>
-<span class="sourceLineNo">789</span>}<a name="line.789"></a>
+<span class="sourceLineNo">498</span>    if (resp.getEntity() == null) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      return null;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    InputStream instream = resp.getEntity().getContent();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    if (instream == null) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      return null;<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    try {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      long contentLength = resp.getEntity().getContentLength();<a name="line.506"></a>
+<span class="sourceLineNo">507</span>      if (contentLength &gt; Integer.MAX_VALUE) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        // guard integer cast from overflow<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        throw new IOException("Content too large to be buffered: " + contentLength + " bytes");<a name="line.509"></a>
+<span class="sourceLineNo">510</span>      }<a name="line.510"></a>
+<span class="sourceLineNo">511</span>      if (contentLength &gt; 0) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        byte[] content = new byte[(int) contentLength];<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        ByteStreams.readFully(instream, content);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        return content;<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      } else {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        return ByteStreams.toByteArray(instream);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>      }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    } finally {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      Closeables.closeQuietly(instream);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>  /**<a name="line.523"></a>
+<span class="sourceLineNo">524</span>   * Send a GET request<a name="line.524"></a>
+<span class="sourceLineNo">525</span>   * @param c       the cluster definition<a name="line.525"></a>
+<span class="sourceLineNo">526</span>   * @param path    the path or URI<a name="line.526"></a>
+<span class="sourceLineNo">527</span>   * @param headers the HTTP headers to include in the request<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   * @return a Response object with response detail<a name="line.528"></a>
+<span class="sourceLineNo">529</span>   */<a name="line.529"></a>
+<span class="sourceLineNo">530</span>  public Response get(Cluster c, String path, Header[] headers) throws IOException {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    if (httpGet != null) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      httpGet.releaseConnection();<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    httpGet = new HttpGet(path);<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    HttpResponse resp = execute(c, httpGet, headers, path);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    return new Response(resp.getStatusLine().getStatusCode(), resp.getAllHeaders(), resp,<a name="line.536"></a>
+<span class="sourceLineNo">537</span>      resp.getEntity() == null ? null : resp.getEntity().getContent());<a name="line.537"></a>
+<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>  /**<a name="line.540"></a>
+<span class="sourceLineNo">541</span>   * Send a PUT request<a name="line.541"></a>
+<span class="sourceLineNo">542</span>   * @param path        the path or URI<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * @param contentType the content MIME type<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * @param content     the content bytes<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * @return a Response object with response detail<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>  public Response put(String path, String contentType, byte[] content) throws IOException {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    return put(cluster, path, contentType, content);<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * Send a PUT request<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   * @param path        the path or URI<a name="line.553"></a>
+<span class="sourceLineNo">554</span>   * @param contentType the content MIME type<a name="line.554"></a>
+<span class="sourceLineNo">555</span>   * @param content     the content bytes<a name="line.555"></a>
+<span class="sourceLineNo">556</span>   * @param extraHdr    extra Header to send<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   * @return a Response object with response detail<a name="line.557"></a>
+<span class="sourceLineNo">558</span>   */<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  public Response put(String path, String contentType, byte[] content, Header extraHdr)<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    throws IOException {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    return put(cluster, path, contentType, content, extraHdr);<a name="line.561"></a>
+<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
+<span class="sourceLineNo">563</span><a name="line.563"></a>
+<span class="sourceLineNo">564</span>  /**<a name="line.564"></a>
+<span class="sourceLineNo">565</span>   * Send a PUT request<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * @param cluster     the cluster definition<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   * @param path        the path or URI<a name="line.567"></a>
+<span class="sourceLineNo">568</span>   * @param contentType the content MIME type<a name="line.568"></a>
+<span class="sourceLineNo">569</span>   * @param content     the content bytes<a name="line.569"></a>
+<span class="sourceLineNo">570</span>   * @return a Response object with response detail<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   * @throws IOException for error<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
+<span class="sourceLineNo">573</span>  public Response put(Cluster cluster, String path, String contentType, byte[] content)<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    throws IOException {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    Header[] headers = new Header[1];<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    return put(cluster, path, headers, content);<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span>  /**<a name="line.580"></a>
+<span class="sourceLineNo">581</span>   * Send a PUT request<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   * @param cluster     the cluster definition<a name="line.582"></a>
+<span class="sourceLineNo">583</span>   * @param path        the path or URI<a name="line.583"></a>
+<span class="sourceLineNo">584</span>   * @param contentType the content MIME type<a name="line.584"></a>
+<span class="sourceLineNo">585</span>   * @param content     the content bytes<a name="line.585"></a>
+<span class="sourceLineNo">586</span>   * @param extraHdr    additional Header to send<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   * @return a Response object with response detail<a name="line.587"></a>
+<span class="sourceLineNo">588</span>   * @throws IOException for error<a name="line.588"></a>
+<span class="sourceLineNo">589</span>   */<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  public Response put(Cluster cluster, String path, String contentType, byte[] content,<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    Header extraHdr) throws IOException {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    int cnt = extraHdr == null ? 1 : 2;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    Header[] headers = new Header[cnt];<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    if (extraHdr != null) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      headers[1] = extraHdr;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    return put(cluster, path, headers, content);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>  }<a name="line.599"></a>
+<span class="sourceLineNo">600</span><a name="line.600"></a>
+<span class="sourceLineNo">601</span>  /**<a name="line.601"></a>
+<span class="sourceLineNo">602</span>   * Send a PUT request<a name="line.602"></a>
+<span class="sourceLineNo">603</span>   * @param path    the path or URI<a name="line.603"></a>
+<span class="sourceLineNo">604</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.604"></a>
+<span class="sourceLineNo">605</span>   * @param content the content bytes<a name="line.605"></a>
+<span class="sourceLineNo">606</span>   * @return a Response object with response detail<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   */<a name="line.607"></a>
+<span class="sourceLineNo">608</span>  public Response put(String path, Header[] headers, byte[] content) throws IOException {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    return put(cluster, path, headers, content);<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>  /**<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   * Send a PUT request<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * @param cluster the cluster definition<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   * @param path    the path or URI<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.616"></a>
+<span class="sourceLineNo">617</span>   * @param content the content bytes<a name="line.617"></a>
+<span class="sourceLineNo">618</span>   * @return a Response object with response detail<a name="line.618"></a>
+<span class="sourceLineNo">619</span>   */<a name="line.619"></a>
+<span class="sourceLineNo">620</span>  public Response put(Cluster cluster, String path, Header[] headers, byte[] content)<a name="line.620"></a>
+<span class="sourceLineNo">621</span>    throws IOException {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    HttpPut method = new HttpPut(path);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    try {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      method.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      headers = resp.getAllHeaders();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>      content = getResponseBody(resp);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    } finally {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      method.releaseConnection();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>    }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>  }<a name="line.632"></a>
+<span class="sourceLineNo">633</span><a name="line.633"></a>
+<span class="sourceLineNo">634</span>  /**<a name="line.634"></a>
+<span class="sourceLineNo">635</span>   * Send a POST request<a name="line.635"></a>
+<span class="sourceLineNo">636</span>   * @param path        the path or URI<a name="line.636"></a>
+<span class="sourceLineNo">637</span>   * @param contentType the content MIME type<a name="line.637"></a>
+<span class="sourceLineNo">638</span>   * @param content     the content bytes<a name="line.638"></a>
+<span class="sourceLineNo">639</span>   * @return a Response object with response detail<a name="line.639"></a>
+<span class="sourceLineNo">640</span>   */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>  public Response post(String path, String contentType, byte[] content) throws IOException {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    return post(cluster, path, contentType, content);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>  /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   * Send a POST request<a name="line.646"></a>
+<span class="sourceLineNo">647</span>   * @param path        the path or URI<a name="line.647"></a>
+<span class="sourceLineNo">648</span>   * @param contentType the content MIME type<a name="line.648"></a>
+<span class="sourceLineNo">649</span>   * @param content     the content bytes<a name="line.649"></a>
+<span class="sourceLineNo">650</span>   * @param extraHdr    additional Header to send<a name="line.650"></a>
+<span class="sourceLineNo">651</span>   * @return a Response object with response detail<a name="line.651"></a>
+<span class="sourceLineNo">652</span>   */<a name="line.652"></a>
+<span class="sourceLineNo">653</span>  public Response post(String path, String contentType, byte[] content, Header extraHdr)<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    throws IOException {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>    return post(cluster, path, contentType, content, extraHdr);<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>  /**<a name="line.658"></a>
+<span class="sourceLineNo">659</span>   * Send a POST request<a name="line.659"></a>
+<span class="sourceLineNo">660</span>   * @param cluster     the cluster definition<a name="line.660"></a>
+<span class="sourceLineNo">661</span>   * @param path        the path or URI<a name="line.661"></a>
+<span class="sourceLineNo">662</span>   * @param contentType the content MIME type<a name="line.662"></a>
+<span class="sourceLineNo">663</span>   * @param content     the content bytes<a name="line.663"></a>
+<span class="sourceLineNo">664</span>   * @return a Response object with response detail<a name="line.664"></a>
+<span class="sourceLineNo">665</span>   * @throws IOException for error<a name="line.665"></a>
+<span class="sourceLineNo">666</span>   */<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  public Response post(Cluster cluster, String path, String contentType, byte[] content)<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    throws IOException {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    Header[] headers = new Header[1];<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.670"></a>
+<span class="sourceLineNo">671</span>    return post(cluster, path, headers, content);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
+<span class="sourceLineNo">673</span><a name="line.673"></a>
+<span class="sourceLineNo">674</span>  /**<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   * Send a POST request<a name="line.675"></a>
+<span class="sourceLineNo">676</span>   * @param cluster     the cluster definition<a name="line.676"></a>
+<span class="sourceLineNo">677</span>   * @param path        the path or URI<a name="line.677"></a>
+<span class="sourceLineNo">678</span>   * @param contentType the content MIME type<a name="line.678"></a>
+<span class="sourceLineNo">679</span>   * @param content     the content bytes<a name="line.679"></a>
+<span class="sourceLineNo">680</span>   * @param extraHdr    additional Header to send<a name="line.680"></a>
+<span class="sourceLineNo">681</span>   * @return a Response object with response detail<a name="line.681"></a>
+<span class="sourceLineNo">682</span>   * @throws IOException for error<a name="line.682"></a>
+<span class="sourceLineNo">683</span>   */<a name="line.683"></a>
+<span class="sourceLineNo">684</span>  public Response post(Cluster cluster, String path, String contentType, byte[] content,<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    Header extraHdr) throws IOException {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    int cnt = extraHdr == null ? 1 : 2;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    Header[] headers = new Header[cnt];<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    headers[0] = new BasicHeader("Content-Type", contentType);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    if (extraHdr != null) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>      headers[1] = extraHdr;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>    }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    return post(cluster, path, headers, content);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>  }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>  /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>   * Send a POST request<a name="line.696"></a>
+<span class="sourceLineNo">697</span>   * @param path    the path or URI<a name="line.697"></a>
+<span class="sourceLineNo">698</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.698"></a>
+<span class="sourceLineNo">699</span>   * @param content the content bytes<a name="line.699"></a>
+<span class="sourceLineNo">700</span>   * @return a Response object with response detail<a name="line.700"></a>
+<span class="sourceLineNo">701</span>   */<a name="line.701"></a>
+<span class="sourceLineNo">702</span>  public Response post(String path, Header[] headers, byte[] content) throws IOException {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    return post(cluster, path, headers, content);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>  }<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>  /**<a name="line.706"></a>
+<span class="sourceLineNo">707</span>   * Send a POST request<a name="line.707"></a>
+<span class="sourceLineNo">708</span>   * @param cluster the cluster definition<a name="line.708"></a>
+<span class="sourceLineNo">709</span>   * @param path    the path or URI<a name="line.709"></a>
+<span class="sourceLineNo">710</span>   * @param headers the HTTP headers to include, &lt;tt&gt;Content-Type&lt;/tt&gt; must be supplied<a name="line.710"></a>
+<span class="sourceLineNo">711</span>   * @param content the content bytes<a name="line.711"></a>
+<span class="sourceLineNo">712</span>   * @return a Response object with response detail<a name="line.712"></a>
+<span class="sourceLineNo">713</span>   */<a name="line.713"></a>
+<span class="sourceLineNo">714</span>  public Response post(Cluster cluster, String path, Header[] headers, byte[] content)<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    throws IOException {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>    HttpPost method = new HttpPost(path);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    try {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>      method.setEntity(new InputStreamEntity(new ByteArrayInputStream(content), content.length));<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>      headers = resp.getAllHeaders();<a name="line.720"></a>
+<span class="sourceLineNo">721</span>      content = getResponseBody(resp);<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.722"></a>
+<span class="sourceLineNo">723</span>    } finally {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>      method.releaseConnection();<a name="line.724"></a>
+<span class="sourceLineNo">725</span>    }<a name="line.725"></a>
+<span class="sourceLineNo">726</span>  }<a name="line.726"></a>
+<span class="sourceLineNo">727</span><a name="line.727"></a>
+<span class="sourceLineNo">728</span>  /**<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   * Send a DELETE request<a name="line.729"></a>
+<span class="sourceLineNo">730</span>   * @param path the path or URI<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * @return a Response object with response detail<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   */<a name="line.732"></a>
+<span class="sourceLineNo">733</span>  public Response delete(String path) throws IOException {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    return delete(cluster, path);<a name="line.734"></a>
+<span class="sourceLineNo">735</span>  }<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>  /**<a name="line.737"></a>
+<span class="sourceLineNo">738</span>   * Send a DELETE request<a name="line.738"></a>
+<span class="sourceLineNo">739</span>   * @param path     the path or URI<a name="line.739"></a>
+<span class="sourceLineNo">740</span>   * @param extraHdr additional Header to send<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   * @return a Response object with response detail<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   */<a name="line.742"></a>
+<span class="sourceLineNo">743</span>  public Response delete(String path, Header extraHdr) throws IOException {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>    return delete(cluster, path, extraHdr);<a name="line.744"></a>
+<span class="sourceLineNo">745</span>  }<a name="line.745"></a>
+<span class="sourceLineNo">746</span><a name="line.746"></a>
+<span class="sourceLineNo">747</span>  /**<a name="line.747"></a>
+<span class="sourceLineNo">748</span>   * Send a DELETE request<a name="line.748"></a>
+<span class="sourceLineNo">749</span>   * @param cluster the cluster definition<a name="line.749"></a>
+<span class="sourceLineNo">750</span>   * @param path    the path or URI<a name="line.750"></a>
+<span class="sourceLineNo">751</span>   * @return a Response object with response detail<a name="line.751"></a>
+<span class="sourceLineNo">752</span>   * @throws IOException for error<a name="line.752"></a>
+<span class="sourceLineNo">753</span>   */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>  public Response delete(Cluster cluster, String path) throws IOException {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    HttpDelete method = new HttpDelete(path);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    try {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      HttpResponse resp = execute(cluster, method, null, path);<a name="line.757"></a>
+<span class="sourceLineNo">758</span>      Header[] headers = resp.getAllHeaders();<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      byte[] content = getResponseBody(resp);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    } finally {<a name="line.761"></a>
+<span class="sourceLineNo">762</span>      method.releaseConnection();<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    }<a name="line.763"></a>
+<span class="sourceLineNo">764</span>  }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>  /**<a name="line.766"></a>
+<span class="sourceLineNo">767</span>   * Send a DELETE request<a name="line.767"></a>
+<span class="sourceLineNo">768</span>   * @param cluster the cluster definition<a name="line.768"></a>
+<span class="sourceLineNo">769</span>   * @param path    the path or URI<a name="line.769"></a>
+<span class="sourceLineNo">770</span>   * @return a Response object with response detail<a name="line.770"></a>
+<span class="sourceLineNo">771</span>   * @throws IOException for error<a name="line.771"></a>
+<span class="sourceLineNo">772</span>   */<a name="line.772"></a>
+<span class="sourceLineNo">773</span>  public Response delete(Cluster cluster, String path, Header extraHdr) throws IOException {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    HttpDelete method = new HttpDelete(path);<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    try {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>      Header[] headers = { extraHdr };<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      HttpResponse resp = execute(cluster, method, headers, path);<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      headers = resp.getAllHeaders();<a name="line.778"></a>
+<span class="sourceLineNo">779</span>      byte[] content = getResponseBody(resp);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>      return new Response(resp.getStatusLine().getStatusCode(), headers, content);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    } finally {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>      method.releaseConnection();<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    }<a name="line.783"></a>
+<span class="sourceLineNo">784</span>  }<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span>  public static class ClientTrustStoreInitializationException extends RuntimeException {<a name="line.786"></a>
+<span class="sourceLineNo">787</span><a name="line.787"></a>
+<span class="sourceLineNo">788</span>    public ClientTrustStoreInitializationException(String message, Throwable cause) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>      super(message, cause);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    }<a name="line.790"></a>
+<span class="sourceLineNo">791</span>  }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>}<a name="line.792"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.html b/devapidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.html
index 0bb3285abee..16b6ce3bea6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rest/client/Client.html
@@ -27,774 +27,777 @@
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import java.io.BufferedInputStream;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.ByteArrayInputStream;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.io.ByteArrayOutputStream;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.io.File;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.io.IOException;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.io.InputStream;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.net.URI;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.net.URISyntaxException;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.net.URL;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.nio.file.Files;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.security.KeyManagementException;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.security.KeyStore;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.security.KeyStoreException;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.security.NoSuchAlgorithmException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.security.cert.CertificateException;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.Collections;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.Map;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.Optional;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import javax.net.ssl.SSLContext;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.conf.Configuration;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.rest.Constants;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.security.authentication.client.AuthenticatedURL;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.security.authentication.client.AuthenticationException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.security.authentication.client.KerberosAuthenticator;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.http.Header;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.http.HttpResponse;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.http.HttpStatus;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.http.client.HttpClient;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.http.client.config.RequestConfig;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.http.client.methods.HttpDelete;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.http.client.methods.HttpGet;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.http.client.methods.HttpHead;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.http.client.methods.HttpPost;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.http.client.methods.HttpPut;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.http.client.methods.HttpUriRequest;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.http.entity.InputStreamEntity;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.http.impl.client.HttpClientBuilder;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.http.impl.client.HttpClients;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.http.message.BasicHeader;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.http.ssl.SSLContexts;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.http.util.EntityUtils;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.slf4j.Logger;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.slf4j.LoggerFactory;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>/**<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * A wrapper around HttpClient which provides some useful function and semantics for interacting<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * with the REST gateway.<a name="line.70"></a>
-<span class="sourceLineNo">071</span> */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>@InterfaceAudience.Public<a name="line.72"></a>
-<span class="sourceLineNo">073</span>public class Client {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public static final Header[] EMPTY_HEADER_ARRAY = new Header[0];<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final Logger LOG = LoggerFactory.getLogger(Client.class);<a name="line.76"></a>
+<span class="sourceLineNo">022</span>import java.io.File;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.io.IOException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.io.InputStream;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.net.URI;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.net.URISyntaxException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.net.URL;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.nio.file.Files;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.security.KeyManagementException;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.security.KeyStore;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.security.KeyStoreException;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.security.NoSuchAlgorithmException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.security.cert.CertificateException;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.Map;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Optional;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import javax.net.ssl.SSLContext;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.conf.Configuration;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.rest.Constants;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.security.authentication.client.AuthenticatedURL;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.security.authentication.client.AuthenticationException;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.security.authentication.client.KerberosAuthenticator;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.http.Header;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.http.HttpResponse;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.http.HttpStatus;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.http.client.HttpClient;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.http.client.config.RequestConfig;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.http.client.methods.HttpDelete;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.http.client.methods.HttpGet;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.http.client.methods.HttpHead;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.http.client.methods.HttpPost;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.http.client.methods.HttpPut;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.http.client.methods.HttpUriRequest;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.http.entity.InputStreamEntity;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.http.impl.client.HttpClientBuilder;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.http.impl.client.HttpClients;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.http.message.BasicHeader;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.http.ssl.SSLContexts;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.http.util.EntityUtils;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.slf4j.Logger;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.slf4j.LoggerFactory;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hbase.thirdparty.com.google.common.io.Closeables;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>/**<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * A wrapper around HttpClient which provides some useful function and semantics for interacting<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * with the REST gateway.<a name="line.72"></a>
+<span class="sourceLineNo">073</span> */<a name="line.73"></a>
+<span class="sourceLineNo">074</span>@InterfaceAudience.Public<a name="line.74"></a>
+<span class="sourceLineNo">075</span>public class Client {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  public static final Header[] EMPTY_HEADER_ARRAY = new Header[0];<a name="line.76"></a>
 <span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private HttpClient httpClient;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private Cluster cluster;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private Configuration conf;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private boolean sslEnabled;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private HttpResponse resp;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private HttpGet httpGet = null;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private Map&lt;String, String&gt; extraHeaders;<a name="line.85"></a>
+<span class="sourceLineNo">078</span>  private static final Logger LOG = LoggerFactory.getLogger(Client.class);<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private HttpClient httpClient;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private Cluster cluster;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private Configuration conf;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private boolean sslEnabled;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private HttpResponse resp;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private HttpGet httpGet = null;<a name="line.85"></a>
 <span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private static final String AUTH_COOKIE = "hadoop.auth";<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  private static final String AUTH_COOKIE_EQ = AUTH_COOKIE + "=";<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  private static final String COOKIE = "Cookie";<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  /**<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   * Default Constructor<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   */<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public Client() {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    this(null);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private void initialize(Cluster cluster, Configuration conf, boolean sslEnabled,<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    Optional&lt;KeyStore&gt; trustStore) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    this.cluster = cluster;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    this.conf = conf;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    this.sslEnabled = sslEnabled;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    extraHeaders = new ConcurrentHashMap&lt;&gt;();<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    String clspath = System.getProperty("java.class.path");<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    LOG.debug("classpath " + clspath);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    HttpClientBuilder httpClientBuilder = HttpClients.custom();<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>    int connTimeout = this.conf.getInt(Constants.REST_CLIENT_CONN_TIMEOUT,<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      Constants.DEFAULT_REST_CLIENT_CONN_TIMEOUT);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    int socketTimeout = this.conf.getInt(Constants.REST_CLIENT_SOCKET_TIMEOUT,<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      Constants.DEFAULT_REST_CLIENT_SOCKET_TIMEOUT);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connTimeout)<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      .setSocketTimeout(socketTimeout).setNormalizeUri(false) // URIs should not be normalized, see<a name="line.113"></a>
-<span class="sourceLineNo">114</span>                                                              // HBASE-26903<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      .build();<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    httpClientBuilder.setDefaultRequestConfig(requestConfig);<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    // Since HBASE-25267 we don't use the deprecated DefaultHttpClient anymore.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    // The new http client would decompress the gzip content automatically.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    // In order to keep the original behaviour of this public class, we disable<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    // automatic content compression.<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    httpClientBuilder.disableContentCompression();<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    if (sslEnabled &amp;&amp; trustStore.isPresent()) {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      try {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        SSLContext sslcontext =<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          SSLContexts.custom().loadTrustMaterial(trustStore.get(), null).build();<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        httpClientBuilder.setSSLContext(sslcontext);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      } catch (NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        throw new ClientTrustStoreInitializationException("Error while processing truststore", e);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      }<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>    this.httpClient = httpClientBuilder.build();<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  /**<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   * Constructor<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   * @param cluster the cluster definition<a name="line.139"></a>
-<span class="sourceLineNo">140</span>   */<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  public Client(Cluster cluster) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    this(cluster, false);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  /**<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   * Constructor<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * @param cluster    the cluster definition<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * @param sslEnabled enable SSL or not<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   */<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  public Client(Cluster cluster, boolean sslEnabled) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    initialize(cluster, HBaseConfiguration.create(), sslEnabled, Optional.empty());<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  /**<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   * Constructor<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @param cluster    the cluster definition<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * @param conf       Configuration<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * @param sslEnabled enable SSL or not<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   */<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  public Client(Cluster cluster, Configuration conf, boolean sslEnabled) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    initialize(cluster, conf, sslEnabled, Optional.empty());<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  }<a name="line.162"></a>
-<span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>  /**<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * @param cluster            the cluster definition<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * @param trustStorePassword password to use for custom trust store<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * @param trustStoreType     type of custom trust store<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   */<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public Client(Cluster cluster, String trustStorePath, Optional&lt;String&gt; trustStorePassword,<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    Optional&lt;String&gt; trustStoreType) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    this(cluster, HBaseConfiguration.create(), trustStorePath, trustStorePassword, trustStoreType);<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>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * @param cluster            the cluster definition<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * @param conf               Configuration<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * @param trustStorePassword password to use for custom trust store<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * @param trustStoreType     type of custom trust store<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  public Client(Cluster cluster, Configuration conf, String trustStorePath,<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Optional&lt;String&gt; trustStorePassword, Optional&lt;String&gt; trustStoreType) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    char[] password = trustStorePassword.map(String::toCharArray).orElse(null);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    String type = trustStoreType.orElse(KeyStore.getDefaultType());<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>    KeyStore trustStore;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    try {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      trustStore = KeyStore.getInstance(type);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    } catch (KeyStoreException e) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      throw new ClientTrustStoreInitializationException("Invalid trust store type: " + type, e);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    try (InputStream inputStream =<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      new BufferedInputStream(Files.newInputStream(new File(trustStorePath).toPath()))) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      trustStore.load(inputStream, password);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    } catch (CertificateException | NoSuchAlgorithmException | IOException e) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      throw new ClientTrustStoreInitializationException("Trust store load error: " + trustStorePath,<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        e);<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>    initialize(cluster, conf, true, Optional.of(trustStore));<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>  /**<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * Shut down the client. Close any open persistent connections.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  public void shutdown() {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  /** Returns the wrapped HttpClient */<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  public HttpClient getHttpClient() {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    return httpClient;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>  /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   * Add extra headers. These extra headers will be applied to all http methods before they are<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   * removed. If any header is not used any more, client needs to remove it explicitly.<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  public void addExtraHeader(final String name, final String value) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    extraHeaders.put(name, value);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<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>   * Get an extra header value.<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   */<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  public String getExtraHeader(final String name) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    return extraHeaders.get(name);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>  /**<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   * Get all extra headers (read-only).<a name="line.236"></a>
-<span class="sourceLineNo">237</span>   */<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  public Map&lt;String, String&gt; getExtraHeaders() {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    return Collections.unmodifiableMap(extraHeaders);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>  /**<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * Remove an extra header.<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   */<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  public void removeExtraHeader(final String name) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    extraHeaders.remove(name);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  /**<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   * Execute a transaction method given only the path. Will select at random one of the members of<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * the supplied cluster definition and iterate through the list until a transaction can be<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * successfully completed. The definition of success here is a complete HTTP transaction,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * irrespective of result code.<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * @param cluster the cluster definition<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * @param method  the transaction method<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * @param headers HTTP header values to send<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * @param path    the properly urlencoded path<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * @return the HTTP response code<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   */<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  public HttpResponse executePathOnly(Cluster cluster, HttpUriRequest method, Header[] headers,<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    String path) throws IOException {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    IOException lastException;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    if (cluster.nodes.size() &lt; 1) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      throw new IOException("Cluster is empty");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    int start = (int) Math.round((cluster.nodes.size() - 1) * Math.random());<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    int i = start;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    do {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      cluster.lastHost = cluster.nodes.get(i);<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      try {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        StringBuilder sb = new StringBuilder();<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        if (sslEnabled) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>          sb.append("https://");<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        } else {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          sb.append("http://");<a name="line.275"></a>
-<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        sb.append(cluster.lastHost);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        sb.append(path);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        URI uri = new URI(sb.toString());<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        if (method instanceof HttpPut) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          HttpPut put = new HttpPut(uri);<a name="line.281"></a>
-<span class="sourceLineNo">282</span>          put.setEntity(((HttpPut) method).getEntity());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          put.setHeaders(method.getAllHeaders());<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          method = put;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else if (method instanceof HttpGet) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          method = new HttpGet(uri);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        } else if (method instanceof HttpHead) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          method = new HttpHead(uri);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        } else if (method instanceof HttpDelete) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          method = new HttpDelete(uri);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        } else if (method instanceof HttpPost) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          HttpPost post = new HttpPost(uri);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>          post.setEntity(((HttpPost) method).getEntity());<a name="line.293"></a>
-<span class="sourceLineNo">294</span>          post.setHeaders(method.getAllHeaders());<a name="line.294"></a>
-<span class="sourceLineNo">295</span>          method = post;<a name="line.295"></a>
-<span class="sourceLineNo">296</span>        }<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        return executeURI(method, headers, uri.toString());<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      } catch (IOException e) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        lastException = e;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      } catch (URISyntaxException use) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        lastException = new IOException(use);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    } while (++i != start &amp;&amp; i &lt; cluster.nodes.size());<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    throw lastException;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<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>   * Execute a transaction method given a complete URI.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   * @param method  the transaction method<a name="line.309"></a>
-<span class="sourceLineNo">310</span>   * @param headers HTTP header values to send<a name="line.310"></a>
-<span class="sourceLineNo">311</span>   * @param uri     a properly urlencoded URI<a name="line.311"></a>
-<span class="sourceLineNo">312</span>   * @return the HTTP response code<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   */<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  public HttpResponse executeURI(HttpUriRequest method, Header[] headers, String uri)<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    throws IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    // method.setURI(new URI(uri, true));<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    for (Map.Entry&lt;String, String&gt; e : extraHeaders.entrySet()) {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      method.addHeader(e.getKey(), e.getValue());<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    if (headers != null) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      for (Header header : headers) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        method.addHeader(header);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    long startTime = EnvironmentEdgeManager.currentTime();<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    if (resp != null) EntityUtils.consumeQuietly(resp.getEntity());<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    resp = httpClient.execute(method);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_UNAUTHORIZED) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      // Authentication error<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      LOG.debug("Performing negotiation with the server.");<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      negotiate(method, uri);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      resp = httpClient.execute(method);<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>    long endTime = EnvironmentEdgeManager.currentTime();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    if (LOG.isTraceEnabled()) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      LOG.trace(method.getMethod() + " " + uri + " " + resp.getStatusLine().getStatusCode() + " "<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        + resp.getStatusLine().getReasonPhrase() + " in " + (endTime - startTime) + " ms");<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    return resp;<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  }<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>   * Execute a transaction method. Will call either &lt;tt&gt;executePathOnly&lt;/tt&gt; or &lt;tt&gt;executeURI&lt;/tt&gt;<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * depending on whether a path only is supplied in 'path', or if a complete URI is passed instead,<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   * respectively.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   * @param cluster the cluster definition<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * @param method  the HTTP method<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * @param headers HTTP header values to send<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * @param path    the properly urlencoded path or URI<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   * @return the HTTP response code<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   */<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public HttpResponse execute(Cluster cluster, HttpUriRequest method, Header[] headers, String path)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    throws IOException {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    if (path.startsWith("/")) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      return executePathOnly(cluster, method, headers, path);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    return executeURI(method, headers, path);<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>  /**<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * Initiate client side Kerberos negotiation with the server.<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * @param method method to inject the authentication token into.<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   * @param uri    the String to parse as a URL.<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * @throws IOException if unknown protocol is found.<a name="line.365"></a>
-<span class="sourceLineNo">366</span>   */<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  private void negotiate(HttpUriRequest method, String uri) throws IOException {<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    try {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      AuthenticatedURL.Token token = new AuthenticatedURL.Token();<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      KerberosAuthenticator authenticator = new KerberosAuthenticator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      authenticator.authenticate(new URL(uri), token);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      // Inject the obtained negotiated token in the method cookie<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      injectToken(method, token);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    } catch (AuthenticationException e) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      LOG.error("Failed to negotiate with the server.", e);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      throw new IOException(e);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    }<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  }<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>  /**<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   * Helper method that injects an authentication token to send with the method.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   * @param method method to inject the authentication token into.<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * @param token  authentication token to inject.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private void injectToken(HttpUriRequest method, AuthenticatedURL.Token token) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    String t = token.toString();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    if (t != null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      if (!t.startsWith("\"")) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        t = "\"" + t + "\"";<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      method.addHeader(COOKIE, AUTH_COOKIE_EQ + t);<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><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  /** Returns the cluster definition */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public Cluster getCluster() {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    return cluster;<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>  /**<a name="line.400"></a>
-<span class="sourceLineNo">401</span>   * @param cluster the cluster definition<a name="line.401"></a>
-<span class="sourceLineNo">402</span>   */<a name="line.402"></a>
-<span class="sourceLineNo">403</span>  public void setCluster(Cluster cluster) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    this.cluster = cluster;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  }<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>  /**<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * Send a HEAD request<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   * @param path the path or URI<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @return a Response object with response detail<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  public Response head(String path) throws IOException {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    return head(cluster, path, null);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * Send a HEAD request<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @param cluster the cluster definition<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * @param path    the path or URI<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   * @param headers the HTTP headers to include in the request<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   * @return a Response object with response detail<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   */<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  public Response head(Cluster cluster, String path, Header[] headers) throws IOException {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    HttpHead method = new HttpHead(path);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    try {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      HttpResponse resp = execute(cluster, method, null, path);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      return new Response(resp.getStatusLine().getStatusCode(), resp.getAllHeaders(), null);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    } finally {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      method.releaseConnection();<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><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   * Send a GET request<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * @param path the path or URI<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * @return a Response object with response detail<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   */<a name="line.437"></a>
-<span class="sourceLineNo">438</span>  public Response get(String path) throws IOException {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    return get(cluster, path);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>  /**<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * Send a GET request<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * @param cluster the cluster definition<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   * @param path    the path or URI<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   * @return a Response object with response detail<a name="line.446"></a>
-<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public Response get(Cluster cluster, String path) throws IOException {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    return get(cluster, path, EMPTY_HEADER_ARRAY);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  /**<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * Send a GET request<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * @param path   the path or URI<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @param accept Accept header value<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @return a Response object with response detail<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   */<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public Response get(String path, String accept) throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    return get(cluster, path, accept);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>  /**<a name="line.462"></a>
-<span class="sourceLineNo">463</span>   * Send a GET request<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * @param cluster the cluster definition<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * @param path    the path or URI<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * @param accept  Accept header value<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * @return a Response object with response detail<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   */<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  public Response get(Cluster cluster, String path, String accept) throws IOException {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    Header[] headers = new Header[1];<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    headers[0] = new BasicHeader("Accept", accept);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    return get(cluster, path, headers);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>  }<a name="line.473"></a>
-<span class="sourceLineNo">474</span><a name="line.474"></a>
-<span class="sourceLineNo">475</span>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Send a GET request<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * @param path    the path or URI<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @param headers the HTTP headers to include in the request, &lt;tt&gt;Accept&lt;/tt&gt; must be supplied<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @return a Response object with response detail<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   */<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  public Response get(String path, Header[] headers) throws IOException {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    return get(cluster, path, headers);<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  }<a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>  /**<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * Returns the response body of the HTTPResponse, if any, as an array of bytes. If response body<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * is not available or cannot be read, returns &lt;tt&gt;null&lt;/tt&gt; Note: This will cause the entire<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   * response body to be buffered in memory. A malicious server may easily exhaust all the VM<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * memory. It is strongly recommended, to use getResponseAsStream if the content length of the<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * response is unknown or reasonably large.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * @param resp HttpResponse<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   * @return The response body, null if body is empty<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   * @throws IOException If an I/O (transport) problem occurs while obtaining the response body.<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   */<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "NP_LOAD_OF_KNOWN_NULL_VALUE",<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      justification = "null is possible return value")<a name="line.496"></a>
+<span class="sourceLineNo">087</span>  private Map&lt;String, String&gt; extraHeaders;<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private static final String AUTH_COOKIE = "hadoop.auth";<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private static final String AUTH_COOKIE_EQ = AUTH_COOKIE + "=";<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  private static final String COOKIE = "Cookie";<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * Default Constructor<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public Client() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    this(null);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>  private void initialize(Cluster cluster, Configuration conf, boolean sslEnabled,<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    Optional&lt;KeyStore&gt; trustStore) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    this.cluster = cluster;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    this.conf = conf;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.sslEnabled = sslEnabled;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    extraHeaders = new ConcurrentHashMap&lt;&gt;();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    String clspath = System.getProperty("java.class.path");<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    LOG.debug("classpath " + clspath);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    HttpClientBuilder httpClientBuilder = HttpClients.custom();<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>    int connTimeout = this.conf.getInt(Constants.REST_CLIENT_CONN_TIMEOUT,<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      Constants.DEFAULT_REST_CLIENT_CONN_TIMEOUT);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    int socketTimeout = this.conf.getInt(Constants.REST_CLIENT_SOCKET_TIMEOUT,<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      Constants.DEFAULT_REST_CLIENT_SOCKET_TIMEOUT);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connTimeout)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      .setSocketTimeout(socketTimeout).setNormalizeUri(false) // URIs should not be normalized, see<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                                              // HBASE-26903<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      .build();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    httpClientBuilder.setDefaultRequestConfig(requestConfig);<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    // Since HBASE-25267 we don't use the deprecated DefaultHttpClient anymore.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    // The new http client would decompress the gzip content automatically.<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    // In order to keep the original behaviour of this public class, we disable<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // automatic content compression.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    httpClientBuilder.disableContentCompression();<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>    if (sslEnabled &amp;&amp; trustStore.isPresent()) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      try {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        SSLContext sslcontext =<a name="line.128"></a>
+<span class="sourceLineNo">129</span>          SSLContexts.custom().loadTrustMaterial(trustStore.get(), null).build();<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        httpClientBuilder.setSSLContext(sslcontext);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      } catch (NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        throw new ClientTrustStoreInitializationException("Error while processing truststore", e);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>    this.httpClient = httpClientBuilder.build();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  /**<a name="line.139"></a>
+<span class="sourceLineNo">140</span>   * Constructor<a name="line.140"></a>
+<span class="sourceLineNo">141</span>   * @param cluster the cluster definition<a name="line.141"></a>
+<span class="sourceLineNo">142</span>   */<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  public Client(Cluster cluster) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    this(cluster, false);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * Constructor<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * @param cluster    the cluster definition<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * @param sslEnabled enable SSL or not<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public Client(Cluster cluster, boolean sslEnabled) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    initialize(cluster, HBaseConfiguration.create(), sslEnabled, Optional.empty());<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  /**<a name="line.156"></a>
+<span class="sourceLineNo">157</span>   * Constructor<a name="line.157"></a>
+<span class="sourceLineNo">158</span>   * @param cluster    the cluster definition<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   * @param conf       Configuration<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * @param sslEnabled enable SSL or not<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  public Client(Cluster cluster, Configuration conf, boolean sslEnabled) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    initialize(cluster, conf, sslEnabled, Optional.empty());<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * @param cluster            the cluster definition<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * @param trustStorePassword password to use for custom trust store<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   * @param trustStoreType     type of custom trust store<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public Client(Cluster cluster, String trustStorePath, Optional&lt;String&gt; trustStorePassword,<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    Optional&lt;String&gt; trustStoreType) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    this(cluster, HBaseConfiguration.create(), trustStorePath, trustStorePassword, trustStoreType);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * Constructor, allowing to define custom trust store (only for SSL connections)<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   * @param cluster            the cluster definition<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * @param conf               Configuration<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * @param trustStorePath     custom trust store to use for SSL connections<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * @param trustStorePassword password to use for custom trust store<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * @param trustStoreType     type of custom trust store<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @throws ClientTrustStoreInitializationException if the trust store file can not be loaded<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  public Client(Cluster cluster, Configuration conf, String trustStorePath,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    Optional&lt;String&gt; trustStorePassword, Optional&lt;String&gt; trustStoreType) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>    char[] password = trustStorePassword.map(String::toCharArray).orElse(null);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    String type = trustStoreType.orElse(KeyStore.getDefaultType());<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    KeyStore trustStore;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    try {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      trustStore = KeyStore.getInstance(type);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    } catch (KeyStoreException e) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      throw new ClientTrustStoreInitializationException("Invalid trust store type: " + type, e);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    try (InputStream inputStream =<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      new BufferedInputStream(Files.newInputStream(new File(trustStorePath).toPath()))) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      trustStore.load(inputStream, password);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    } catch (CertificateException | NoSuchAlgorithmException | IOException e) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      throw new ClientTrustStoreInitializationException("Trust store load error: " + trustStorePath,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        e);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    initialize(cluster, conf, true, Optional.of(trustStore));<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  /**<a name="line.211"></a>
... 1149 lines suppressed ...