You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2019/05/30 14:51:51 UTC
[hbase-site] branch asf-site updated: Published site at
78e4aea3c59a480507e9ac1e9ec113ef508d9a86.
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 ea7c94f Published site at 78e4aea3c59a480507e9ac1e9ec113ef508d9a86.
ea7c94f is described below
commit ea7c94f1e853ef69fed56923599bd5d2db426983
Author: jenkins <bu...@apache.org>
AuthorDate: Thu May 30 14:51:34 2019 +0000
Published site at 78e4aea3c59a480507e9ac1e9ec113ef508d9a86.
---
acid-semantics.html | 2 +-
apache_hbase_reference_guide.pdf | 4 +-
book.html | 2 +-
bulk-loads.html | 2 +-
checkstyle-aggregate.html | 10 +-
checkstyle.rss | 16 +-
coc.html | 2 +-
dependencies.html | 2 +-
dependency-convergence.html | 2 +-
dependency-info.html | 2 +-
dependency-management.html | 2 +-
devapidocs/constant-values.html | 2 +-
devapidocs/index-all.html | 4 +
.../hadoop/hbase/backup/impl/BackupManifest.html | 26 +-
.../apache/hadoop/hbase/backup/package-tree.html | 4 +-
.../apache/hadoop/hbase/client/package-tree.html | 24 +-
.../apache/hadoop/hbase/executor/package-tree.html | 2 +-
.../apache/hadoop/hbase/filter/package-tree.html | 8 +-
.../org/apache/hadoop/hbase/http/package-tree.html | 2 +-
.../apache/hadoop/hbase/io/hfile/package-tree.html | 6 +-
.../org/apache/hadoop/hbase/ipc/package-tree.html | 2 +-
.../hadoop/hbase/mapreduce/package-tree.html | 2 +-
.../hbase/master/assignment/package-tree.html | 2 +-
.../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 | 18 +-
.../hadoop/hbase/procedure2/package-tree.html | 4 +-
.../apache/hadoop/hbase/quotas/package-tree.html | 4 +-
.../hadoop/hbase/regionserver/package-tree.html | 18 +-
.../hbase/regionserver/wal/package-tree.html | 6 +-
.../hadoop/hbase/rest/model/package-tree.html | 2 +-
.../hadoop/hbase/security/access/package-tree.html | 4 +-
.../apache/hadoop/hbase/security/package-tree.html | 2 +-
.../apache/hadoop/hbase/thrift/package-tree.html | 2 +-
.../org/apache/hadoop/hbase/util/FutureUtils.html | 55 ++-
.../org/apache/hadoop/hbase/util/package-tree.html | 12 +-
.../src-html/org/apache/hadoop/hbase/Version.html | 2 +-
.../impl/BackupManifest.BackupImage.Builder.html | 457 +++++++++++----------
.../backup/impl/BackupManifest.BackupImage.html | 457 +++++++++++----------
.../hadoop/hbase/backup/impl/BackupManifest.html | 457 +++++++++++----------
.../org/apache/hadoop/hbase/util/FutureUtils.html | 291 +++++++------
.../org/apache/hadoop/hbase/util/UnsafeAccess.html | 2 +-
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 +-
testdevapidocs/allclasses-frame.html | 1 +
testdevapidocs/allclasses-noframe.html | 1 +
testdevapidocs/index-all.html | 18 +-
.../hadoop/hbase/class-use/HBaseClassTestRule.html | 78 ++--
.../apache/hadoop/hbase/io/hfile/package-tree.html | 2 +-
.../org/apache/hadoop/hbase/package-tree.html | 10 +-
.../hadoop/hbase/procedure2/package-tree.html | 2 +-
.../hadoop/hbase/regionserver/package-tree.html | 6 +-
...ationStatusSourceStartedTargetStoppedNoOps.html | 10 +-
.../org/apache/hadoop/hbase/test/package-tree.html | 4 +-
.../apache/hadoop/hbase/util/TestFSVisitor.html | 4 +-
.../TestFutureUtils.html} | 120 +++---
.../TestHBaseFsckCleanReplicationBarriers.html | 4 +-
.../hbase/util/class-use/TestFutureUtils.html | 125 ++++++
.../apache/hadoop/hbase/util/package-frame.html | 1 +
.../apache/hadoop/hbase/util/package-summary.html | 78 ++--
.../org/apache/hadoop/hbase/util/package-tree.html | 1 +
.../org/apache/hadoop/hbase/wal/package-tree.html | 2 +-
testdevapidocs/overview-tree.html | 1 +
.../TestReplicationStatusAfterLagging.html | 2 +-
...licationStatusBothNormalAndRecoveryLagging.html | 2 +-
...ationStatusSourceStartedTargetStoppedNewOp.html | 2 +-
...ationStatusSourceStartedTargetStoppedNoOps.html | 4 +-
...atusSourceStartedTargetStoppedWithRecovery.html | 2 +-
.../apache/hadoop/hbase/util/TestFutureUtils.html | 157 +++++++
90 files changed, 1514 insertions(+), 1098 deletions(-)
diff --git a/acid-semantics.html b/acid-semantics.html
index aaeb6b4..48bbcee 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -457,7 +457,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index bef742f..2cb1a2b 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
/Author (Apache HBase Team)
/Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
/Producer (Apache HBase Team)
-/ModDate (D:20190529144639+00'00')
-/CreationDate (D:20190529144639+00'00')
+/ModDate (D:20190530144727+00'00')
+/CreationDate (D:20190530144727+00'00')
>>
endobj
2 0 obj
diff --git a/book.html b/book.html
index 9d09f42..ca5828d 100644
--- a/book.html
+++ b/book.html
@@ -41782,7 +41782,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
<div id="footer">
<div id="footer-text">
Version 3.0.0-SNAPSHOT<br>
-Last updated 2019-05-29 14:29:46 UTC
+Last updated 2019-05-30 14:29:43 UTC
</div>
</div>
</body>
diff --git a/bulk-loads.html b/bulk-loads.html
index 5877ebb..2933aee 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -162,7 +162,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index cc7eb3d..2c9748e 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -156,7 +156,7 @@
<th><img src="images/icon_warning_sml.gif" alt="" /> Warnings</th>
<th><img src="images/icon_error_sml.gif" alt="" /> Errors</th></tr>
<tr class="b">
-<td>3945</td>
+<td>3946</td>
<td>0</td>
<td>0</td>
<td>12988</td></tr></table></div>
@@ -8831,12 +8831,12 @@
<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a>
<ul>
<li>offset: <tt>"2"</tt></li></ul></td>
-<td>680</td>
+<td>681</td>
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td></tr>
<tr class="a">
<td></td>
<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>3227</td>
+<td>3226</td>
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td></tr>
<tr class="b">
<td>misc</td>
@@ -17641,7 +17641,7 @@
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>NonEmptyAtclauseDescription</td>
+<td>JavadocTagContinuationIndentation</td>
<td>Javadoc comment at column 0 has parse error. Details: no viable alternative at input ' *' while parsing JAVADOC_TAG</td>
<td>117</td></tr>
<tr class="b">
@@ -102213,7 +102213,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/checkstyle.rss b/checkstyle.rss
index 4ab531d..a29ae4d 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,7 +25,7 @@ under the License.
<language>en-us</language>
<copyright>©2007 - 2019 The Apache Software Foundation</copyright>
<item>
- <title>File: 3945,
+ <title>File: 3946,
Errors: 12988,
Warnings: 0,
Infos: 0
@@ -54884,6 +54884,20 @@ under the License.
</tr>
<tr>
<td>
+ <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.TestFutureUtils.java">org/apache/hadoop/hbase/util/TestFutureUtils.java</a>
+ </td>
+ <td>
+ 0
+ </td>
+ <td>
+ 0
+ </td>
+ <td>
+ 0
+ </td>
+ </tr>
+ <tr>
+ <td>
<a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.replication.ReplicationPeers.java">org/apache/hadoop/hbase/replication/ReplicationPeers.java</a>
</td>
<td>
diff --git a/coc.html b/coc.html
index 505bf37..e65aeb0 100644
--- a/coc.html
+++ b/coc.html
@@ -231,7 +231,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependencies.html b/dependencies.html
index ebbfb08..af5122e 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -311,7 +311,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 8df3e58..63c47c6 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -590,7 +590,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-info.html b/dependency-info.html
index eb1a3a4..3a51e1c 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -184,7 +184,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-management.html b/dependency-management.html
index 59006a3..b95e75f 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -894,7 +894,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 9428c28..86cc2be 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3927,7 +3927,7 @@
<!-- -->
</a><code>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Wed May 29 14:34:53 UTC 2019"</code></td>
+<td class="colLast"><code>"Thu May 30 14:35:11 UTC 2019"</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 0e4f2c9..4a7859d 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -98103,6 +98103,8 @@ service.</div>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html#retCodeDetails">retCodeDetails</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/FutureUtils.html#rethrow-java.util.concurrent.ExecutionException-">rethrow(ExecutionException)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/FutureUtils.html" title="class in org.apache.hadoop.hbase.util">FutureUtils</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/codec/BaseDecoder.html#rethrowEofException-java.io.IOException-">rethrowEofException(IOException)</a></span> - Method in class org.apache.hadoop.hbase.codec.<a href="org/apache/hadoop/hbase/codec/BaseDecoder.html" title="class in org.apache.hadoop.hbase.codec">BaseDecoder</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/errorhandling/ForeignExceptionDispatcher.html#rethrowException--">rethrowException()</a></span> - Method in class org.apache.hadoop.hbase.errorhandling.<a href="org/apache/hadoop/hbase/errorhandling/ForeignExceptionDispatcher.html" title="class in org.apache.hadoop.hbase.errorhandling">ForeignExceptionDispatcher</a></dt>
@@ -107330,6 +107332,8 @@ service.</div>
<div class="block">Called on store load to initialize the Procedure internals after
the creation/deserialization.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/FutureUtils.html#setStackTrace-java.lang.Throwable-">setStackTrace(Throwable)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/FutureUtils.html" title="class in org.apache.hadoop.hbase.util">FutureUtils</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.html#setStartAndStopRows-org.apache.hadoop.hbase.client.Scan-byte:A-byte:A-">setStartAndStopRows(Scan, byte[], byte[])</a></span> - Static method in class org.apache.hadoop.hbase.mapreduce.replication.<a href="org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.html" title="class in org.apache.hadoop.hbase.mapreduce.replication">VerifyReplication</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.Node.html#setStartCode-long-">setStartCode(long)</a></span> - Method in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.Node.html" title="class in org.apache.hadoop.hbase.rest.model">StorageClusterStatusModel.Node</a></dt>
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupManifest.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupManifest.html
index 4b63329..5f2469e 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupManifest.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupManifest.html
@@ -451,7 +451,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getType</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup">BackupType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.460">getType</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup">BackupType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.463">getType</a>()</pre>
</li>
</ul>
<a name="getTableList--">
@@ -460,7 +460,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getTableList</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.468">getTableList</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.471">getTableList</a>()</pre>
<div class="block">Get the table set of this image.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -474,7 +474,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>store</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.476">store</a>(org.apache.hadoop.conf.Configuration conf)
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.479">store</a>(org.apache.hadoop.conf.Configuration conf)
throws <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupException.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupException</a></pre>
<div class="block">TODO: fix it. Persist the manifest file.</div>
<dl>
@@ -490,7 +490,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getBackupImage</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.496">getBackupImage</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.499">getBackupImage</a>()</pre>
<div class="block">Get this backup image.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -504,7 +504,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>addDependentImage</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.504">addDependentImage</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a> image)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.507">addDependentImage</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a> image)</pre>
<div class="block">Add dependent backup image for this backup.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -518,7 +518,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>setIncrTimestampMap</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.512">setIncrTimestampMap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a><<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.h [...]
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.515">setIncrTimestampMap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a><<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.h [...]
<div class="block">Set the incremental timestamp map directly.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -532,7 +532,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getIncrTimestampMap</h4>
-<pre>public <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><<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String [...]
+<pre>public <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><<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String [...]
</li>
</ul>
<a name="getRestoreDependentList-boolean-">
@@ -541,7 +541,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getRestoreDependentList</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.525">getRestoreDependentList</a>(boole [...]
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.528">getRestoreDependentList</a>(boole [...]
<div class="block">Get the image list of this backup for restore in time order.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -557,7 +557,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getDependentListByTable</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.541">getDependentListByTable</a>(<a hr [...]
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.544">getDependentListByTable</a>(<a hr [...]
<div class="block">Get the dependent image list for a specific table of this backup in time order from old to new
if want to restore to this backup image level.</div>
<dl>
@@ -574,7 +574,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>getAllDependentListByTable</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.563">getAllDependentListByTable</a>(<a [...]
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.566">getAllDependentListByTable</a>(<a [...]
<div class="block">Get the full dependent image list in the whole dependency scope for a specific table of this
backup in time order from old to new.</div>
<dl>
@@ -592,7 +592,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>canCoverImage</h4>
-<pre>public static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.580">canCoverImage</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a> image1,
+<pre>public static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.583">canCoverImage</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a> image1,
<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a> image2)</pre>
<div class="block">Check whether backup image1 could cover backup image2 or not.</div>
<dl>
@@ -610,7 +610,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>canCoverImage</h4>
-<pre>public static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.617">canCoverImage</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>>& [...]
+<pre>public static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.620">canCoverImage</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>>& [...]
<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a> image)</pre>
<div class="block">Check whether backup image set could cover a backup image or not.</div>
<dl>
@@ -628,7 +628,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>toBackupInfo</h4>
-<pre>public <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.654">toBackupInfo</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html#line.657">toBackupInfo</a>()</pre>
</li>
</ul>
</li>
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index db18ec0..5c05b83 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (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><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
<ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.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/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index b2df11f..02f2747 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -549,24 +549,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><E> (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><T>, 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/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.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/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</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 531254c..127caa7 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -104,8 +104,8 @@
<ul>
<li type="circle">java.lang.<a href="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><E> (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><T>, 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/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index 6afd9bd..ee5aef6 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -189,13 +189,13 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (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><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
<ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</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 e1a5d8d..26468e3 100644
--- a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
@@ -138,9 +138,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (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><T>, 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.Output.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Output</span></a></li>
<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/HttpConfig.Policy.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">HttpConfig.Policy</span></a></li>
<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>
</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 bb583e3..31b42a2 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -283,12 +283,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><E> (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><T>, 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/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/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/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/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/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/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 05f6fbe..d288952 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -354,8 +354,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><E> (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><T>, 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/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>
+<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>
</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 fbca2a7..84fa62d 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -297,10 +297,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><E> (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><T>, 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/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
index e0b322d..f63d55a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
@@ -148,8 +148,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><E> (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><T>, 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.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerState.html" title="enum in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">ServerState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.TransitionType.html" title="enum in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TransitRegionStateProcedure.TransitionType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerState.html" title="enum in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">ServerState</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 c49c655..848d41f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
@@ -198,8 +198,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><E> (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><T>, 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/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index f4e1679..4241a1a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -356,10 +356,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><E> (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><T>, 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/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/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/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
</ul>
</li>
</ul>
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 9a92da9..d78efc3 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -217,9 +217,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><E> (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><T>, 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/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/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
</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 7524d90..452eaee 100644
--- a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
@@ -127,8 +127,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><E> (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><T>, 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 bde97af..22840fd 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -433,19 +433,19 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (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><T>, 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/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/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/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/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/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
</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 8eb2ac0..a5511ed 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -217,10 +217,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><E> (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><T>, 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/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 2cb8fa6..36b75a6 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -240,11 +240,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><E> (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><T>, 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/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>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
</ul>
</li>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 0239d94..1c5fe7e 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -715,19 +715,19 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (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><T>, 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/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/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/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/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/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/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/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/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/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
</ul>
</li>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index 7291aff..5ef6472 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -247,10 +247,10 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (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><T>, 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/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/WALActionsListener.RollRequestReason.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALActionsListener.RollRequestReason</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/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/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/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
index 3aa879d..7d70035 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -110,8 +110,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (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><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
<ul>
-<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index db71036..808195b 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -143,10 +143,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><E> (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><T>, 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/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</span></a></li>
<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index 4b0ca3e..3412365 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -192,9 +192,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (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><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
<ul>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/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>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index 47e3265..66d0a39 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -207,9 +207,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><E> (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><T>, 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/ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ImplType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<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>
</ul>
</li>
</ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/FutureUtils.html b/devapidocs/org/apache/hadoop/hbase/util/FutureUtils.html
index d5ad99f..800dd3e 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/FutureUtils.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/FutureUtils.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Private
-public final class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.41">FutureUtils</a>
+public final class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.39">FutureUtils</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">Helper class for processing futures.</div>
</li>
@@ -209,12 +209,20 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</td>
</tr>
<tr id="i5" class="rowColor">
+<td class="colFirst"><code>private static <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></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/FutureUtils.html#rethrow-java.util.concurrent.ExecutionException-">rethrow</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent">ExecutionException</a> error)</code> </td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>private static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/FutureUtils.html#setStackTrace-java.lang.Throwable-">setStackTrace</a></span>(<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> error)</code> </td>
+</tr>
+<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/FutureUtils.html#unwrapCompletionException-java.lang.Throwable-">unwrapCompletionException</a></span>(<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> error)</code>
<div class="block">Get the cause of the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><code>Throwable</code></a> if it is a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionException.html?is-external=true" title="class or interface in java.util.concurrent"><code>CompletionException</code></a>.</div>
</td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>static <T> <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><T></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/FutureUtils.html#wrapFuture-java.util.concurrent.CompletableFuture-java.util.concurrent.Executor-">wrapFuture</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><T> future,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a> executor)</code>
@@ -250,7 +258,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.43">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.41">LOG</a></pre>
</li>
</ul>
</li>
@@ -267,7 +275,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>FutureUtils</h4>
-<pre>private <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.45">FutureUtils</a>()</pre>
+<pre>private <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.43">FutureUtils</a>()</pre>
</li>
</ul>
</li>
@@ -284,7 +292,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>addListener</h4>
-<pre>public static <T> void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.61">addListener</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><T> future,
+<pre>public static <T> void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.59">addListener</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><T> future,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function">BiConsumer</a><? super T,? super <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>> action)</pre>
<div class="block">This is method is used when you just want to add a listener to the given future. We will call
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true#whenComplete-java.util.function.BiConsumer-" title="class or interface in java.util.concurrent"><code>CompletableFuture.whenComplete(BiConsumer)</code></a> to register the <code>action</code> to the
@@ -304,7 +312,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>addListener</h4>
-<pre>public static <T> void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.84">addListener</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><T> future,
+<pre>public static <T> void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.82">addListener</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><T> future,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function">BiConsumer</a><? super T,? super <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>> action,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a> executor)</pre>
<div class="block">Almost the same with <a href="../../../../../org/apache/hadoop/hbase/util/FutureUtils.html#addListener-java.util.concurrent.CompletableFuture-java.util.function.BiConsumer-"><code>addListener(CompletableFuture, BiConsumer)</code></a> method above, the only
@@ -322,7 +330,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>wrapFuture</h4>
-<pre>public static <T> <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><T> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.99">wrapFuture</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.uti [...]
+<pre>public static <T> <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><T> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.97">wrapFuture</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.uti [...]
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a> executor)</pre>
<div class="block">Return a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent"><code>CompletableFuture</code></a> which is same with the given <code>future</code>, but execute all
the callbacks in the given <code>executor</code>.</div>
@@ -334,17 +342,40 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>unwrapCompletionException</h4>
-<pre>public static <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> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.115">unwrapCompletionException</a>(<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> error)</pre>
+<pre>public static <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> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.113">unwrapCompletionException</a>(<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> error)</pre>
<div class="block">Get the cause of the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><code>Throwable</code></a> if it is a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionException.html?is-external=true" title="class or interface in java.util.concurrent"><code>CompletionException</code></a>.</div>
</li>
</ul>
+<a name="setStackTrace-java.lang.Throwable-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStackTrace</h4>
+<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.129">setStackTrace</a>(<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> error)</pre>
+</li>
+</ul>
+<a name="rethrow-java.util.concurrent.ExecutionException-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rethrow</h4>
+<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.142">rethrow</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent">ExecutionException</a> error)
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><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></code></dd>
+</dl>
+</li>
+</ul>
<a name="get-java.util.concurrent.Future-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public static <T> T <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.129">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a><T> future)
+<pre>public static <T> T <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.162">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a><T> future)
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">A helper class for getting the result of a Future, and convert the error to an
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a>.</div>
@@ -360,7 +391,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 static <T> T <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.145">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a><T> future,
+<pre>public static <T> T <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.176">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a><T> future,
long timeout,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a> unit)
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>
@@ -378,7 +409,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>failedFuture</h4>
-<pre>public static <T> <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><T> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.162">failedFuture</a>(<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> [...]
+<pre>public static <T> <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a><T> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/FutureUtils.html#line.191">failedFuture</a>(<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> [...]
<div class="block">Returns a CompletableFuture that is already completed exceptionally with the given exception.</div>
</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 1566573..46fb390 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -542,14 +542,14 @@
<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><E> (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><T>, 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/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><T>)</li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/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/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a><T>)</li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/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><T>)</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><T>)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
</ul>
</li>
</ul>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index 9192776..dfa73b0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -18,7 +18,7 @@
<span class="sourceLineNo">010</span> public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
<span class="sourceLineNo">011</span> public static final String revision = "Unknown";<a name="line.11"></a>
<span class="sourceLineNo">012</span> public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span> public static final String date = "Wed May 29 14:34:53 UTC 2019";<a name="line.13"></a>
+<span class="sourceLineNo">013</span> public static final String date = "Thu May 30 14:35:11 UTC 2019";<a name="line.13"></a>
<span class="sourceLineNo">014</span> public static final String url = "file:///home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
<span class="sourceLineNo">015</span> public static final String srcChecksum = "(stdin)=";<a name="line.15"></a>
<span class="sourceLineNo">016</span>}<a name="line.16"></a>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.Builder.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.Builder.html
index ec2aa41..3d369e6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.Builder.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.Builder.html
@@ -442,239 +442,242 @@
<span class="sourceLineNo">434</span> for (FileStatus subFile : subFiles) {<a name="line.434"></a>
<span class="sourceLineNo">435</span> if (subFile.getPath().getName().equals(MANIFEST_FILE_NAME)) {<a name="line.435"></a>
<span class="sourceLineNo">436</span> // load and set manifest field from file content<a name="line.436"></a>
-<span class="sourceLineNo">437</span> FSDataInputStream in = fs.open(subFile.getPath());<a name="line.437"></a>
-<span class="sourceLineNo">438</span> long len = subFile.getLen();<a name="line.438"></a>
-<span class="sourceLineNo">439</span> byte[] pbBytes = new byte[(int) len];<a name="line.439"></a>
-<span class="sourceLineNo">440</span> in.readFully(pbBytes);<a name="line.440"></a>
-<span class="sourceLineNo">441</span> BackupProtos.BackupImage proto = null;<a name="line.441"></a>
-<span class="sourceLineNo">442</span> try {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> proto = BackupProtos.BackupImage.parseFrom(pbBytes);<a name="line.443"></a>
-<span class="sourceLineNo">444</span> } catch (Exception e) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> throw new BackupException(e);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> this.backupImage = BackupImage.fromProto(proto);<a name="line.447"></a>
-<span class="sourceLineNo">448</span> LOG.debug("Loaded manifest instance from manifest file: "<a name="line.448"></a>
-<span class="sourceLineNo">449</span> + BackupUtils.getPath(subFile.getPath()));<a name="line.449"></a>
-<span class="sourceLineNo">450</span> return;<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> String errorMsg = "No manifest file found in: " + backupPath.toString();<a name="line.453"></a>
-<span class="sourceLineNo">454</span> throw new IOException(errorMsg);<a name="line.454"></a>
-<span class="sourceLineNo">455</span> } catch (IOException e) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span> throw new BackupException(e.getMessage());<a name="line.456"></a>
-<span class="sourceLineNo">457</span> }<a name="line.457"></a>
-<span class="sourceLineNo">458</span> }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public BackupType getType() {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> return backupImage.getType();<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> * Get the table set of this image.<a name="line.465"></a>
-<span class="sourceLineNo">466</span> * @return The table set list<a name="line.466"></a>
-<span class="sourceLineNo">467</span> */<a name="line.467"></a>
-<span class="sourceLineNo">468</span> public List<TableName> getTableList() {<a name="line.468"></a>
-<span class="sourceLineNo">469</span> return backupImage.getTableNames();<a name="line.469"></a>
-<span class="sourceLineNo">470</span> }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span> /**<a name="line.472"></a>
-<span class="sourceLineNo">473</span> * TODO: fix it. Persist the manifest file.<a name="line.473"></a>
-<span class="sourceLineNo">474</span> * @throws IOException IOException when storing the manifest file.<a name="line.474"></a>
-<span class="sourceLineNo">475</span> */<a name="line.475"></a>
-<span class="sourceLineNo">476</span> public void store(Configuration conf) throws BackupException {<a name="line.476"></a>
-<span class="sourceLineNo">477</span> byte[] data = backupImage.toProto().toByteArray();<a name="line.477"></a>
-<span class="sourceLineNo">478</span> // write the file, overwrite if already exist<a name="line.478"></a>
-<span class="sourceLineNo">479</span> Path manifestFilePath =<a name="line.479"></a>
-<span class="sourceLineNo">480</span> new Path(HBackupFileSystem.getBackupPath(backupImage.getRootDir(),<a name="line.480"></a>
-<span class="sourceLineNo">481</span> backupImage.getBackupId()), MANIFEST_FILE_NAME);<a name="line.481"></a>
-<span class="sourceLineNo">482</span> try (FSDataOutputStream out =<a name="line.482"></a>
-<span class="sourceLineNo">483</span> manifestFilePath.getFileSystem(conf).create(manifestFilePath, true)) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span> out.write(data);<a name="line.484"></a>
-<span class="sourceLineNo">485</span> } catch (IOException e) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span> throw new BackupException(e.getMessage());<a name="line.486"></a>
-<span class="sourceLineNo">487</span> }<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span> LOG.info("Manifest file stored to " + manifestFilePath);<a name="line.489"></a>
-<span class="sourceLineNo">490</span> }<a name="line.490"></a>
+<span class="sourceLineNo">437</span> long len = subFile.getLen();<a name="line.437"></a>
+<span class="sourceLineNo">438</span> byte[] pbBytes = new byte[(int) len];<a name="line.438"></a>
+<span class="sourceLineNo">439</span> try (FSDataInputStream in = fs.open(subFile.getPath())) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span> in.readFully(pbBytes);<a name="line.440"></a>
+<span class="sourceLineNo">441</span> } catch (IOException e) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> throw new BackupException(e.getMessage());<a name="line.442"></a>
+<span class="sourceLineNo">443</span> }<a name="line.443"></a>
+<span class="sourceLineNo">444</span> BackupProtos.BackupImage proto = null;<a name="line.444"></a>
+<span class="sourceLineNo">445</span> try {<a name="line.445"></a>
+<span class="sourceLineNo">446</span> proto = BackupProtos.BackupImage.parseFrom(pbBytes);<a name="line.446"></a>
+<span class="sourceLineNo">447</span> } catch (Exception e) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span> throw new BackupException(e);<a name="line.448"></a>
+<span class="sourceLineNo">449</span> }<a name="line.449"></a>
+<span class="sourceLineNo">450</span> this.backupImage = BackupImage.fromProto(proto);<a name="line.450"></a>
+<span class="sourceLineNo">451</span> LOG.debug("Loaded manifest instance from manifest file: "<a name="line.451"></a>
+<span class="sourceLineNo">452</span> + BackupUtils.getPath(subFile.getPath()));<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return;<a name="line.453"></a>
+<span class="sourceLineNo">454</span> }<a name="line.454"></a>
+<span class="sourceLineNo">455</span> }<a name="line.455"></a>
+<span class="sourceLineNo">456</span> String errorMsg = "No manifest file found in: " + backupPath.toString();<a name="line.456"></a>
+<span class="sourceLineNo">457</span> throw new IOException(errorMsg);<a name="line.457"></a>
+<span class="sourceLineNo">458</span> } catch (IOException e) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span> throw new BackupException(e.getMessage());<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> public BackupType getType() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span> return backupImage.getType();<a name="line.464"></a>
+<span class="sourceLineNo">465</span> }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span> /**<a name="line.467"></a>
+<span class="sourceLineNo">468</span> * Get the table set of this image.<a name="line.468"></a>
+<span class="sourceLineNo">469</span> * @return The table set list<a name="line.469"></a>
+<span class="sourceLineNo">470</span> */<a name="line.470"></a>
+<span class="sourceLineNo">471</span> public List<TableName> getTableList() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span> return backupImage.getTableNames();<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> * TODO: fix it. Persist the manifest file.<a name="line.476"></a>
+<span class="sourceLineNo">477</span> * @throws IOException IOException when storing the manifest file.<a name="line.477"></a>
+<span class="sourceLineNo">478</span> */<a name="line.478"></a>
+<span class="sourceLineNo">479</span> public void store(Configuration conf) throws BackupException {<a name="line.479"></a>
+<span class="sourceLineNo">480</span> byte[] data = backupImage.toProto().toByteArray();<a name="line.480"></a>
+<span class="sourceLineNo">481</span> // write the file, overwrite if already exist<a name="line.481"></a>
+<span class="sourceLineNo">482</span> Path manifestFilePath =<a name="line.482"></a>
+<span class="sourceLineNo">483</span> new Path(HBackupFileSystem.getBackupPath(backupImage.getRootDir(),<a name="line.483"></a>
+<span class="sourceLineNo">484</span> backupImage.getBackupId()), MANIFEST_FILE_NAME);<a name="line.484"></a>
+<span class="sourceLineNo">485</span> try (FSDataOutputStream out =<a name="line.485"></a>
+<span class="sourceLineNo">486</span> manifestFilePath.getFileSystem(conf).create(manifestFilePath, true)) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span> out.write(data);<a name="line.487"></a>
+<span class="sourceLineNo">488</span> } catch (IOException e) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> throw new BackupException(e.getMessage());<a name="line.489"></a>
+<span class="sourceLineNo">490</span> }<a name="line.490"></a>
<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span> /**<a name="line.492"></a>
-<span class="sourceLineNo">493</span> * Get this backup image.<a name="line.493"></a>
-<span class="sourceLineNo">494</span> * @return the backup image.<a name="line.494"></a>
-<span class="sourceLineNo">495</span> */<a name="line.495"></a>
-<span class="sourceLineNo">496</span> public BackupImage getBackupImage() {<a name="line.496"></a>
-<span class="sourceLineNo">497</span> return backupImage;<a name="line.497"></a>
-<span class="sourceLineNo">498</span> }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> /**<a name="line.500"></a>
-<span class="sourceLineNo">501</span> * Add dependent backup image for this backup.<a name="line.501"></a>
-<span class="sourceLineNo">502</span> * @param image The direct dependent backup image<a name="line.502"></a>
-<span class="sourceLineNo">503</span> */<a name="line.503"></a>
-<span class="sourceLineNo">504</span> public void addDependentImage(BackupImage image) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span> this.backupImage.addAncestor(image);<a name="line.505"></a>
-<span class="sourceLineNo">506</span> }<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span> /**<a name="line.508"></a>
-<span class="sourceLineNo">509</span> * Set the incremental timestamp map directly.<a name="line.509"></a>
-<span class="sourceLineNo">510</span> * @param incrTimestampMap timestamp map<a name="line.510"></a>
-<span class="sourceLineNo">511</span> */<a name="line.511"></a>
-<span class="sourceLineNo">512</span> public void setIncrTimestampMap(HashMap<TableName, HashMap<String, Long>> incrTimestampMap) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span> this.backupImage.setIncrTimeRanges(incrTimestampMap);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span> public Map<TableName, HashMap<String, Long>> getIncrTimestampMap() {<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return backupImage.getIncrTimeRanges();<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> * Get the image list of this backup for restore in time order.<a name="line.521"></a>
-<span class="sourceLineNo">522</span> * @param reverse If true, then output in reverse order, otherwise in time order from old to new<a name="line.522"></a>
-<span class="sourceLineNo">523</span> * @return the backup image list for restore in time order<a name="line.523"></a>
-<span class="sourceLineNo">524</span> */<a name="line.524"></a>
-<span class="sourceLineNo">525</span> public ArrayList<BackupImage> getRestoreDependentList(boolean reverse) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span> TreeMap<Long, BackupImage> restoreImages = new TreeMap<>();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> restoreImages.put(backupImage.startTs, backupImage);<a name="line.527"></a>
-<span class="sourceLineNo">528</span> for (BackupImage image : backupImage.getAncestors()) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span> restoreImages.put(Long.valueOf(image.startTs), image);<a name="line.529"></a>
-<span class="sourceLineNo">530</span> }<a name="line.530"></a>
-<span class="sourceLineNo">531</span> return new ArrayList<>(reverse ? (restoreImages.descendingMap().values())<a name="line.531"></a>
-<span class="sourceLineNo">532</span> : (restoreImages.values()));<a name="line.532"></a>
-<span class="sourceLineNo">533</span> }<a name="line.533"></a>
-<span class="sourceLineNo">534</span><a name="line.534"></a>
-<span class="sourceLineNo">535</span> /**<a name="line.535"></a>
-<span class="sourceLineNo">536</span> * Get the dependent image list for a specific table of this backup in time order from old to new<a name="line.536"></a>
-<span class="sourceLineNo">537</span> * if want to restore to this backup image level.<a name="line.537"></a>
-<span class="sourceLineNo">538</span> * @param table table<a name="line.538"></a>
-<span class="sourceLineNo">539</span> * @return the backup image list for a table in time order<a name="line.539"></a>
-<span class="sourceLineNo">540</span> */<a name="line.540"></a>
-<span class="sourceLineNo">541</span> public ArrayList<BackupImage> getDependentListByTable(TableName table) {<a name="line.541"></a>
-<span class="sourceLineNo">542</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.542"></a>
-<span class="sourceLineNo">543</span> ArrayList<BackupImage> imageList = getRestoreDependentList(true);<a name="line.543"></a>
-<span class="sourceLineNo">544</span> for (BackupImage image : imageList) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span> if (image.hasTable(table)) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span> tableImageList.add(image);<a name="line.546"></a>
-<span class="sourceLineNo">547</span> if (image.getType() == BackupType.FULL) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span> break;<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> Collections.reverse(tableImageList);<a name="line.552"></a>
-<span class="sourceLineNo">553</span> return tableImageList;<a name="line.553"></a>
-<span class="sourceLineNo">554</span> }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span> /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span> * Get the full dependent image list in the whole dependency scope for a specific table of this<a name="line.557"></a>
-<span class="sourceLineNo">558</span> * backup in time order from old to new.<a name="line.558"></a>
-<span class="sourceLineNo">559</span> * @param table table<a name="line.559"></a>
-<span class="sourceLineNo">560</span> * @return the full backup image list for a table in time order in the whole scope of the<a name="line.560"></a>
-<span class="sourceLineNo">561</span> * dependency of this image<a name="line.561"></a>
-<span class="sourceLineNo">562</span> */<a name="line.562"></a>
-<span class="sourceLineNo">563</span> public ArrayList<BackupImage> getAllDependentListByTable(TableName table) {<a name="line.563"></a>
-<span class="sourceLineNo">564</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.564"></a>
-<span class="sourceLineNo">565</span> ArrayList<BackupImage> imageList = getRestoreDependentList(false);<a name="line.565"></a>
-<span class="sourceLineNo">566</span> for (BackupImage image : imageList) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span> if (image.hasTable(table)) {<a name="line.567"></a>
-<span class="sourceLineNo">568</span> tableImageList.add(image);<a name="line.568"></a>
-<span class="sourceLineNo">569</span> }<a name="line.569"></a>
-<span class="sourceLineNo">570</span> }<a name="line.570"></a>
-<span class="sourceLineNo">571</span> return tableImageList;<a name="line.571"></a>
-<span class="sourceLineNo">572</span> }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span> /**<a name="line.574"></a>
-<span class="sourceLineNo">575</span> * Check whether backup image1 could cover backup image2 or not.<a name="line.575"></a>
-<span class="sourceLineNo">576</span> * @param image1 backup image 1<a name="line.576"></a>
-<span class="sourceLineNo">577</span> * @param image2 backup image 2<a name="line.577"></a>
-<span class="sourceLineNo">578</span> * @return true if image1 can cover image2, otherwise false<a name="line.578"></a>
-<span class="sourceLineNo">579</span> */<a name="line.579"></a>
-<span class="sourceLineNo">580</span> public static boolean canCoverImage(BackupImage image1, BackupImage image2) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span> // image1 can cover image2 only when the following conditions are satisfied:<a name="line.581"></a>
-<span class="sourceLineNo">582</span> // - image1 must not be an incremental image;<a name="line.582"></a>
-<span class="sourceLineNo">583</span> // - image1 must be taken after image2 has been taken;<a name="line.583"></a>
-<span class="sourceLineNo">584</span> // - table set of image1 must cover the table set of image2.<a name="line.584"></a>
-<span class="sourceLineNo">585</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span> return false;<a name="line.586"></a>
-<span class="sourceLineNo">587</span> }<a name="line.587"></a>
-<span class="sourceLineNo">588</span> if (image1.getStartTs() < image2.getStartTs()) {<a name="line.588"></a>
+<span class="sourceLineNo">492</span> LOG.info("Manifest file stored to " + manifestFilePath);<a name="line.492"></a>
+<span class="sourceLineNo">493</span> }<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span> /**<a name="line.495"></a>
+<span class="sourceLineNo">496</span> * Get this backup image.<a name="line.496"></a>
+<span class="sourceLineNo">497</span> * @return the backup image.<a name="line.497"></a>
+<span class="sourceLineNo">498</span> */<a name="line.498"></a>
+<span class="sourceLineNo">499</span> public BackupImage getBackupImage() {<a name="line.499"></a>
+<span class="sourceLineNo">500</span> return backupImage;<a name="line.500"></a>
+<span class="sourceLineNo">501</span> }<a name="line.501"></a>
+<span class="sourceLineNo">502</span><a name="line.502"></a>
+<span class="sourceLineNo">503</span> /**<a name="line.503"></a>
+<span class="sourceLineNo">504</span> * Add dependent backup image for this backup.<a name="line.504"></a>
+<span class="sourceLineNo">505</span> * @param image The direct dependent backup image<a name="line.505"></a>
+<span class="sourceLineNo">506</span> */<a name="line.506"></a>
+<span class="sourceLineNo">507</span> public void addDependentImage(BackupImage image) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span> this.backupImage.addAncestor(image);<a name="line.508"></a>
+<span class="sourceLineNo">509</span> }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span> /**<a name="line.511"></a>
+<span class="sourceLineNo">512</span> * Set the incremental timestamp map directly.<a name="line.512"></a>
+<span class="sourceLineNo">513</span> * @param incrTimestampMap timestamp map<a name="line.513"></a>
+<span class="sourceLineNo">514</span> */<a name="line.514"></a>
+<span class="sourceLineNo">515</span> public void setIncrTimestampMap(HashMap<TableName, HashMap<String, Long>> incrTimestampMap) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> this.backupImage.setIncrTimeRanges(incrTimestampMap);<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> public Map<TableName, HashMap<String, Long>> getIncrTimestampMap() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span> return backupImage.getIncrTimeRanges();<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> * Get the image list of this backup for restore in time order.<a name="line.524"></a>
+<span class="sourceLineNo">525</span> * @param reverse If true, then output in reverse order, otherwise in time order from old to new<a name="line.525"></a>
+<span class="sourceLineNo">526</span> * @return the backup image list for restore in time order<a name="line.526"></a>
+<span class="sourceLineNo">527</span> */<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public ArrayList<BackupImage> getRestoreDependentList(boolean reverse) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> TreeMap<Long, BackupImage> restoreImages = new TreeMap<>();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> restoreImages.put(backupImage.startTs, backupImage);<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (BackupImage image : backupImage.getAncestors()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> restoreImages.put(Long.valueOf(image.startTs), image);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> }<a name="line.533"></a>
+<span class="sourceLineNo">534</span> return new ArrayList<>(reverse ? (restoreImages.descendingMap().values())<a name="line.534"></a>
+<span class="sourceLineNo">535</span> : (restoreImages.values()));<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> /**<a name="line.538"></a>
+<span class="sourceLineNo">539</span> * Get the dependent image list for a specific table of this backup in time order from old to new<a name="line.539"></a>
+<span class="sourceLineNo">540</span> * if want to restore to this backup image level.<a name="line.540"></a>
+<span class="sourceLineNo">541</span> * @param table table<a name="line.541"></a>
+<span class="sourceLineNo">542</span> * @return the backup image list for a table in time order<a name="line.542"></a>
+<span class="sourceLineNo">543</span> */<a name="line.543"></a>
+<span class="sourceLineNo">544</span> public ArrayList<BackupImage> getDependentListByTable(TableName table) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.545"></a>
+<span class="sourceLineNo">546</span> ArrayList<BackupImage> imageList = getRestoreDependentList(true);<a name="line.546"></a>
+<span class="sourceLineNo">547</span> for (BackupImage image : imageList) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> if (image.hasTable(table)) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span> tableImageList.add(image);<a name="line.549"></a>
+<span class="sourceLineNo">550</span> if (image.getType() == BackupType.FULL) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span> break;<a name="line.551"></a>
+<span class="sourceLineNo">552</span> }<a name="line.552"></a>
+<span class="sourceLineNo">553</span> }<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
+<span class="sourceLineNo">555</span> Collections.reverse(tableImageList);<a name="line.555"></a>
+<span class="sourceLineNo">556</span> return tableImageList;<a name="line.556"></a>
+<span class="sourceLineNo">557</span> }<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> /**<a name="line.559"></a>
+<span class="sourceLineNo">560</span> * Get the full dependent image list in the whole dependency scope for a specific table of this<a name="line.560"></a>
+<span class="sourceLineNo">561</span> * backup in time order from old to new.<a name="line.561"></a>
+<span class="sourceLineNo">562</span> * @param table table<a name="line.562"></a>
+<span class="sourceLineNo">563</span> * @return the full backup image list for a table in time order in the whole scope of the<a name="line.563"></a>
+<span class="sourceLineNo">564</span> * dependency of this image<a name="line.564"></a>
+<span class="sourceLineNo">565</span> */<a name="line.565"></a>
+<span class="sourceLineNo">566</span> public ArrayList<BackupImage> getAllDependentListByTable(TableName table) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.567"></a>
+<span class="sourceLineNo">568</span> ArrayList<BackupImage> imageList = getRestoreDependentList(false);<a name="line.568"></a>
+<span class="sourceLineNo">569</span> for (BackupImage image : imageList) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span> if (image.hasTable(table)) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span> tableImageList.add(image);<a name="line.571"></a>
+<span class="sourceLineNo">572</span> }<a name="line.572"></a>
+<span class="sourceLineNo">573</span> }<a name="line.573"></a>
+<span class="sourceLineNo">574</span> return tableImageList;<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> * Check whether backup image1 could cover backup image2 or not.<a name="line.578"></a>
+<span class="sourceLineNo">579</span> * @param image1 backup image 1<a name="line.579"></a>
+<span class="sourceLineNo">580</span> * @param image2 backup image 2<a name="line.580"></a>
+<span class="sourceLineNo">581</span> * @return true if image1 can cover image2, otherwise false<a name="line.581"></a>
+<span class="sourceLineNo">582</span> */<a name="line.582"></a>
+<span class="sourceLineNo">583</span> public static boolean canCoverImage(BackupImage image1, BackupImage image2) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span> // image1 can cover image2 only when the following conditions are satisfied:<a name="line.584"></a>
+<span class="sourceLineNo">585</span> // - image1 must not be an incremental image;<a name="line.585"></a>
+<span class="sourceLineNo">586</span> // - image1 must be taken after image2 has been taken;<a name="line.586"></a>
+<span class="sourceLineNo">587</span> // - table set of image1 must cover the table set of image2.<a name="line.587"></a>
+<span class="sourceLineNo">588</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.588"></a>
<span class="sourceLineNo">589</span> return false;<a name="line.589"></a>
<span class="sourceLineNo">590</span> }<a name="line.590"></a>
-<span class="sourceLineNo">591</span> List<TableName> image1TableList = image1.getTableNames();<a name="line.591"></a>
-<span class="sourceLineNo">592</span> List<TableName> image2TableList = image2.getTableNames();<a name="line.592"></a>
-<span class="sourceLineNo">593</span> boolean found;<a name="line.593"></a>
-<span class="sourceLineNo">594</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.594"></a>
-<span class="sourceLineNo">595</span> found = false;<a name="line.595"></a>
-<span class="sourceLineNo">596</span> for (int j = 0; j < image1TableList.size(); j++) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span> if (image2TableList.get(i).equals(image1TableList.get(j))) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span> found = true;<a name="line.598"></a>
-<span class="sourceLineNo">599</span> break;<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> if (!found) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span> return false;<a name="line.603"></a>
+<span class="sourceLineNo">591</span> if (image1.getStartTs() < image2.getStartTs()) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span> return false;<a name="line.592"></a>
+<span class="sourceLineNo">593</span> }<a name="line.593"></a>
+<span class="sourceLineNo">594</span> List<TableName> image1TableList = image1.getTableNames();<a name="line.594"></a>
+<span class="sourceLineNo">595</span> List<TableName> image2TableList = image2.getTableNames();<a name="line.595"></a>
+<span class="sourceLineNo">596</span> boolean found;<a name="line.596"></a>
+<span class="sourceLineNo">597</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span> found = false;<a name="line.598"></a>
+<span class="sourceLineNo">599</span> for (int j = 0; j < image1TableList.size(); j++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span> if (image2TableList.get(i).equals(image1TableList.get(j))) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span> found = true;<a name="line.601"></a>
+<span class="sourceLineNo">602</span> break;<a name="line.602"></a>
+<span class="sourceLineNo">603</span> }<a name="line.603"></a>
<span class="sourceLineNo">604</span> }<a name="line.604"></a>
-<span class="sourceLineNo">605</span> }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span> LOG.debug("Backup image " + image1.getBackupId() + " can cover " + image2.getBackupId());<a name="line.607"></a>
-<span class="sourceLineNo">608</span> return true;<a name="line.608"></a>
-<span class="sourceLineNo">609</span> }<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span> /**<a name="line.611"></a>
-<span class="sourceLineNo">612</span> * Check whether backup image set could cover a backup image or not.<a name="line.612"></a>
-<span class="sourceLineNo">613</span> * @param fullImages The backup image set<a name="line.613"></a>
-<span class="sourceLineNo">614</span> * @param image The target backup image<a name="line.614"></a>
-<span class="sourceLineNo">615</span> * @return true if fullImages can cover image, otherwise false<a name="line.615"></a>
-<span class="sourceLineNo">616</span> */<a name="line.616"></a>
-<span class="sourceLineNo">617</span> public static boolean canCoverImage(ArrayList<BackupImage> fullImages, BackupImage image) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span> // fullImages can cover image only when the following conditions are satisfied:<a name="line.618"></a>
-<span class="sourceLineNo">619</span> // - each image of fullImages must not be an incremental image;<a name="line.619"></a>
-<span class="sourceLineNo">620</span> // - each image of fullImages must be taken after image has been taken;<a name="line.620"></a>
-<span class="sourceLineNo">621</span> // - sum table set of fullImages must cover the table set of image.<a name="line.621"></a>
-<span class="sourceLineNo">622</span> for (BackupImage image1 : fullImages) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.623"></a>
-<span class="sourceLineNo">624</span> return false;<a name="line.624"></a>
-<span class="sourceLineNo">625</span> }<a name="line.625"></a>
-<span class="sourceLineNo">626</span> if (image1.getStartTs() < image.getStartTs()) {<a name="line.626"></a>
+<span class="sourceLineNo">605</span> if (!found) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span> return false;<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> LOG.debug("Backup image " + image1.getBackupId() + " can cover " + image2.getBackupId());<a name="line.610"></a>
+<span class="sourceLineNo">611</span> return true;<a name="line.611"></a>
+<span class="sourceLineNo">612</span> }<a name="line.612"></a>
+<span class="sourceLineNo">613</span><a name="line.613"></a>
+<span class="sourceLineNo">614</span> /**<a name="line.614"></a>
+<span class="sourceLineNo">615</span> * Check whether backup image set could cover a backup image or not.<a name="line.615"></a>
+<span class="sourceLineNo">616</span> * @param fullImages The backup image set<a name="line.616"></a>
+<span class="sourceLineNo">617</span> * @param image The target backup image<a name="line.617"></a>
+<span class="sourceLineNo">618</span> * @return true if fullImages can cover image, otherwise false<a name="line.618"></a>
+<span class="sourceLineNo">619</span> */<a name="line.619"></a>
+<span class="sourceLineNo">620</span> public static boolean canCoverImage(ArrayList<BackupImage> fullImages, BackupImage image) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span> // fullImages can cover image only when the following conditions are satisfied:<a name="line.621"></a>
+<span class="sourceLineNo">622</span> // - each image of fullImages must not be an incremental image;<a name="line.622"></a>
+<span class="sourceLineNo">623</span> // - each image of fullImages must be taken after image has been taken;<a name="line.623"></a>
+<span class="sourceLineNo">624</span> // - sum table set of fullImages must cover the table set of image.<a name="line.624"></a>
+<span class="sourceLineNo">625</span> for (BackupImage image1 : fullImages) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.626"></a>
<span class="sourceLineNo">627</span> return false;<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> ArrayList<String> image1TableList = new ArrayList<>();<a name="line.631"></a>
-<span class="sourceLineNo">632</span> for (BackupImage image1 : fullImages) {<a name="line.632"></a>
-<span class="sourceLineNo">633</span> List<TableName> tableList = image1.getTableNames();<a name="line.633"></a>
-<span class="sourceLineNo">634</span> for (TableName table : tableList) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span> image1TableList.add(table.getNameAsString());<a name="line.635"></a>
-<span class="sourceLineNo">636</span> }<a name="line.636"></a>
-<span class="sourceLineNo">637</span> }<a name="line.637"></a>
-<span class="sourceLineNo">638</span> ArrayList<String> image2TableList = new ArrayList<>();<a name="line.638"></a>
-<span class="sourceLineNo">639</span> List<TableName> tableList = image.getTableNames();<a name="line.639"></a>
-<span class="sourceLineNo">640</span> for (TableName table : tableList) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span> image2TableList.add(table.getNameAsString());<a name="line.641"></a>
-<span class="sourceLineNo">642</span> }<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.644"></a>
-<span class="sourceLineNo">645</span> if (image1TableList.contains(image2TableList.get(i)) == false) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span> return false;<a name="line.646"></a>
-<span class="sourceLineNo">647</span> }<a name="line.647"></a>
-<span class="sourceLineNo">648</span> }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span> LOG.debug("Full image set can cover image " + image.getBackupId());<a name="line.650"></a>
-<span class="sourceLineNo">651</span> return true;<a name="line.651"></a>
-<span class="sourceLineNo">652</span> }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span> public BackupInfo toBackupInfo() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span> BackupInfo info = new BackupInfo();<a name="line.655"></a>
-<span class="sourceLineNo">656</span> info.setType(backupImage.getType());<a name="line.656"></a>
-<span class="sourceLineNo">657</span> List<TableName> list = backupImage.getTableNames();<a name="line.657"></a>
-<span class="sourceLineNo">658</span> TableName[] tables = new TableName[list.size()];<a name="line.658"></a>
-<span class="sourceLineNo">659</span> info.addTables(list.toArray(tables));<a name="line.659"></a>
-<span class="sourceLineNo">660</span> info.setBackupId(backupImage.getBackupId());<a name="line.660"></a>
-<span class="sourceLineNo">661</span> info.setStartTs(backupImage.getStartTs());<a name="line.661"></a>
-<span class="sourceLineNo">662</span> info.setBackupRootDir(backupImage.getRootDir());<a name="line.662"></a>
-<span class="sourceLineNo">663</span> if (backupImage.getType() == BackupType.INCREMENTAL) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span> info.setHLogTargetDir(BackupUtils.getLogBackupDir(backupImage.getRootDir(),<a name="line.664"></a>
-<span class="sourceLineNo">665</span> backupImage.getBackupId()));<a name="line.665"></a>
-<span class="sourceLineNo">666</span> }<a name="line.666"></a>
-<span class="sourceLineNo">667</span> return info;<a name="line.667"></a>
-<span class="sourceLineNo">668</span> }<a name="line.668"></a>
-<span class="sourceLineNo">669</span>}<a name="line.669"></a>
+<span class="sourceLineNo">629</span> if (image1.getStartTs() < image.getStartTs()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span> return false;<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> ArrayList<String> image1TableList = new ArrayList<>();<a name="line.634"></a>
+<span class="sourceLineNo">635</span> for (BackupImage image1 : fullImages) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span> List<TableName> tableList = image1.getTableNames();<a name="line.636"></a>
+<span class="sourceLineNo">637</span> for (TableName table : tableList) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span> image1TableList.add(table.getNameAsString());<a name="line.638"></a>
+<span class="sourceLineNo">639</span> }<a name="line.639"></a>
+<span class="sourceLineNo">640</span> }<a name="line.640"></a>
+<span class="sourceLineNo">641</span> ArrayList<String> image2TableList = new ArrayList<>();<a name="line.641"></a>
+<span class="sourceLineNo">642</span> List<TableName> tableList = image.getTableNames();<a name="line.642"></a>
+<span class="sourceLineNo">643</span> for (TableName table : tableList) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span> image2TableList.add(table.getNameAsString());<a name="line.644"></a>
+<span class="sourceLineNo">645</span> }<a name="line.645"></a>
+<span class="sourceLineNo">646</span><a name="line.646"></a>
+<span class="sourceLineNo">647</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span> if (image1TableList.contains(image2TableList.get(i)) == false) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span> return false;<a name="line.649"></a>
+<span class="sourceLineNo">650</span> }<a name="line.650"></a>
+<span class="sourceLineNo">651</span> }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span> LOG.debug("Full image set can cover image " + image.getBackupId());<a name="line.653"></a>
+<span class="sourceLineNo">654</span> return true;<a name="line.654"></a>
+<span class="sourceLineNo">655</span> }<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span> public BackupInfo toBackupInfo() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span> BackupInfo info = new BackupInfo();<a name="line.658"></a>
+<span class="sourceLineNo">659</span> info.setType(backupImage.getType());<a name="line.659"></a>
+<span class="sourceLineNo">660</span> List<TableName> list = backupImage.getTableNames();<a name="line.660"></a>
+<span class="sourceLineNo">661</span> TableName[] tables = new TableName[list.size()];<a name="line.661"></a>
+<span class="sourceLineNo">662</span> info.addTables(list.toArray(tables));<a name="line.662"></a>
+<span class="sourceLineNo">663</span> info.setBackupId(backupImage.getBackupId());<a name="line.663"></a>
+<span class="sourceLineNo">664</span> info.setStartTs(backupImage.getStartTs());<a name="line.664"></a>
+<span class="sourceLineNo">665</span> info.setBackupRootDir(backupImage.getRootDir());<a name="line.665"></a>
+<span class="sourceLineNo">666</span> if (backupImage.getType() == BackupType.INCREMENTAL) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span> info.setHLogTargetDir(BackupUtils.getLogBackupDir(backupImage.getRootDir(),<a name="line.667"></a>
+<span class="sourceLineNo">668</span> backupImage.getBackupId()));<a name="line.668"></a>
+<span class="sourceLineNo">669</span> }<a name="line.669"></a>
+<span class="sourceLineNo">670</span> return info;<a name="line.670"></a>
+<span class="sourceLineNo">671</span> }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>}<a name="line.672"></a>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html
index ec2aa41..3d369e6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html
@@ -442,239 +442,242 @@
<span class="sourceLineNo">434</span> for (FileStatus subFile : subFiles) {<a name="line.434"></a>
<span class="sourceLineNo">435</span> if (subFile.getPath().getName().equals(MANIFEST_FILE_NAME)) {<a name="line.435"></a>
<span class="sourceLineNo">436</span> // load and set manifest field from file content<a name="line.436"></a>
-<span class="sourceLineNo">437</span> FSDataInputStream in = fs.open(subFile.getPath());<a name="line.437"></a>
-<span class="sourceLineNo">438</span> long len = subFile.getLen();<a name="line.438"></a>
-<span class="sourceLineNo">439</span> byte[] pbBytes = new byte[(int) len];<a name="line.439"></a>
-<span class="sourceLineNo">440</span> in.readFully(pbBytes);<a name="line.440"></a>
-<span class="sourceLineNo">441</span> BackupProtos.BackupImage proto = null;<a name="line.441"></a>
-<span class="sourceLineNo">442</span> try {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> proto = BackupProtos.BackupImage.parseFrom(pbBytes);<a name="line.443"></a>
-<span class="sourceLineNo">444</span> } catch (Exception e) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> throw new BackupException(e);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> this.backupImage = BackupImage.fromProto(proto);<a name="line.447"></a>
-<span class="sourceLineNo">448</span> LOG.debug("Loaded manifest instance from manifest file: "<a name="line.448"></a>
-<span class="sourceLineNo">449</span> + BackupUtils.getPath(subFile.getPath()));<a name="line.449"></a>
-<span class="sourceLineNo">450</span> return;<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> String errorMsg = "No manifest file found in: " + backupPath.toString();<a name="line.453"></a>
-<span class="sourceLineNo">454</span> throw new IOException(errorMsg);<a name="line.454"></a>
-<span class="sourceLineNo">455</span> } catch (IOException e) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span> throw new BackupException(e.getMessage());<a name="line.456"></a>
-<span class="sourceLineNo">457</span> }<a name="line.457"></a>
-<span class="sourceLineNo">458</span> }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public BackupType getType() {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> return backupImage.getType();<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> * Get the table set of this image.<a name="line.465"></a>
-<span class="sourceLineNo">466</span> * @return The table set list<a name="line.466"></a>
-<span class="sourceLineNo">467</span> */<a name="line.467"></a>
-<span class="sourceLineNo">468</span> public List<TableName> getTableList() {<a name="line.468"></a>
-<span class="sourceLineNo">469</span> return backupImage.getTableNames();<a name="line.469"></a>
-<span class="sourceLineNo">470</span> }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span> /**<a name="line.472"></a>
-<span class="sourceLineNo">473</span> * TODO: fix it. Persist the manifest file.<a name="line.473"></a>
-<span class="sourceLineNo">474</span> * @throws IOException IOException when storing the manifest file.<a name="line.474"></a>
-<span class="sourceLineNo">475</span> */<a name="line.475"></a>
-<span class="sourceLineNo">476</span> public void store(Configuration conf) throws BackupException {<a name="line.476"></a>
-<span class="sourceLineNo">477</span> byte[] data = backupImage.toProto().toByteArray();<a name="line.477"></a>
-<span class="sourceLineNo">478</span> // write the file, overwrite if already exist<a name="line.478"></a>
-<span class="sourceLineNo">479</span> Path manifestFilePath =<a name="line.479"></a>
-<span class="sourceLineNo">480</span> new Path(HBackupFileSystem.getBackupPath(backupImage.getRootDir(),<a name="line.480"></a>
-<span class="sourceLineNo">481</span> backupImage.getBackupId()), MANIFEST_FILE_NAME);<a name="line.481"></a>
-<span class="sourceLineNo">482</span> try (FSDataOutputStream out =<a name="line.482"></a>
-<span class="sourceLineNo">483</span> manifestFilePath.getFileSystem(conf).create(manifestFilePath, true)) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span> out.write(data);<a name="line.484"></a>
-<span class="sourceLineNo">485</span> } catch (IOException e) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span> throw new BackupException(e.getMessage());<a name="line.486"></a>
-<span class="sourceLineNo">487</span> }<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span> LOG.info("Manifest file stored to " + manifestFilePath);<a name="line.489"></a>
-<span class="sourceLineNo">490</span> }<a name="line.490"></a>
+<span class="sourceLineNo">437</span> long len = subFile.getLen();<a name="line.437"></a>
+<span class="sourceLineNo">438</span> byte[] pbBytes = new byte[(int) len];<a name="line.438"></a>
+<span class="sourceLineNo">439</span> try (FSDataInputStream in = fs.open(subFile.getPath())) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span> in.readFully(pbBytes);<a name="line.440"></a>
+<span class="sourceLineNo">441</span> } catch (IOException e) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> throw new BackupException(e.getMessage());<a name="line.442"></a>
+<span class="sourceLineNo">443</span> }<a name="line.443"></a>
+<span class="sourceLineNo">444</span> BackupProtos.BackupImage proto = null;<a name="line.444"></a>
+<span class="sourceLineNo">445</span> try {<a name="line.445"></a>
+<span class="sourceLineNo">446</span> proto = BackupProtos.BackupImage.parseFrom(pbBytes);<a name="line.446"></a>
+<span class="sourceLineNo">447</span> } catch (Exception e) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span> throw new BackupException(e);<a name="line.448"></a>
+<span class="sourceLineNo">449</span> }<a name="line.449"></a>
+<span class="sourceLineNo">450</span> this.backupImage = BackupImage.fromProto(proto);<a name="line.450"></a>
+<span class="sourceLineNo">451</span> LOG.debug("Loaded manifest instance from manifest file: "<a name="line.451"></a>
+<span class="sourceLineNo">452</span> + BackupUtils.getPath(subFile.getPath()));<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return;<a name="line.453"></a>
+<span class="sourceLineNo">454</span> }<a name="line.454"></a>
+<span class="sourceLineNo">455</span> }<a name="line.455"></a>
+<span class="sourceLineNo">456</span> String errorMsg = "No manifest file found in: " + backupPath.toString();<a name="line.456"></a>
+<span class="sourceLineNo">457</span> throw new IOException(errorMsg);<a name="line.457"></a>
+<span class="sourceLineNo">458</span> } catch (IOException e) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span> throw new BackupException(e.getMessage());<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> public BackupType getType() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span> return backupImage.getType();<a name="line.464"></a>
+<span class="sourceLineNo">465</span> }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span> /**<a name="line.467"></a>
+<span class="sourceLineNo">468</span> * Get the table set of this image.<a name="line.468"></a>
+<span class="sourceLineNo">469</span> * @return The table set list<a name="line.469"></a>
+<span class="sourceLineNo">470</span> */<a name="line.470"></a>
+<span class="sourceLineNo">471</span> public List<TableName> getTableList() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span> return backupImage.getTableNames();<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> * TODO: fix it. Persist the manifest file.<a name="line.476"></a>
+<span class="sourceLineNo">477</span> * @throws IOException IOException when storing the manifest file.<a name="line.477"></a>
+<span class="sourceLineNo">478</span> */<a name="line.478"></a>
+<span class="sourceLineNo">479</span> public void store(Configuration conf) throws BackupException {<a name="line.479"></a>
+<span class="sourceLineNo">480</span> byte[] data = backupImage.toProto().toByteArray();<a name="line.480"></a>
+<span class="sourceLineNo">481</span> // write the file, overwrite if already exist<a name="line.481"></a>
+<span class="sourceLineNo">482</span> Path manifestFilePath =<a name="line.482"></a>
+<span class="sourceLineNo">483</span> new Path(HBackupFileSystem.getBackupPath(backupImage.getRootDir(),<a name="line.483"></a>
+<span class="sourceLineNo">484</span> backupImage.getBackupId()), MANIFEST_FILE_NAME);<a name="line.484"></a>
+<span class="sourceLineNo">485</span> try (FSDataOutputStream out =<a name="line.485"></a>
+<span class="sourceLineNo">486</span> manifestFilePath.getFileSystem(conf).create(manifestFilePath, true)) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span> out.write(data);<a name="line.487"></a>
+<span class="sourceLineNo">488</span> } catch (IOException e) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> throw new BackupException(e.getMessage());<a name="line.489"></a>
+<span class="sourceLineNo">490</span> }<a name="line.490"></a>
<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span> /**<a name="line.492"></a>
-<span class="sourceLineNo">493</span> * Get this backup image.<a name="line.493"></a>
-<span class="sourceLineNo">494</span> * @return the backup image.<a name="line.494"></a>
-<span class="sourceLineNo">495</span> */<a name="line.495"></a>
-<span class="sourceLineNo">496</span> public BackupImage getBackupImage() {<a name="line.496"></a>
-<span class="sourceLineNo">497</span> return backupImage;<a name="line.497"></a>
-<span class="sourceLineNo">498</span> }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> /**<a name="line.500"></a>
-<span class="sourceLineNo">501</span> * Add dependent backup image for this backup.<a name="line.501"></a>
-<span class="sourceLineNo">502</span> * @param image The direct dependent backup image<a name="line.502"></a>
-<span class="sourceLineNo">503</span> */<a name="line.503"></a>
-<span class="sourceLineNo">504</span> public void addDependentImage(BackupImage image) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span> this.backupImage.addAncestor(image);<a name="line.505"></a>
-<span class="sourceLineNo">506</span> }<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span> /**<a name="line.508"></a>
-<span class="sourceLineNo">509</span> * Set the incremental timestamp map directly.<a name="line.509"></a>
-<span class="sourceLineNo">510</span> * @param incrTimestampMap timestamp map<a name="line.510"></a>
-<span class="sourceLineNo">511</span> */<a name="line.511"></a>
-<span class="sourceLineNo">512</span> public void setIncrTimestampMap(HashMap<TableName, HashMap<String, Long>> incrTimestampMap) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span> this.backupImage.setIncrTimeRanges(incrTimestampMap);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span> public Map<TableName, HashMap<String, Long>> getIncrTimestampMap() {<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return backupImage.getIncrTimeRanges();<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> * Get the image list of this backup for restore in time order.<a name="line.521"></a>
-<span class="sourceLineNo">522</span> * @param reverse If true, then output in reverse order, otherwise in time order from old to new<a name="line.522"></a>
-<span class="sourceLineNo">523</span> * @return the backup image list for restore in time order<a name="line.523"></a>
-<span class="sourceLineNo">524</span> */<a name="line.524"></a>
-<span class="sourceLineNo">525</span> public ArrayList<BackupImage> getRestoreDependentList(boolean reverse) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span> TreeMap<Long, BackupImage> restoreImages = new TreeMap<>();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> restoreImages.put(backupImage.startTs, backupImage);<a name="line.527"></a>
-<span class="sourceLineNo">528</span> for (BackupImage image : backupImage.getAncestors()) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span> restoreImages.put(Long.valueOf(image.startTs), image);<a name="line.529"></a>
-<span class="sourceLineNo">530</span> }<a name="line.530"></a>
-<span class="sourceLineNo">531</span> return new ArrayList<>(reverse ? (restoreImages.descendingMap().values())<a name="line.531"></a>
-<span class="sourceLineNo">532</span> : (restoreImages.values()));<a name="line.532"></a>
-<span class="sourceLineNo">533</span> }<a name="line.533"></a>
-<span class="sourceLineNo">534</span><a name="line.534"></a>
-<span class="sourceLineNo">535</span> /**<a name="line.535"></a>
-<span class="sourceLineNo">536</span> * Get the dependent image list for a specific table of this backup in time order from old to new<a name="line.536"></a>
-<span class="sourceLineNo">537</span> * if want to restore to this backup image level.<a name="line.537"></a>
-<span class="sourceLineNo">538</span> * @param table table<a name="line.538"></a>
-<span class="sourceLineNo">539</span> * @return the backup image list for a table in time order<a name="line.539"></a>
-<span class="sourceLineNo">540</span> */<a name="line.540"></a>
-<span class="sourceLineNo">541</span> public ArrayList<BackupImage> getDependentListByTable(TableName table) {<a name="line.541"></a>
-<span class="sourceLineNo">542</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.542"></a>
-<span class="sourceLineNo">543</span> ArrayList<BackupImage> imageList = getRestoreDependentList(true);<a name="line.543"></a>
-<span class="sourceLineNo">544</span> for (BackupImage image : imageList) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span> if (image.hasTable(table)) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span> tableImageList.add(image);<a name="line.546"></a>
-<span class="sourceLineNo">547</span> if (image.getType() == BackupType.FULL) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span> break;<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> Collections.reverse(tableImageList);<a name="line.552"></a>
-<span class="sourceLineNo">553</span> return tableImageList;<a name="line.553"></a>
-<span class="sourceLineNo">554</span> }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span> /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span> * Get the full dependent image list in the whole dependency scope for a specific table of this<a name="line.557"></a>
-<span class="sourceLineNo">558</span> * backup in time order from old to new.<a name="line.558"></a>
-<span class="sourceLineNo">559</span> * @param table table<a name="line.559"></a>
-<span class="sourceLineNo">560</span> * @return the full backup image list for a table in time order in the whole scope of the<a name="line.560"></a>
-<span class="sourceLineNo">561</span> * dependency of this image<a name="line.561"></a>
-<span class="sourceLineNo">562</span> */<a name="line.562"></a>
-<span class="sourceLineNo">563</span> public ArrayList<BackupImage> getAllDependentListByTable(TableName table) {<a name="line.563"></a>
-<span class="sourceLineNo">564</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.564"></a>
-<span class="sourceLineNo">565</span> ArrayList<BackupImage> imageList = getRestoreDependentList(false);<a name="line.565"></a>
-<span class="sourceLineNo">566</span> for (BackupImage image : imageList) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span> if (image.hasTable(table)) {<a name="line.567"></a>
-<span class="sourceLineNo">568</span> tableImageList.add(image);<a name="line.568"></a>
-<span class="sourceLineNo">569</span> }<a name="line.569"></a>
-<span class="sourceLineNo">570</span> }<a name="line.570"></a>
-<span class="sourceLineNo">571</span> return tableImageList;<a name="line.571"></a>
-<span class="sourceLineNo">572</span> }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span> /**<a name="line.574"></a>
-<span class="sourceLineNo">575</span> * Check whether backup image1 could cover backup image2 or not.<a name="line.575"></a>
-<span class="sourceLineNo">576</span> * @param image1 backup image 1<a name="line.576"></a>
-<span class="sourceLineNo">577</span> * @param image2 backup image 2<a name="line.577"></a>
-<span class="sourceLineNo">578</span> * @return true if image1 can cover image2, otherwise false<a name="line.578"></a>
-<span class="sourceLineNo">579</span> */<a name="line.579"></a>
-<span class="sourceLineNo">580</span> public static boolean canCoverImage(BackupImage image1, BackupImage image2) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span> // image1 can cover image2 only when the following conditions are satisfied:<a name="line.581"></a>
-<span class="sourceLineNo">582</span> // - image1 must not be an incremental image;<a name="line.582"></a>
-<span class="sourceLineNo">583</span> // - image1 must be taken after image2 has been taken;<a name="line.583"></a>
-<span class="sourceLineNo">584</span> // - table set of image1 must cover the table set of image2.<a name="line.584"></a>
-<span class="sourceLineNo">585</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span> return false;<a name="line.586"></a>
-<span class="sourceLineNo">587</span> }<a name="line.587"></a>
-<span class="sourceLineNo">588</span> if (image1.getStartTs() < image2.getStartTs()) {<a name="line.588"></a>
+<span class="sourceLineNo">492</span> LOG.info("Manifest file stored to " + manifestFilePath);<a name="line.492"></a>
+<span class="sourceLineNo">493</span> }<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span> /**<a name="line.495"></a>
+<span class="sourceLineNo">496</span> * Get this backup image.<a name="line.496"></a>
+<span class="sourceLineNo">497</span> * @return the backup image.<a name="line.497"></a>
+<span class="sourceLineNo">498</span> */<a name="line.498"></a>
+<span class="sourceLineNo">499</span> public BackupImage getBackupImage() {<a name="line.499"></a>
+<span class="sourceLineNo">500</span> return backupImage;<a name="line.500"></a>
+<span class="sourceLineNo">501</span> }<a name="line.501"></a>
+<span class="sourceLineNo">502</span><a name="line.502"></a>
+<span class="sourceLineNo">503</span> /**<a name="line.503"></a>
+<span class="sourceLineNo">504</span> * Add dependent backup image for this backup.<a name="line.504"></a>
+<span class="sourceLineNo">505</span> * @param image The direct dependent backup image<a name="line.505"></a>
+<span class="sourceLineNo">506</span> */<a name="line.506"></a>
+<span class="sourceLineNo">507</span> public void addDependentImage(BackupImage image) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span> this.backupImage.addAncestor(image);<a name="line.508"></a>
+<span class="sourceLineNo">509</span> }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span> /**<a name="line.511"></a>
+<span class="sourceLineNo">512</span> * Set the incremental timestamp map directly.<a name="line.512"></a>
+<span class="sourceLineNo">513</span> * @param incrTimestampMap timestamp map<a name="line.513"></a>
+<span class="sourceLineNo">514</span> */<a name="line.514"></a>
+<span class="sourceLineNo">515</span> public void setIncrTimestampMap(HashMap<TableName, HashMap<String, Long>> incrTimestampMap) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> this.backupImage.setIncrTimeRanges(incrTimestampMap);<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> public Map<TableName, HashMap<String, Long>> getIncrTimestampMap() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span> return backupImage.getIncrTimeRanges();<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> * Get the image list of this backup for restore in time order.<a name="line.524"></a>
+<span class="sourceLineNo">525</span> * @param reverse If true, then output in reverse order, otherwise in time order from old to new<a name="line.525"></a>
+<span class="sourceLineNo">526</span> * @return the backup image list for restore in time order<a name="line.526"></a>
+<span class="sourceLineNo">527</span> */<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public ArrayList<BackupImage> getRestoreDependentList(boolean reverse) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> TreeMap<Long, BackupImage> restoreImages = new TreeMap<>();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> restoreImages.put(backupImage.startTs, backupImage);<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (BackupImage image : backupImage.getAncestors()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> restoreImages.put(Long.valueOf(image.startTs), image);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> }<a name="line.533"></a>
+<span class="sourceLineNo">534</span> return new ArrayList<>(reverse ? (restoreImages.descendingMap().values())<a name="line.534"></a>
+<span class="sourceLineNo">535</span> : (restoreImages.values()));<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> /**<a name="line.538"></a>
+<span class="sourceLineNo">539</span> * Get the dependent image list for a specific table of this backup in time order from old to new<a name="line.539"></a>
+<span class="sourceLineNo">540</span> * if want to restore to this backup image level.<a name="line.540"></a>
+<span class="sourceLineNo">541</span> * @param table table<a name="line.541"></a>
+<span class="sourceLineNo">542</span> * @return the backup image list for a table in time order<a name="line.542"></a>
+<span class="sourceLineNo">543</span> */<a name="line.543"></a>
+<span class="sourceLineNo">544</span> public ArrayList<BackupImage> getDependentListByTable(TableName table) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.545"></a>
+<span class="sourceLineNo">546</span> ArrayList<BackupImage> imageList = getRestoreDependentList(true);<a name="line.546"></a>
+<span class="sourceLineNo">547</span> for (BackupImage image : imageList) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> if (image.hasTable(table)) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span> tableImageList.add(image);<a name="line.549"></a>
+<span class="sourceLineNo">550</span> if (image.getType() == BackupType.FULL) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span> break;<a name="line.551"></a>
+<span class="sourceLineNo">552</span> }<a name="line.552"></a>
+<span class="sourceLineNo">553</span> }<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
+<span class="sourceLineNo">555</span> Collections.reverse(tableImageList);<a name="line.555"></a>
+<span class="sourceLineNo">556</span> return tableImageList;<a name="line.556"></a>
+<span class="sourceLineNo">557</span> }<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> /**<a name="line.559"></a>
+<span class="sourceLineNo">560</span> * Get the full dependent image list in the whole dependency scope for a specific table of this<a name="line.560"></a>
+<span class="sourceLineNo">561</span> * backup in time order from old to new.<a name="line.561"></a>
+<span class="sourceLineNo">562</span> * @param table table<a name="line.562"></a>
+<span class="sourceLineNo">563</span> * @return the full backup image list for a table in time order in the whole scope of the<a name="line.563"></a>
+<span class="sourceLineNo">564</span> * dependency of this image<a name="line.564"></a>
+<span class="sourceLineNo">565</span> */<a name="line.565"></a>
+<span class="sourceLineNo">566</span> public ArrayList<BackupImage> getAllDependentListByTable(TableName table) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.567"></a>
+<span class="sourceLineNo">568</span> ArrayList<BackupImage> imageList = getRestoreDependentList(false);<a name="line.568"></a>
+<span class="sourceLineNo">569</span> for (BackupImage image : imageList) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span> if (image.hasTable(table)) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span> tableImageList.add(image);<a name="line.571"></a>
+<span class="sourceLineNo">572</span> }<a name="line.572"></a>
+<span class="sourceLineNo">573</span> }<a name="line.573"></a>
+<span class="sourceLineNo">574</span> return tableImageList;<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> * Check whether backup image1 could cover backup image2 or not.<a name="line.578"></a>
+<span class="sourceLineNo">579</span> * @param image1 backup image 1<a name="line.579"></a>
+<span class="sourceLineNo">580</span> * @param image2 backup image 2<a name="line.580"></a>
+<span class="sourceLineNo">581</span> * @return true if image1 can cover image2, otherwise false<a name="line.581"></a>
+<span class="sourceLineNo">582</span> */<a name="line.582"></a>
+<span class="sourceLineNo">583</span> public static boolean canCoverImage(BackupImage image1, BackupImage image2) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span> // image1 can cover image2 only when the following conditions are satisfied:<a name="line.584"></a>
+<span class="sourceLineNo">585</span> // - image1 must not be an incremental image;<a name="line.585"></a>
+<span class="sourceLineNo">586</span> // - image1 must be taken after image2 has been taken;<a name="line.586"></a>
+<span class="sourceLineNo">587</span> // - table set of image1 must cover the table set of image2.<a name="line.587"></a>
+<span class="sourceLineNo">588</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.588"></a>
<span class="sourceLineNo">589</span> return false;<a name="line.589"></a>
<span class="sourceLineNo">590</span> }<a name="line.590"></a>
-<span class="sourceLineNo">591</span> List<TableName> image1TableList = image1.getTableNames();<a name="line.591"></a>
-<span class="sourceLineNo">592</span> List<TableName> image2TableList = image2.getTableNames();<a name="line.592"></a>
-<span class="sourceLineNo">593</span> boolean found;<a name="line.593"></a>
-<span class="sourceLineNo">594</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.594"></a>
-<span class="sourceLineNo">595</span> found = false;<a name="line.595"></a>
-<span class="sourceLineNo">596</span> for (int j = 0; j < image1TableList.size(); j++) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span> if (image2TableList.get(i).equals(image1TableList.get(j))) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span> found = true;<a name="line.598"></a>
-<span class="sourceLineNo">599</span> break;<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> if (!found) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span> return false;<a name="line.603"></a>
+<span class="sourceLineNo">591</span> if (image1.getStartTs() < image2.getStartTs()) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span> return false;<a name="line.592"></a>
+<span class="sourceLineNo">593</span> }<a name="line.593"></a>
+<span class="sourceLineNo">594</span> List<TableName> image1TableList = image1.getTableNames();<a name="line.594"></a>
+<span class="sourceLineNo">595</span> List<TableName> image2TableList = image2.getTableNames();<a name="line.595"></a>
+<span class="sourceLineNo">596</span> boolean found;<a name="line.596"></a>
+<span class="sourceLineNo">597</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span> found = false;<a name="line.598"></a>
+<span class="sourceLineNo">599</span> for (int j = 0; j < image1TableList.size(); j++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span> if (image2TableList.get(i).equals(image1TableList.get(j))) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span> found = true;<a name="line.601"></a>
+<span class="sourceLineNo">602</span> break;<a name="line.602"></a>
+<span class="sourceLineNo">603</span> }<a name="line.603"></a>
<span class="sourceLineNo">604</span> }<a name="line.604"></a>
-<span class="sourceLineNo">605</span> }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span> LOG.debug("Backup image " + image1.getBackupId() + " can cover " + image2.getBackupId());<a name="line.607"></a>
-<span class="sourceLineNo">608</span> return true;<a name="line.608"></a>
-<span class="sourceLineNo">609</span> }<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span> /**<a name="line.611"></a>
-<span class="sourceLineNo">612</span> * Check whether backup image set could cover a backup image or not.<a name="line.612"></a>
-<span class="sourceLineNo">613</span> * @param fullImages The backup image set<a name="line.613"></a>
-<span class="sourceLineNo">614</span> * @param image The target backup image<a name="line.614"></a>
-<span class="sourceLineNo">615</span> * @return true if fullImages can cover image, otherwise false<a name="line.615"></a>
-<span class="sourceLineNo">616</span> */<a name="line.616"></a>
-<span class="sourceLineNo">617</span> public static boolean canCoverImage(ArrayList<BackupImage> fullImages, BackupImage image) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span> // fullImages can cover image only when the following conditions are satisfied:<a name="line.618"></a>
-<span class="sourceLineNo">619</span> // - each image of fullImages must not be an incremental image;<a name="line.619"></a>
-<span class="sourceLineNo">620</span> // - each image of fullImages must be taken after image has been taken;<a name="line.620"></a>
-<span class="sourceLineNo">621</span> // - sum table set of fullImages must cover the table set of image.<a name="line.621"></a>
-<span class="sourceLineNo">622</span> for (BackupImage image1 : fullImages) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.623"></a>
-<span class="sourceLineNo">624</span> return false;<a name="line.624"></a>
-<span class="sourceLineNo">625</span> }<a name="line.625"></a>
-<span class="sourceLineNo">626</span> if (image1.getStartTs() < image.getStartTs()) {<a name="line.626"></a>
+<span class="sourceLineNo">605</span> if (!found) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span> return false;<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> LOG.debug("Backup image " + image1.getBackupId() + " can cover " + image2.getBackupId());<a name="line.610"></a>
+<span class="sourceLineNo">611</span> return true;<a name="line.611"></a>
+<span class="sourceLineNo">612</span> }<a name="line.612"></a>
+<span class="sourceLineNo">613</span><a name="line.613"></a>
+<span class="sourceLineNo">614</span> /**<a name="line.614"></a>
+<span class="sourceLineNo">615</span> * Check whether backup image set could cover a backup image or not.<a name="line.615"></a>
+<span class="sourceLineNo">616</span> * @param fullImages The backup image set<a name="line.616"></a>
+<span class="sourceLineNo">617</span> * @param image The target backup image<a name="line.617"></a>
+<span class="sourceLineNo">618</span> * @return true if fullImages can cover image, otherwise false<a name="line.618"></a>
+<span class="sourceLineNo">619</span> */<a name="line.619"></a>
+<span class="sourceLineNo">620</span> public static boolean canCoverImage(ArrayList<BackupImage> fullImages, BackupImage image) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span> // fullImages can cover image only when the following conditions are satisfied:<a name="line.621"></a>
+<span class="sourceLineNo">622</span> // - each image of fullImages must not be an incremental image;<a name="line.622"></a>
+<span class="sourceLineNo">623</span> // - each image of fullImages must be taken after image has been taken;<a name="line.623"></a>
+<span class="sourceLineNo">624</span> // - sum table set of fullImages must cover the table set of image.<a name="line.624"></a>
+<span class="sourceLineNo">625</span> for (BackupImage image1 : fullImages) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.626"></a>
<span class="sourceLineNo">627</span> return false;<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> ArrayList<String> image1TableList = new ArrayList<>();<a name="line.631"></a>
-<span class="sourceLineNo">632</span> for (BackupImage image1 : fullImages) {<a name="line.632"></a>
-<span class="sourceLineNo">633</span> List<TableName> tableList = image1.getTableNames();<a name="line.633"></a>
-<span class="sourceLineNo">634</span> for (TableName table : tableList) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span> image1TableList.add(table.getNameAsString());<a name="line.635"></a>
-<span class="sourceLineNo">636</span> }<a name="line.636"></a>
-<span class="sourceLineNo">637</span> }<a name="line.637"></a>
-<span class="sourceLineNo">638</span> ArrayList<String> image2TableList = new ArrayList<>();<a name="line.638"></a>
-<span class="sourceLineNo">639</span> List<TableName> tableList = image.getTableNames();<a name="line.639"></a>
-<span class="sourceLineNo">640</span> for (TableName table : tableList) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span> image2TableList.add(table.getNameAsString());<a name="line.641"></a>
-<span class="sourceLineNo">642</span> }<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.644"></a>
-<span class="sourceLineNo">645</span> if (image1TableList.contains(image2TableList.get(i)) == false) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span> return false;<a name="line.646"></a>
-<span class="sourceLineNo">647</span> }<a name="line.647"></a>
-<span class="sourceLineNo">648</span> }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span> LOG.debug("Full image set can cover image " + image.getBackupId());<a name="line.650"></a>
-<span class="sourceLineNo">651</span> return true;<a name="line.651"></a>
-<span class="sourceLineNo">652</span> }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span> public BackupInfo toBackupInfo() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span> BackupInfo info = new BackupInfo();<a name="line.655"></a>
-<span class="sourceLineNo">656</span> info.setType(backupImage.getType());<a name="line.656"></a>
-<span class="sourceLineNo">657</span> List<TableName> list = backupImage.getTableNames();<a name="line.657"></a>
-<span class="sourceLineNo">658</span> TableName[] tables = new TableName[list.size()];<a name="line.658"></a>
-<span class="sourceLineNo">659</span> info.addTables(list.toArray(tables));<a name="line.659"></a>
-<span class="sourceLineNo">660</span> info.setBackupId(backupImage.getBackupId());<a name="line.660"></a>
-<span class="sourceLineNo">661</span> info.setStartTs(backupImage.getStartTs());<a name="line.661"></a>
-<span class="sourceLineNo">662</span> info.setBackupRootDir(backupImage.getRootDir());<a name="line.662"></a>
-<span class="sourceLineNo">663</span> if (backupImage.getType() == BackupType.INCREMENTAL) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span> info.setHLogTargetDir(BackupUtils.getLogBackupDir(backupImage.getRootDir(),<a name="line.664"></a>
-<span class="sourceLineNo">665</span> backupImage.getBackupId()));<a name="line.665"></a>
-<span class="sourceLineNo">666</span> }<a name="line.666"></a>
-<span class="sourceLineNo">667</span> return info;<a name="line.667"></a>
-<span class="sourceLineNo">668</span> }<a name="line.668"></a>
-<span class="sourceLineNo">669</span>}<a name="line.669"></a>
+<span class="sourceLineNo">629</span> if (image1.getStartTs() < image.getStartTs()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span> return false;<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> ArrayList<String> image1TableList = new ArrayList<>();<a name="line.634"></a>
+<span class="sourceLineNo">635</span> for (BackupImage image1 : fullImages) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span> List<TableName> tableList = image1.getTableNames();<a name="line.636"></a>
+<span class="sourceLineNo">637</span> for (TableName table : tableList) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span> image1TableList.add(table.getNameAsString());<a name="line.638"></a>
+<span class="sourceLineNo">639</span> }<a name="line.639"></a>
+<span class="sourceLineNo">640</span> }<a name="line.640"></a>
+<span class="sourceLineNo">641</span> ArrayList<String> image2TableList = new ArrayList<>();<a name="line.641"></a>
+<span class="sourceLineNo">642</span> List<TableName> tableList = image.getTableNames();<a name="line.642"></a>
+<span class="sourceLineNo">643</span> for (TableName table : tableList) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span> image2TableList.add(table.getNameAsString());<a name="line.644"></a>
+<span class="sourceLineNo">645</span> }<a name="line.645"></a>
+<span class="sourceLineNo">646</span><a name="line.646"></a>
+<span class="sourceLineNo">647</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span> if (image1TableList.contains(image2TableList.get(i)) == false) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span> return false;<a name="line.649"></a>
+<span class="sourceLineNo">650</span> }<a name="line.650"></a>
+<span class="sourceLineNo">651</span> }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span> LOG.debug("Full image set can cover image " + image.getBackupId());<a name="line.653"></a>
+<span class="sourceLineNo">654</span> return true;<a name="line.654"></a>
+<span class="sourceLineNo">655</span> }<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span> public BackupInfo toBackupInfo() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span> BackupInfo info = new BackupInfo();<a name="line.658"></a>
+<span class="sourceLineNo">659</span> info.setType(backupImage.getType());<a name="line.659"></a>
+<span class="sourceLineNo">660</span> List<TableName> list = backupImage.getTableNames();<a name="line.660"></a>
+<span class="sourceLineNo">661</span> TableName[] tables = new TableName[list.size()];<a name="line.661"></a>
+<span class="sourceLineNo">662</span> info.addTables(list.toArray(tables));<a name="line.662"></a>
+<span class="sourceLineNo">663</span> info.setBackupId(backupImage.getBackupId());<a name="line.663"></a>
+<span class="sourceLineNo">664</span> info.setStartTs(backupImage.getStartTs());<a name="line.664"></a>
+<span class="sourceLineNo">665</span> info.setBackupRootDir(backupImage.getRootDir());<a name="line.665"></a>
+<span class="sourceLineNo">666</span> if (backupImage.getType() == BackupType.INCREMENTAL) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span> info.setHLogTargetDir(BackupUtils.getLogBackupDir(backupImage.getRootDir(),<a name="line.667"></a>
+<span class="sourceLineNo">668</span> backupImage.getBackupId()));<a name="line.668"></a>
+<span class="sourceLineNo">669</span> }<a name="line.669"></a>
+<span class="sourceLineNo">670</span> return info;<a name="line.670"></a>
+<span class="sourceLineNo">671</span> }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>}<a name="line.672"></a>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html
index ec2aa41..3d369e6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManifest.html
@@ -442,239 +442,242 @@
<span class="sourceLineNo">434</span> for (FileStatus subFile : subFiles) {<a name="line.434"></a>
<span class="sourceLineNo">435</span> if (subFile.getPath().getName().equals(MANIFEST_FILE_NAME)) {<a name="line.435"></a>
<span class="sourceLineNo">436</span> // load and set manifest field from file content<a name="line.436"></a>
-<span class="sourceLineNo">437</span> FSDataInputStream in = fs.open(subFile.getPath());<a name="line.437"></a>
-<span class="sourceLineNo">438</span> long len = subFile.getLen();<a name="line.438"></a>
-<span class="sourceLineNo">439</span> byte[] pbBytes = new byte[(int) len];<a name="line.439"></a>
-<span class="sourceLineNo">440</span> in.readFully(pbBytes);<a name="line.440"></a>
-<span class="sourceLineNo">441</span> BackupProtos.BackupImage proto = null;<a name="line.441"></a>
-<span class="sourceLineNo">442</span> try {<a name="line.442"></a>
-<span class="sourceLineNo">443</span> proto = BackupProtos.BackupImage.parseFrom(pbBytes);<a name="line.443"></a>
-<span class="sourceLineNo">444</span> } catch (Exception e) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span> throw new BackupException(e);<a name="line.445"></a>
-<span class="sourceLineNo">446</span> }<a name="line.446"></a>
-<span class="sourceLineNo">447</span> this.backupImage = BackupImage.fromProto(proto);<a name="line.447"></a>
-<span class="sourceLineNo">448</span> LOG.debug("Loaded manifest instance from manifest file: "<a name="line.448"></a>
-<span class="sourceLineNo">449</span> + BackupUtils.getPath(subFile.getPath()));<a name="line.449"></a>
-<span class="sourceLineNo">450</span> return;<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> String errorMsg = "No manifest file found in: " + backupPath.toString();<a name="line.453"></a>
-<span class="sourceLineNo">454</span> throw new IOException(errorMsg);<a name="line.454"></a>
-<span class="sourceLineNo">455</span> } catch (IOException e) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span> throw new BackupException(e.getMessage());<a name="line.456"></a>
-<span class="sourceLineNo">457</span> }<a name="line.457"></a>
-<span class="sourceLineNo">458</span> }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public BackupType getType() {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> return backupImage.getType();<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> * Get the table set of this image.<a name="line.465"></a>
-<span class="sourceLineNo">466</span> * @return The table set list<a name="line.466"></a>
-<span class="sourceLineNo">467</span> */<a name="line.467"></a>
-<span class="sourceLineNo">468</span> public List<TableName> getTableList() {<a name="line.468"></a>
-<span class="sourceLineNo">469</span> return backupImage.getTableNames();<a name="line.469"></a>
-<span class="sourceLineNo">470</span> }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span> /**<a name="line.472"></a>
-<span class="sourceLineNo">473</span> * TODO: fix it. Persist the manifest file.<a name="line.473"></a>
-<span class="sourceLineNo">474</span> * @throws IOException IOException when storing the manifest file.<a name="line.474"></a>
-<span class="sourceLineNo">475</span> */<a name="line.475"></a>
-<span class="sourceLineNo">476</span> public void store(Configuration conf) throws BackupException {<a name="line.476"></a>
-<span class="sourceLineNo">477</span> byte[] data = backupImage.toProto().toByteArray();<a name="line.477"></a>
-<span class="sourceLineNo">478</span> // write the file, overwrite if already exist<a name="line.478"></a>
-<span class="sourceLineNo">479</span> Path manifestFilePath =<a name="line.479"></a>
-<span class="sourceLineNo">480</span> new Path(HBackupFileSystem.getBackupPath(backupImage.getRootDir(),<a name="line.480"></a>
-<span class="sourceLineNo">481</span> backupImage.getBackupId()), MANIFEST_FILE_NAME);<a name="line.481"></a>
-<span class="sourceLineNo">482</span> try (FSDataOutputStream out =<a name="line.482"></a>
-<span class="sourceLineNo">483</span> manifestFilePath.getFileSystem(conf).create(manifestFilePath, true)) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span> out.write(data);<a name="line.484"></a>
-<span class="sourceLineNo">485</span> } catch (IOException e) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span> throw new BackupException(e.getMessage());<a name="line.486"></a>
-<span class="sourceLineNo">487</span> }<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span> LOG.info("Manifest file stored to " + manifestFilePath);<a name="line.489"></a>
-<span class="sourceLineNo">490</span> }<a name="line.490"></a>
+<span class="sourceLineNo">437</span> long len = subFile.getLen();<a name="line.437"></a>
+<span class="sourceLineNo">438</span> byte[] pbBytes = new byte[(int) len];<a name="line.438"></a>
+<span class="sourceLineNo">439</span> try (FSDataInputStream in = fs.open(subFile.getPath())) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span> in.readFully(pbBytes);<a name="line.440"></a>
+<span class="sourceLineNo">441</span> } catch (IOException e) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> throw new BackupException(e.getMessage());<a name="line.442"></a>
+<span class="sourceLineNo">443</span> }<a name="line.443"></a>
+<span class="sourceLineNo">444</span> BackupProtos.BackupImage proto = null;<a name="line.444"></a>
+<span class="sourceLineNo">445</span> try {<a name="line.445"></a>
+<span class="sourceLineNo">446</span> proto = BackupProtos.BackupImage.parseFrom(pbBytes);<a name="line.446"></a>
+<span class="sourceLineNo">447</span> } catch (Exception e) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span> throw new BackupException(e);<a name="line.448"></a>
+<span class="sourceLineNo">449</span> }<a name="line.449"></a>
+<span class="sourceLineNo">450</span> this.backupImage = BackupImage.fromProto(proto);<a name="line.450"></a>
+<span class="sourceLineNo">451</span> LOG.debug("Loaded manifest instance from manifest file: "<a name="line.451"></a>
+<span class="sourceLineNo">452</span> + BackupUtils.getPath(subFile.getPath()));<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return;<a name="line.453"></a>
+<span class="sourceLineNo">454</span> }<a name="line.454"></a>
+<span class="sourceLineNo">455</span> }<a name="line.455"></a>
+<span class="sourceLineNo">456</span> String errorMsg = "No manifest file found in: " + backupPath.toString();<a name="line.456"></a>
+<span class="sourceLineNo">457</span> throw new IOException(errorMsg);<a name="line.457"></a>
+<span class="sourceLineNo">458</span> } catch (IOException e) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span> throw new BackupException(e.getMessage());<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> public BackupType getType() {<a name="line.463"></a>
+<span class="sourceLineNo">464</span> return backupImage.getType();<a name="line.464"></a>
+<span class="sourceLineNo">465</span> }<a name="line.465"></a>
+<span class="sourceLineNo">466</span><a name="line.466"></a>
+<span class="sourceLineNo">467</span> /**<a name="line.467"></a>
+<span class="sourceLineNo">468</span> * Get the table set of this image.<a name="line.468"></a>
+<span class="sourceLineNo">469</span> * @return The table set list<a name="line.469"></a>
+<span class="sourceLineNo">470</span> */<a name="line.470"></a>
+<span class="sourceLineNo">471</span> public List<TableName> getTableList() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span> return backupImage.getTableNames();<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> * TODO: fix it. Persist the manifest file.<a name="line.476"></a>
+<span class="sourceLineNo">477</span> * @throws IOException IOException when storing the manifest file.<a name="line.477"></a>
+<span class="sourceLineNo">478</span> */<a name="line.478"></a>
+<span class="sourceLineNo">479</span> public void store(Configuration conf) throws BackupException {<a name="line.479"></a>
+<span class="sourceLineNo">480</span> byte[] data = backupImage.toProto().toByteArray();<a name="line.480"></a>
+<span class="sourceLineNo">481</span> // write the file, overwrite if already exist<a name="line.481"></a>
+<span class="sourceLineNo">482</span> Path manifestFilePath =<a name="line.482"></a>
+<span class="sourceLineNo">483</span> new Path(HBackupFileSystem.getBackupPath(backupImage.getRootDir(),<a name="line.483"></a>
+<span class="sourceLineNo">484</span> backupImage.getBackupId()), MANIFEST_FILE_NAME);<a name="line.484"></a>
+<span class="sourceLineNo">485</span> try (FSDataOutputStream out =<a name="line.485"></a>
+<span class="sourceLineNo">486</span> manifestFilePath.getFileSystem(conf).create(manifestFilePath, true)) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span> out.write(data);<a name="line.487"></a>
+<span class="sourceLineNo">488</span> } catch (IOException e) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> throw new BackupException(e.getMessage());<a name="line.489"></a>
+<span class="sourceLineNo">490</span> }<a name="line.490"></a>
<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span> /**<a name="line.492"></a>
-<span class="sourceLineNo">493</span> * Get this backup image.<a name="line.493"></a>
-<span class="sourceLineNo">494</span> * @return the backup image.<a name="line.494"></a>
-<span class="sourceLineNo">495</span> */<a name="line.495"></a>
-<span class="sourceLineNo">496</span> public BackupImage getBackupImage() {<a name="line.496"></a>
-<span class="sourceLineNo">497</span> return backupImage;<a name="line.497"></a>
-<span class="sourceLineNo">498</span> }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> /**<a name="line.500"></a>
-<span class="sourceLineNo">501</span> * Add dependent backup image for this backup.<a name="line.501"></a>
-<span class="sourceLineNo">502</span> * @param image The direct dependent backup image<a name="line.502"></a>
-<span class="sourceLineNo">503</span> */<a name="line.503"></a>
-<span class="sourceLineNo">504</span> public void addDependentImage(BackupImage image) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span> this.backupImage.addAncestor(image);<a name="line.505"></a>
-<span class="sourceLineNo">506</span> }<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span> /**<a name="line.508"></a>
-<span class="sourceLineNo">509</span> * Set the incremental timestamp map directly.<a name="line.509"></a>
-<span class="sourceLineNo">510</span> * @param incrTimestampMap timestamp map<a name="line.510"></a>
-<span class="sourceLineNo">511</span> */<a name="line.511"></a>
-<span class="sourceLineNo">512</span> public void setIncrTimestampMap(HashMap<TableName, HashMap<String, Long>> incrTimestampMap) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span> this.backupImage.setIncrTimeRanges(incrTimestampMap);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span> public Map<TableName, HashMap<String, Long>> getIncrTimestampMap() {<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return backupImage.getIncrTimeRanges();<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> * Get the image list of this backup for restore in time order.<a name="line.521"></a>
-<span class="sourceLineNo">522</span> * @param reverse If true, then output in reverse order, otherwise in time order from old to new<a name="line.522"></a>
-<span class="sourceLineNo">523</span> * @return the backup image list for restore in time order<a name="line.523"></a>
-<span class="sourceLineNo">524</span> */<a name="line.524"></a>
-<span class="sourceLineNo">525</span> public ArrayList<BackupImage> getRestoreDependentList(boolean reverse) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span> TreeMap<Long, BackupImage> restoreImages = new TreeMap<>();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> restoreImages.put(backupImage.startTs, backupImage);<a name="line.527"></a>
-<span class="sourceLineNo">528</span> for (BackupImage image : backupImage.getAncestors()) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span> restoreImages.put(Long.valueOf(image.startTs), image);<a name="line.529"></a>
-<span class="sourceLineNo">530</span> }<a name="line.530"></a>
-<span class="sourceLineNo">531</span> return new ArrayList<>(reverse ? (restoreImages.descendingMap().values())<a name="line.531"></a>
-<span class="sourceLineNo">532</span> : (restoreImages.values()));<a name="line.532"></a>
-<span class="sourceLineNo">533</span> }<a name="line.533"></a>
-<span class="sourceLineNo">534</span><a name="line.534"></a>
-<span class="sourceLineNo">535</span> /**<a name="line.535"></a>
-<span class="sourceLineNo">536</span> * Get the dependent image list for a specific table of this backup in time order from old to new<a name="line.536"></a>
-<span class="sourceLineNo">537</span> * if want to restore to this backup image level.<a name="line.537"></a>
-<span class="sourceLineNo">538</span> * @param table table<a name="line.538"></a>
-<span class="sourceLineNo">539</span> * @return the backup image list for a table in time order<a name="line.539"></a>
-<span class="sourceLineNo">540</span> */<a name="line.540"></a>
-<span class="sourceLineNo">541</span> public ArrayList<BackupImage> getDependentListByTable(TableName table) {<a name="line.541"></a>
-<span class="sourceLineNo">542</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.542"></a>
-<span class="sourceLineNo">543</span> ArrayList<BackupImage> imageList = getRestoreDependentList(true);<a name="line.543"></a>
-<span class="sourceLineNo">544</span> for (BackupImage image : imageList) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span> if (image.hasTable(table)) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span> tableImageList.add(image);<a name="line.546"></a>
-<span class="sourceLineNo">547</span> if (image.getType() == BackupType.FULL) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span> break;<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> Collections.reverse(tableImageList);<a name="line.552"></a>
-<span class="sourceLineNo">553</span> return tableImageList;<a name="line.553"></a>
-<span class="sourceLineNo">554</span> }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span> /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span> * Get the full dependent image list in the whole dependency scope for a specific table of this<a name="line.557"></a>
-<span class="sourceLineNo">558</span> * backup in time order from old to new.<a name="line.558"></a>
-<span class="sourceLineNo">559</span> * @param table table<a name="line.559"></a>
-<span class="sourceLineNo">560</span> * @return the full backup image list for a table in time order in the whole scope of the<a name="line.560"></a>
-<span class="sourceLineNo">561</span> * dependency of this image<a name="line.561"></a>
-<span class="sourceLineNo">562</span> */<a name="line.562"></a>
-<span class="sourceLineNo">563</span> public ArrayList<BackupImage> getAllDependentListByTable(TableName table) {<a name="line.563"></a>
-<span class="sourceLineNo">564</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.564"></a>
-<span class="sourceLineNo">565</span> ArrayList<BackupImage> imageList = getRestoreDependentList(false);<a name="line.565"></a>
-<span class="sourceLineNo">566</span> for (BackupImage image : imageList) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span> if (image.hasTable(table)) {<a name="line.567"></a>
-<span class="sourceLineNo">568</span> tableImageList.add(image);<a name="line.568"></a>
-<span class="sourceLineNo">569</span> }<a name="line.569"></a>
-<span class="sourceLineNo">570</span> }<a name="line.570"></a>
-<span class="sourceLineNo">571</span> return tableImageList;<a name="line.571"></a>
-<span class="sourceLineNo">572</span> }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span> /**<a name="line.574"></a>
-<span class="sourceLineNo">575</span> * Check whether backup image1 could cover backup image2 or not.<a name="line.575"></a>
-<span class="sourceLineNo">576</span> * @param image1 backup image 1<a name="line.576"></a>
-<span class="sourceLineNo">577</span> * @param image2 backup image 2<a name="line.577"></a>
-<span class="sourceLineNo">578</span> * @return true if image1 can cover image2, otherwise false<a name="line.578"></a>
-<span class="sourceLineNo">579</span> */<a name="line.579"></a>
-<span class="sourceLineNo">580</span> public static boolean canCoverImage(BackupImage image1, BackupImage image2) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span> // image1 can cover image2 only when the following conditions are satisfied:<a name="line.581"></a>
-<span class="sourceLineNo">582</span> // - image1 must not be an incremental image;<a name="line.582"></a>
-<span class="sourceLineNo">583</span> // - image1 must be taken after image2 has been taken;<a name="line.583"></a>
-<span class="sourceLineNo">584</span> // - table set of image1 must cover the table set of image2.<a name="line.584"></a>
-<span class="sourceLineNo">585</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span> return false;<a name="line.586"></a>
-<span class="sourceLineNo">587</span> }<a name="line.587"></a>
-<span class="sourceLineNo">588</span> if (image1.getStartTs() < image2.getStartTs()) {<a name="line.588"></a>
+<span class="sourceLineNo">492</span> LOG.info("Manifest file stored to " + manifestFilePath);<a name="line.492"></a>
+<span class="sourceLineNo">493</span> }<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span> /**<a name="line.495"></a>
+<span class="sourceLineNo">496</span> * Get this backup image.<a name="line.496"></a>
+<span class="sourceLineNo">497</span> * @return the backup image.<a name="line.497"></a>
+<span class="sourceLineNo">498</span> */<a name="line.498"></a>
+<span class="sourceLineNo">499</span> public BackupImage getBackupImage() {<a name="line.499"></a>
+<span class="sourceLineNo">500</span> return backupImage;<a name="line.500"></a>
+<span class="sourceLineNo">501</span> }<a name="line.501"></a>
+<span class="sourceLineNo">502</span><a name="line.502"></a>
+<span class="sourceLineNo">503</span> /**<a name="line.503"></a>
+<span class="sourceLineNo">504</span> * Add dependent backup image for this backup.<a name="line.504"></a>
+<span class="sourceLineNo">505</span> * @param image The direct dependent backup image<a name="line.505"></a>
+<span class="sourceLineNo">506</span> */<a name="line.506"></a>
+<span class="sourceLineNo">507</span> public void addDependentImage(BackupImage image) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span> this.backupImage.addAncestor(image);<a name="line.508"></a>
+<span class="sourceLineNo">509</span> }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span> /**<a name="line.511"></a>
+<span class="sourceLineNo">512</span> * Set the incremental timestamp map directly.<a name="line.512"></a>
+<span class="sourceLineNo">513</span> * @param incrTimestampMap timestamp map<a name="line.513"></a>
+<span class="sourceLineNo">514</span> */<a name="line.514"></a>
+<span class="sourceLineNo">515</span> public void setIncrTimestampMap(HashMap<TableName, HashMap<String, Long>> incrTimestampMap) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> this.backupImage.setIncrTimeRanges(incrTimestampMap);<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> public Map<TableName, HashMap<String, Long>> getIncrTimestampMap() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span> return backupImage.getIncrTimeRanges();<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> * Get the image list of this backup for restore in time order.<a name="line.524"></a>
+<span class="sourceLineNo">525</span> * @param reverse If true, then output in reverse order, otherwise in time order from old to new<a name="line.525"></a>
+<span class="sourceLineNo">526</span> * @return the backup image list for restore in time order<a name="line.526"></a>
+<span class="sourceLineNo">527</span> */<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public ArrayList<BackupImage> getRestoreDependentList(boolean reverse) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> TreeMap<Long, BackupImage> restoreImages = new TreeMap<>();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> restoreImages.put(backupImage.startTs, backupImage);<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (BackupImage image : backupImage.getAncestors()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> restoreImages.put(Long.valueOf(image.startTs), image);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> }<a name="line.533"></a>
+<span class="sourceLineNo">534</span> return new ArrayList<>(reverse ? (restoreImages.descendingMap().values())<a name="line.534"></a>
+<span class="sourceLineNo">535</span> : (restoreImages.values()));<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> /**<a name="line.538"></a>
+<span class="sourceLineNo">539</span> * Get the dependent image list for a specific table of this backup in time order from old to new<a name="line.539"></a>
+<span class="sourceLineNo">540</span> * if want to restore to this backup image level.<a name="line.540"></a>
+<span class="sourceLineNo">541</span> * @param table table<a name="line.541"></a>
+<span class="sourceLineNo">542</span> * @return the backup image list for a table in time order<a name="line.542"></a>
+<span class="sourceLineNo">543</span> */<a name="line.543"></a>
+<span class="sourceLineNo">544</span> public ArrayList<BackupImage> getDependentListByTable(TableName table) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.545"></a>
+<span class="sourceLineNo">546</span> ArrayList<BackupImage> imageList = getRestoreDependentList(true);<a name="line.546"></a>
+<span class="sourceLineNo">547</span> for (BackupImage image : imageList) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> if (image.hasTable(table)) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span> tableImageList.add(image);<a name="line.549"></a>
+<span class="sourceLineNo">550</span> if (image.getType() == BackupType.FULL) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span> break;<a name="line.551"></a>
+<span class="sourceLineNo">552</span> }<a name="line.552"></a>
+<span class="sourceLineNo">553</span> }<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
+<span class="sourceLineNo">555</span> Collections.reverse(tableImageList);<a name="line.555"></a>
+<span class="sourceLineNo">556</span> return tableImageList;<a name="line.556"></a>
+<span class="sourceLineNo">557</span> }<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> /**<a name="line.559"></a>
+<span class="sourceLineNo">560</span> * Get the full dependent image list in the whole dependency scope for a specific table of this<a name="line.560"></a>
+<span class="sourceLineNo">561</span> * backup in time order from old to new.<a name="line.561"></a>
+<span class="sourceLineNo">562</span> * @param table table<a name="line.562"></a>
+<span class="sourceLineNo">563</span> * @return the full backup image list for a table in time order in the whole scope of the<a name="line.563"></a>
+<span class="sourceLineNo">564</span> * dependency of this image<a name="line.564"></a>
+<span class="sourceLineNo">565</span> */<a name="line.565"></a>
+<span class="sourceLineNo">566</span> public ArrayList<BackupImage> getAllDependentListByTable(TableName table) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span> ArrayList<BackupImage> tableImageList = new ArrayList<>();<a name="line.567"></a>
+<span class="sourceLineNo">568</span> ArrayList<BackupImage> imageList = getRestoreDependentList(false);<a name="line.568"></a>
+<span class="sourceLineNo">569</span> for (BackupImage image : imageList) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span> if (image.hasTable(table)) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span> tableImageList.add(image);<a name="line.571"></a>
+<span class="sourceLineNo">572</span> }<a name="line.572"></a>
+<span class="sourceLineNo">573</span> }<a name="line.573"></a>
+<span class="sourceLineNo">574</span> return tableImageList;<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> * Check whether backup image1 could cover backup image2 or not.<a name="line.578"></a>
+<span class="sourceLineNo">579</span> * @param image1 backup image 1<a name="line.579"></a>
+<span class="sourceLineNo">580</span> * @param image2 backup image 2<a name="line.580"></a>
+<span class="sourceLineNo">581</span> * @return true if image1 can cover image2, otherwise false<a name="line.581"></a>
+<span class="sourceLineNo">582</span> */<a name="line.582"></a>
+<span class="sourceLineNo">583</span> public static boolean canCoverImage(BackupImage image1, BackupImage image2) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span> // image1 can cover image2 only when the following conditions are satisfied:<a name="line.584"></a>
+<span class="sourceLineNo">585</span> // - image1 must not be an incremental image;<a name="line.585"></a>
+<span class="sourceLineNo">586</span> // - image1 must be taken after image2 has been taken;<a name="line.586"></a>
+<span class="sourceLineNo">587</span> // - table set of image1 must cover the table set of image2.<a name="line.587"></a>
+<span class="sourceLineNo">588</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.588"></a>
<span class="sourceLineNo">589</span> return false;<a name="line.589"></a>
<span class="sourceLineNo">590</span> }<a name="line.590"></a>
-<span class="sourceLineNo">591</span> List<TableName> image1TableList = image1.getTableNames();<a name="line.591"></a>
-<span class="sourceLineNo">592</span> List<TableName> image2TableList = image2.getTableNames();<a name="line.592"></a>
-<span class="sourceLineNo">593</span> boolean found;<a name="line.593"></a>
-<span class="sourceLineNo">594</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.594"></a>
-<span class="sourceLineNo">595</span> found = false;<a name="line.595"></a>
-<span class="sourceLineNo">596</span> for (int j = 0; j < image1TableList.size(); j++) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span> if (image2TableList.get(i).equals(image1TableList.get(j))) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span> found = true;<a name="line.598"></a>
-<span class="sourceLineNo">599</span> break;<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> if (!found) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span> return false;<a name="line.603"></a>
+<span class="sourceLineNo">591</span> if (image1.getStartTs() < image2.getStartTs()) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span> return false;<a name="line.592"></a>
+<span class="sourceLineNo">593</span> }<a name="line.593"></a>
+<span class="sourceLineNo">594</span> List<TableName> image1TableList = image1.getTableNames();<a name="line.594"></a>
+<span class="sourceLineNo">595</span> List<TableName> image2TableList = image2.getTableNames();<a name="line.595"></a>
+<span class="sourceLineNo">596</span> boolean found;<a name="line.596"></a>
+<span class="sourceLineNo">597</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span> found = false;<a name="line.598"></a>
+<span class="sourceLineNo">599</span> for (int j = 0; j < image1TableList.size(); j++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span> if (image2TableList.get(i).equals(image1TableList.get(j))) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span> found = true;<a name="line.601"></a>
+<span class="sourceLineNo">602</span> break;<a name="line.602"></a>
+<span class="sourceLineNo">603</span> }<a name="line.603"></a>
<span class="sourceLineNo">604</span> }<a name="line.604"></a>
-<span class="sourceLineNo">605</span> }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span> LOG.debug("Backup image " + image1.getBackupId() + " can cover " + image2.getBackupId());<a name="line.607"></a>
-<span class="sourceLineNo">608</span> return true;<a name="line.608"></a>
-<span class="sourceLineNo">609</span> }<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span> /**<a name="line.611"></a>
-<span class="sourceLineNo">612</span> * Check whether backup image set could cover a backup image or not.<a name="line.612"></a>
-<span class="sourceLineNo">613</span> * @param fullImages The backup image set<a name="line.613"></a>
-<span class="sourceLineNo">614</span> * @param image The target backup image<a name="line.614"></a>
-<span class="sourceLineNo">615</span> * @return true if fullImages can cover image, otherwise false<a name="line.615"></a>
-<span class="sourceLineNo">616</span> */<a name="line.616"></a>
-<span class="sourceLineNo">617</span> public static boolean canCoverImage(ArrayList<BackupImage> fullImages, BackupImage image) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span> // fullImages can cover image only when the following conditions are satisfied:<a name="line.618"></a>
-<span class="sourceLineNo">619</span> // - each image of fullImages must not be an incremental image;<a name="line.619"></a>
-<span class="sourceLineNo">620</span> // - each image of fullImages must be taken after image has been taken;<a name="line.620"></a>
-<span class="sourceLineNo">621</span> // - sum table set of fullImages must cover the table set of image.<a name="line.621"></a>
-<span class="sourceLineNo">622</span> for (BackupImage image1 : fullImages) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.623"></a>
-<span class="sourceLineNo">624</span> return false;<a name="line.624"></a>
-<span class="sourceLineNo">625</span> }<a name="line.625"></a>
-<span class="sourceLineNo">626</span> if (image1.getStartTs() < image.getStartTs()) {<a name="line.626"></a>
+<span class="sourceLineNo">605</span> if (!found) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span> return false;<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> LOG.debug("Backup image " + image1.getBackupId() + " can cover " + image2.getBackupId());<a name="line.610"></a>
+<span class="sourceLineNo">611</span> return true;<a name="line.611"></a>
+<span class="sourceLineNo">612</span> }<a name="line.612"></a>
+<span class="sourceLineNo">613</span><a name="line.613"></a>
+<span class="sourceLineNo">614</span> /**<a name="line.614"></a>
+<span class="sourceLineNo">615</span> * Check whether backup image set could cover a backup image or not.<a name="line.615"></a>
+<span class="sourceLineNo">616</span> * @param fullImages The backup image set<a name="line.616"></a>
+<span class="sourceLineNo">617</span> * @param image The target backup image<a name="line.617"></a>
+<span class="sourceLineNo">618</span> * @return true if fullImages can cover image, otherwise false<a name="line.618"></a>
+<span class="sourceLineNo">619</span> */<a name="line.619"></a>
+<span class="sourceLineNo">620</span> public static boolean canCoverImage(ArrayList<BackupImage> fullImages, BackupImage image) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span> // fullImages can cover image only when the following conditions are satisfied:<a name="line.621"></a>
+<span class="sourceLineNo">622</span> // - each image of fullImages must not be an incremental image;<a name="line.622"></a>
+<span class="sourceLineNo">623</span> // - each image of fullImages must be taken after image has been taken;<a name="line.623"></a>
+<span class="sourceLineNo">624</span> // - sum table set of fullImages must cover the table set of image.<a name="line.624"></a>
+<span class="sourceLineNo">625</span> for (BackupImage image1 : fullImages) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span> if (image1.getType() == BackupType.INCREMENTAL) {<a name="line.626"></a>
<span class="sourceLineNo">627</span> return false;<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> ArrayList<String> image1TableList = new ArrayList<>();<a name="line.631"></a>
-<span class="sourceLineNo">632</span> for (BackupImage image1 : fullImages) {<a name="line.632"></a>
-<span class="sourceLineNo">633</span> List<TableName> tableList = image1.getTableNames();<a name="line.633"></a>
-<span class="sourceLineNo">634</span> for (TableName table : tableList) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span> image1TableList.add(table.getNameAsString());<a name="line.635"></a>
-<span class="sourceLineNo">636</span> }<a name="line.636"></a>
-<span class="sourceLineNo">637</span> }<a name="line.637"></a>
-<span class="sourceLineNo">638</span> ArrayList<String> image2TableList = new ArrayList<>();<a name="line.638"></a>
-<span class="sourceLineNo">639</span> List<TableName> tableList = image.getTableNames();<a name="line.639"></a>
-<span class="sourceLineNo">640</span> for (TableName table : tableList) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span> image2TableList.add(table.getNameAsString());<a name="line.641"></a>
-<span class="sourceLineNo">642</span> }<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.644"></a>
-<span class="sourceLineNo">645</span> if (image1TableList.contains(image2TableList.get(i)) == false) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span> return false;<a name="line.646"></a>
-<span class="sourceLineNo">647</span> }<a name="line.647"></a>
-<span class="sourceLineNo">648</span> }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span> LOG.debug("Full image set can cover image " + image.getBackupId());<a name="line.650"></a>
-<span class="sourceLineNo">651</span> return true;<a name="line.651"></a>
-<span class="sourceLineNo">652</span> }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span> public BackupInfo toBackupInfo() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span> BackupInfo info = new BackupInfo();<a name="line.655"></a>
-<span class="sourceLineNo">656</span> info.setType(backupImage.getType());<a name="line.656"></a>
-<span class="sourceLineNo">657</span> List<TableName> list = backupImage.getTableNames();<a name="line.657"></a>
-<span class="sourceLineNo">658</span> TableName[] tables = new TableName[list.size()];<a name="line.658"></a>
-<span class="sourceLineNo">659</span> info.addTables(list.toArray(tables));<a name="line.659"></a>
-<span class="sourceLineNo">660</span> info.setBackupId(backupImage.getBackupId());<a name="line.660"></a>
-<span class="sourceLineNo">661</span> info.setStartTs(backupImage.getStartTs());<a name="line.661"></a>
-<span class="sourceLineNo">662</span> info.setBackupRootDir(backupImage.getRootDir());<a name="line.662"></a>
-<span class="sourceLineNo">663</span> if (backupImage.getType() == BackupType.INCREMENTAL) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span> info.setHLogTargetDir(BackupUtils.getLogBackupDir(backupImage.getRootDir(),<a name="line.664"></a>
-<span class="sourceLineNo">665</span> backupImage.getBackupId()));<a name="line.665"></a>
-<span class="sourceLineNo">666</span> }<a name="line.666"></a>
-<span class="sourceLineNo">667</span> return info;<a name="line.667"></a>
-<span class="sourceLineNo">668</span> }<a name="line.668"></a>
-<span class="sourceLineNo">669</span>}<a name="line.669"></a>
+<span class="sourceLineNo">629</span> if (image1.getStartTs() < image.getStartTs()) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span> return false;<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> ArrayList<String> image1TableList = new ArrayList<>();<a name="line.634"></a>
+<span class="sourceLineNo">635</span> for (BackupImage image1 : fullImages) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span> List<TableName> tableList = image1.getTableNames();<a name="line.636"></a>
+<span class="sourceLineNo">637</span> for (TableName table : tableList) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span> image1TableList.add(table.getNameAsString());<a name="line.638"></a>
+<span class="sourceLineNo">639</span> }<a name="line.639"></a>
+<span class="sourceLineNo">640</span> }<a name="line.640"></a>
+<span class="sourceLineNo">641</span> ArrayList<String> image2TableList = new ArrayList<>();<a name="line.641"></a>
+<span class="sourceLineNo">642</span> List<TableName> tableList = image.getTableNames();<a name="line.642"></a>
+<span class="sourceLineNo">643</span> for (TableName table : tableList) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span> image2TableList.add(table.getNameAsString());<a name="line.644"></a>
+<span class="sourceLineNo">645</span> }<a name="line.645"></a>
+<span class="sourceLineNo">646</span><a name="line.646"></a>
+<span class="sourceLineNo">647</span> for (int i = 0; i < image2TableList.size(); i++) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span> if (image1TableList.contains(image2TableList.get(i)) == false) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span> return false;<a name="line.649"></a>
+<span class="sourceLineNo">650</span> }<a name="line.650"></a>
+<span class="sourceLineNo">651</span> }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span> LOG.debug("Full image set can cover image " + image.getBackupId());<a name="line.653"></a>
+<span class="sourceLineNo">654</span> return true;<a name="line.654"></a>
+<span class="sourceLineNo">655</span> }<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span> public BackupInfo toBackupInfo() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span> BackupInfo info = new BackupInfo();<a name="line.658"></a>
+<span class="sourceLineNo">659</span> info.setType(backupImage.getType());<a name="line.659"></a>
+<span class="sourceLineNo">660</span> List<TableName> list = backupImage.getTableNames();<a name="line.660"></a>
+<span class="sourceLineNo">661</span> TableName[] tables = new TableName[list.size()];<a name="line.661"></a>
+<span class="sourceLineNo">662</span> info.addTables(list.toArray(tables));<a name="line.662"></a>
+<span class="sourceLineNo">663</span> info.setBackupId(backupImage.getBackupId());<a name="line.663"></a>
+<span class="sourceLineNo">664</span> info.setStartTs(backupImage.getStartTs());<a name="line.664"></a>
+<span class="sourceLineNo">665</span> info.setBackupRootDir(backupImage.getRootDir());<a name="line.665"></a>
+<span class="sourceLineNo">666</span> if (backupImage.getType() == BackupType.INCREMENTAL) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span> info.setHLogTargetDir(BackupUtils.getLogBackupDir(backupImage.getRootDir(),<a name="line.667"></a>
+<span class="sourceLineNo">668</span> backupImage.getBackupId()));<a name="line.668"></a>
+<span class="sourceLineNo">669</span> }<a name="line.669"></a>
+<span class="sourceLineNo">670</span> return info;<a name="line.670"></a>
+<span class="sourceLineNo">671</span> }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>}<a name="line.672"></a>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/FutureUtils.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/FutureUtils.html
index 29e0599..a59fc89 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/FutureUtils.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/FutureUtils.html
@@ -40,139 +40,168 @@
<span class="sourceLineNo">032</span>import org.slf4j.Logger;<a name="line.32"></a>
<span class="sourceLineNo">033</span>import org.slf4j.LoggerFactory;<a name="line.33"></a>
<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>/**<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * Helper class for processing futures.<a name="line.38"></a>
-<span class="sourceLineNo">039</span> */<a name="line.39"></a>
-<span class="sourceLineNo">040</span>@InterfaceAudience.Private<a name="line.40"></a>
-<span class="sourceLineNo">041</span>public final class FutureUtils {<a name="line.41"></a>
+<span class="sourceLineNo">035</span>/**<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * Helper class for processing futures.<a name="line.36"></a>
+<span class="sourceLineNo">037</span> */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>@InterfaceAudience.Private<a name="line.38"></a>
+<span class="sourceLineNo">039</span>public final class FutureUtils {<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span> private static final Logger LOG = LoggerFactory.getLogger(FutureUtils.class);<a name="line.41"></a>
<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span> private static final Logger LOG = LoggerFactory.getLogger(FutureUtils.class);<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span> private FutureUtils() {<a name="line.45"></a>
-<span class="sourceLineNo">046</span> }<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span> /**<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * This is method is used when you just want to add a listener to the given future. We will call<a name="line.49"></a>
-<span class="sourceLineNo">050</span> * {@link CompletableFuture#whenComplete(BiConsumer)} to register the {@code action} to the<a name="line.50"></a>
-<span class="sourceLineNo">051</span> * {@code future}. Ignoring the return value of a Future is considered as a bad practice as it may<a name="line.51"></a>
-<span class="sourceLineNo">052</span> * suppress exceptions thrown from the code that completes the future, and this method will catch<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * all the exception thrown from the {@code action} to catch possible code bugs.<a name="line.53"></a>
-<span class="sourceLineNo">054</span> * <p/><a name="line.54"></a>
-<span class="sourceLineNo">055</span> * And the error phone check will always report FutureReturnValueIgnored because every method in<a name="line.55"></a>
-<span class="sourceLineNo">056</span> * the {@link CompletableFuture} class will return a new {@link CompletableFuture}, so you always<a name="line.56"></a>
-<span class="sourceLineNo">057</span> * have one future that has not been checked. So we introduce this method and add a suppress<a name="line.57"></a>
-<span class="sourceLineNo">058</span> * warnings annotation here.<a name="line.58"></a>
-<span class="sourceLineNo">059</span> */<a name="line.59"></a>
-<span class="sourceLineNo">060</span> @SuppressWarnings("FutureReturnValueIgnored")<a name="line.60"></a>
-<span class="sourceLineNo">061</span> public static <T> void addListener(CompletableFuture<T> future,<a name="line.61"></a>
-<span class="sourceLineNo">062</span> BiConsumer<? super T, ? super Throwable> action) {<a name="line.62"></a>
-<span class="sourceLineNo">063</span> future.whenComplete((resp, error) -> {<a name="line.63"></a>
-<span class="sourceLineNo">064</span> try {<a name="line.64"></a>
-<span class="sourceLineNo">065</span> // See this post on stack overflow(shorten since the url is too long),<a name="line.65"></a>
-<span class="sourceLineNo">066</span> // https://s.apache.org/completionexception<a name="line.66"></a>
-<span class="sourceLineNo">067</span> // For a chain of CompleableFuture, only the first child CompletableFuture can get the<a name="line.67"></a>
-<span class="sourceLineNo">068</span> // original exception, others will get a CompletionException, which wraps the original<a name="line.68"></a>
-<span class="sourceLineNo">069</span> // exception. So here we unwrap it before passing it to the callback action.<a name="line.69"></a>
-<span class="sourceLineNo">070</span> action.accept(resp, unwrapCompletionException(error));<a name="line.70"></a>
-<span class="sourceLineNo">071</span> } catch (Throwable t) {<a name="line.71"></a>
-<span class="sourceLineNo">072</span> LOG.error("Unexpected error caught when processing CompletableFuture", t);<a name="line.72"></a>
-<span class="sourceLineNo">073</span> }<a name="line.73"></a>
-<span class="sourceLineNo">074</span> });<a name="line.74"></a>
-<span class="sourceLineNo">075</span> }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span> /**<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * Almost the same with {@link #addListener(CompletableFuture, BiConsumer)} method above, the only<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * exception is that we will call<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * {@link CompletableFuture#whenCompleteAsync(BiConsumer, Executor)}.<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * @see #addListener(CompletableFuture, BiConsumer)<a name="line.81"></a>
-<span class="sourceLineNo">082</span> */<a name="line.82"></a>
-<span class="sourceLineNo">083</span> @SuppressWarnings("FutureReturnValueIgnored")<a name="line.83"></a>
-<span class="sourceLineNo">084</span> public static <T> void addListener(CompletableFuture<T> future,<a name="line.84"></a>
-<span class="sourceLineNo">085</span> BiConsumer<? super T, ? super Throwable> action, Executor executor) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span> future.whenCompleteAsync((resp, error) -> {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> try {<a name="line.87"></a>
-<span class="sourceLineNo">088</span> action.accept(resp, unwrapCompletionException(error));<a name="line.88"></a>
-<span class="sourceLineNo">089</span> } catch (Throwable t) {<a name="line.89"></a>
-<span class="sourceLineNo">090</span> LOG.error("Unexpected error caught when processing CompletableFuture", t);<a name="line.90"></a>
-<span class="sourceLineNo">091</span> }<a name="line.91"></a>
-<span class="sourceLineNo">092</span> }, executor);<a name="line.92"></a>
-<span class="sourceLineNo">093</span> }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span> /**<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * Return a {@link CompletableFuture} which is same with the given {@code future}, but execute all<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * the callbacks in the given {@code executor}.<a name="line.97"></a>
-<span class="sourceLineNo">098</span> */<a name="line.98"></a>
-<span class="sourceLineNo">099</span> public static <T> CompletableFuture<T> wrapFuture(CompletableFuture<T> future,<a name="line.99"></a>
-<span class="sourceLineNo">100</span> Executor executor) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span> CompletableFuture<T> wrappedFuture = new CompletableFuture<>();<a name="line.101"></a>
-<span class="sourceLineNo">102</span> addListener(future, (r, e) -> {<a name="line.102"></a>
-<span class="sourceLineNo">103</span> if (e != null) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span> wrappedFuture.completeExceptionally(e);<a name="line.104"></a>
-<span class="sourceLineNo">105</span> } else {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> wrappedFuture.complete(r);<a name="line.106"></a>
-<span class="sourceLineNo">107</span> }<a name="line.107"></a>
-<span class="sourceLineNo">108</span> }, executor);<a name="line.108"></a>
-<span class="sourceLineNo">109</span> return wrappedFuture;<a name="line.109"></a>
-<span class="sourceLineNo">110</span> }<a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span> /**<a name="line.112"></a>
-<span class="sourceLineNo">113</span> * Get the cause of the {@link Throwable} if it is a {@link CompletionException}.<a name="line.113"></a>
-<span class="sourceLineNo">114</span> */<a name="line.114"></a>
-<span class="sourceLineNo">115</span> public static Throwable unwrapCompletionException(Throwable error) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span> if (error instanceof CompletionException) {<a name="line.116"></a>
-<span class="sourceLineNo">117</span> Throwable cause = error.getCause();<a name="line.117"></a>
-<span class="sourceLineNo">118</span> if (cause != null) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span> return cause;<a name="line.119"></a>
-<span class="sourceLineNo">120</span> }<a name="line.120"></a>
-<span class="sourceLineNo">121</span> }<a name="line.121"></a>
-<span class="sourceLineNo">122</span> return error;<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span> /**<a name="line.125"></a>
-<span class="sourceLineNo">126</span> * A helper class for getting the result of a Future, and convert the error to an<a name="line.126"></a>
-<span class="sourceLineNo">127</span> * {@link IOException}.<a name="line.127"></a>
-<span class="sourceLineNo">128</span> */<a name="line.128"></a>
-<span class="sourceLineNo">129</span> public static <T> T get(Future<T> future) throws IOException {<a name="line.129"></a>
-<span class="sourceLineNo">130</span> try {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> return future.get();<a name="line.131"></a>
-<span class="sourceLineNo">132</span> } catch (InterruptedException e) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span> throw (IOException) new InterruptedIOException().initCause(e);<a name="line.133"></a>
-<span class="sourceLineNo">134</span> } catch (ExecutionException e) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span> Throwable cause = e.getCause();<a name="line.135"></a>
-<span class="sourceLineNo">136</span> Throwables.propagateIfPossible(cause, IOException.class);<a name="line.136"></a>
-<span class="sourceLineNo">137</span> throw new IOException(cause);<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><a name="line.140"></a>
-<span class="sourceLineNo">141</span> /**<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * A helper class for getting the result of a Future with timeout, and convert the error to an<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * {@link IOException}.<a name="line.143"></a>
-<span class="sourceLineNo">144</span> */<a name="line.144"></a>
-<span class="sourceLineNo">145</span> public static <T> T get(Future<T> future, long timeout, TimeUnit unit) throws IOException {<a name="line.145"></a>
-<span class="sourceLineNo">146</span> try {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> return future.get(timeout, unit);<a name="line.147"></a>
-<span class="sourceLineNo">148</span> } catch (InterruptedException e) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span> throw (IOException) new InterruptedIOException().initCause(e);<a name="line.149"></a>
-<span class="sourceLineNo">150</span> } catch (ExecutionException e) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span> Throwable cause = e.getCause();<a name="line.151"></a>
-<span class="sourceLineNo">152</span> Throwables.propagateIfPossible(cause, IOException.class);<a name="line.152"></a>
-<span class="sourceLineNo">153</span> throw new IOException(cause);<a name="line.153"></a>
-<span class="sourceLineNo">154</span> } catch (TimeoutException e) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span> throw new TimeoutIOException(e);<a name="line.155"></a>
-<span class="sourceLineNo">156</span> }<a name="line.156"></a>
-<span class="sourceLineNo">157</span> }<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span> /**<a name="line.159"></a>
-<span class="sourceLineNo">160</span> * Returns a CompletableFuture that is already completed exceptionally with the given exception.<a name="line.160"></a>
+<span class="sourceLineNo">043</span> private FutureUtils() {<a name="line.43"></a>
+<span class="sourceLineNo">044</span> }<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span> /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * This is method is used when you just want to add a listener to the given future. We will call<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * {@link CompletableFuture#whenComplete(BiConsumer)} to register the {@code action} to the<a name="line.48"></a>
+<span class="sourceLineNo">049</span> * {@code future}. Ignoring the return value of a Future is considered as a bad practice as it may<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * suppress exceptions thrown from the code that completes the future, and this method will catch<a name="line.50"></a>
+<span class="sourceLineNo">051</span> * all the exception thrown from the {@code action} to catch possible code bugs.<a name="line.51"></a>
+<span class="sourceLineNo">052</span> * <p/><a name="line.52"></a>
+<span class="sourceLineNo">053</span> * And the error phone check will always report FutureReturnValueIgnored because every method in<a name="line.53"></a>
+<span class="sourceLineNo">054</span> * the {@link CompletableFuture} class will return a new {@link CompletableFuture}, so you always<a name="line.54"></a>
+<span class="sourceLineNo">055</span> * have one future that has not been checked. So we introduce this method and add a suppress<a name="line.55"></a>
+<span class="sourceLineNo">056</span> * warnings annotation here.<a name="line.56"></a>
+<span class="sourceLineNo">057</span> */<a name="line.57"></a>
+<span class="sourceLineNo">058</span> @SuppressWarnings("FutureReturnValueIgnored")<a name="line.58"></a>
+<span class="sourceLineNo">059</span> public static <T> void addListener(CompletableFuture<T> future,<a name="line.59"></a>
+<span class="sourceLineNo">060</span> BiConsumer<? super T, ? super Throwable> action) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span> future.whenComplete((resp, error) -> {<a name="line.61"></a>
+<span class="sourceLineNo">062</span> try {<a name="line.62"></a>
+<span class="sourceLineNo">063</span> // See this post on stack overflow(shorten since the url is too long),<a name="line.63"></a>
+<span class="sourceLineNo">064</span> // https://s.apache.org/completionexception<a name="line.64"></a>
+<span class="sourceLineNo">065</span> // For a chain of CompleableFuture, only the first child CompletableFuture can get the<a name="line.65"></a>
+<span class="sourceLineNo">066</span> // original exception, others will get a CompletionException, which wraps the original<a name="line.66"></a>
+<span class="sourceLineNo">067</span> // exception. So here we unwrap it before passing it to the callback action.<a name="line.67"></a>
+<span class="sourceLineNo">068</span> action.accept(resp, unwrapCompletionException(error));<a name="line.68"></a>
+<span class="sourceLineNo">069</span> } catch (Throwable t) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span> LOG.error("Unexpected error caught when processing CompletableFuture", t);<a name="line.70"></a>
+<span class="sourceLineNo">071</span> }<a name="line.71"></a>
+<span class="sourceLineNo">072</span> });<a name="line.72"></a>
+<span class="sourceLineNo">073</span> }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span> /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * Almost the same with {@link #addListener(CompletableFuture, BiConsumer)} method above, the only<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * exception is that we will call<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * {@link CompletableFuture#whenCompleteAsync(BiConsumer, Executor)}.<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * @see #addListener(CompletableFuture, BiConsumer)<a name="line.79"></a>
+<span class="sourceLineNo">080</span> */<a name="line.80"></a>
+<span class="sourceLineNo">081</span> @SuppressWarnings("FutureReturnValueIgnored")<a name="line.81"></a>
+<span class="sourceLineNo">082</span> public static <T> void addListener(CompletableFuture<T> future,<a name="line.82"></a>
+<span class="sourceLineNo">083</span> BiConsumer<? super T, ? super Throwable> action, Executor executor) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span> future.whenCompleteAsync((resp, error) -> {<a name="line.84"></a>
+<span class="sourceLineNo">085</span> try {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> action.accept(resp, unwrapCompletionException(error));<a name="line.86"></a>
+<span class="sourceLineNo">087</span> } catch (Throwable t) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span> LOG.error("Unexpected error caught when processing CompletableFuture", t);<a name="line.88"></a>
+<span class="sourceLineNo">089</span> }<a name="line.89"></a>
+<span class="sourceLineNo">090</span> }, executor);<a name="line.90"></a>
+<span class="sourceLineNo">091</span> }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span> /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * Return a {@link CompletableFuture} which is same with the given {@code future}, but execute all<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * the callbacks in the given {@code executor}.<a name="line.95"></a>
+<span class="sourceLineNo">096</span> */<a name="line.96"></a>
+<span class="sourceLineNo">097</span> public static <T> CompletableFuture<T> wrapFuture(CompletableFuture<T> future,<a name="line.97"></a>
+<span class="sourceLineNo">098</span> Executor executor) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span> CompletableFuture<T> wrappedFuture = new CompletableFuture<>();<a name="line.99"></a>
+<span class="sourceLineNo">100</span> addListener(future, (r, e) -> {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> if (e != null) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span> wrappedFuture.completeExceptionally(e);<a name="line.102"></a>
+<span class="sourceLineNo">103</span> } else {<a name="line.103"></a>
+<span class="sourceLineNo">104</span> wrappedFuture.complete(r);<a name="line.104"></a>
+<span class="sourceLineNo">105</span> }<a name="line.105"></a>
+<span class="sourceLineNo">106</span> }, executor);<a name="line.106"></a>
+<span class="sourceLineNo">107</span> return wrappedFuture;<a name="line.107"></a>
+<span class="sourceLineNo">108</span> }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span> /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * Get the cause of the {@link Throwable} if it is a {@link CompletionException}.<a name="line.111"></a>
+<span class="sourceLineNo">112</span> */<a name="line.112"></a>
+<span class="sourceLineNo">113</span> public static Throwable unwrapCompletionException(Throwable error) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span> if (error instanceof CompletionException) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span> Throwable cause = error.getCause();<a name="line.115"></a>
+<span class="sourceLineNo">116</span> if (cause != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span> return cause;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> }<a name="line.118"></a>
+<span class="sourceLineNo">119</span> }<a name="line.119"></a>
+<span class="sourceLineNo">120</span> return error;<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span> // This method is used to record the stack trace that calling the FutureUtils.get method. As in<a name="line.123"></a>
+<span class="sourceLineNo">124</span> // async client, the retry will be done in the retry timer thread, so the exception we get from<a name="line.124"></a>
+<span class="sourceLineNo">125</span> // the CompletableFuture will have a stack trace starting from the root of the retry timer. If we<a name="line.125"></a>
+<span class="sourceLineNo">126</span> // just throw this exception out when calling future.get(by unwrapping the ExecutionException),<a name="line.126"></a>
+<span class="sourceLineNo">127</span> // the upper layer even can not know where is the exception thrown...<a name="line.127"></a>
+<span class="sourceLineNo">128</span> // See HBASE-22316.<a name="line.128"></a>
+<span class="sourceLineNo">129</span> private static void setStackTrace(Throwable error) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> StackTraceElement[] localStackTrace = Thread.currentThread().getStackTrace();<a name="line.130"></a>
+<span class="sourceLineNo">131</span> StackTraceElement[] originalStackTrace = error.getStackTrace();<a name="line.131"></a>
+<span class="sourceLineNo">132</span> StackTraceElement[] newStackTrace =<a name="line.132"></a>
+<span class="sourceLineNo">133</span> new StackTraceElement[localStackTrace.length + originalStackTrace.length + 1];<a name="line.133"></a>
+<span class="sourceLineNo">134</span> System.arraycopy(localStackTrace, 0, newStackTrace, 0, localStackTrace.length);<a name="line.134"></a>
+<span class="sourceLineNo">135</span> newStackTrace[localStackTrace.length] =<a name="line.135"></a>
+<span class="sourceLineNo">136</span> new StackTraceElement("--------Future", "get--------", null, -1);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> System.arraycopy(originalStackTrace, 0, newStackTrace, localStackTrace.length + 1,<a name="line.137"></a>
+<span class="sourceLineNo">138</span> originalStackTrace.length);<a name="line.138"></a>
+<span class="sourceLineNo">139</span> error.setStackTrace(newStackTrace);<a name="line.139"></a>
+<span class="sourceLineNo">140</span> }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span> private static IOException rethrow(ExecutionException error) throws IOException {<a name="line.142"></a>
+<span class="sourceLineNo">143</span> Throwable cause = error.getCause();<a name="line.143"></a>
+<span class="sourceLineNo">144</span> if (cause instanceof IOException) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span> setStackTrace(cause);<a name="line.145"></a>
+<span class="sourceLineNo">146</span> throw (IOException) cause;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> } else if (cause instanceof RuntimeException) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span> setStackTrace(cause);<a name="line.148"></a>
+<span class="sourceLineNo">149</span> throw (RuntimeException) cause;<a name="line.149"></a>
+<span class="sourceLineNo">150</span> } else if (cause instanceof Error) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> setStackTrace(cause);<a name="line.151"></a>
+<span class="sourceLineNo">152</span> throw (Error) cause;<a name="line.152"></a>
+<span class="sourceLineNo">153</span> } else {<a name="line.153"></a>
+<span class="sourceLineNo">154</span> throw new IOException(cause);<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><a name="line.157"></a>
+<span class="sourceLineNo">158</span> /**<a name="line.158"></a>
+<span class="sourceLineNo">159</span> * A helper class for getting the result of a Future, and convert the error to an<a name="line.159"></a>
+<span class="sourceLineNo">160</span> * {@link IOException}.<a name="line.160"></a>
<span class="sourceLineNo">161</span> */<a name="line.161"></a>
-<span class="sourceLineNo">162</span> public static <T> CompletableFuture<T> failedFuture(Throwable e) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span> CompletableFuture<T> future = new CompletableFuture<>();<a name="line.163"></a>
-<span class="sourceLineNo">164</span> future.completeExceptionally(e);<a name="line.164"></a>
-<span class="sourceLineNo">165</span> return future;<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>}<a name="line.167"></a>
+<span class="sourceLineNo">162</span> public static <T> T get(Future<T> future) throws IOException {<a name="line.162"></a>
+<span class="sourceLineNo">163</span> try {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> return future.get();<a name="line.164"></a>
+<span class="sourceLineNo">165</span> } catch (InterruptedException e) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span> throw (IOException) new InterruptedIOException().initCause(e);<a name="line.166"></a>
+<span class="sourceLineNo">167</span> } catch (ExecutionException e) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span> throw rethrow(e);<a name="line.168"></a>
+<span class="sourceLineNo">169</span> }<a name="line.169"></a>
+<span class="sourceLineNo">170</span> }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span> /**<a name="line.172"></a>
+<span class="sourceLineNo">173</span> * A helper class for getting the result of a Future with timeout, and convert the error to an<a name="line.173"></a>
+<span class="sourceLineNo">174</span> * {@link IOException}.<a name="line.174"></a>
+<span class="sourceLineNo">175</span> */<a name="line.175"></a>
+<span class="sourceLineNo">176</span> public static <T> T get(Future<T> future, long timeout, TimeUnit unit) throws IOException {<a name="line.176"></a>
+<span class="sourceLineNo">177</span> try {<a name="line.177"></a>
+<span class="sourceLineNo">178</span> return future.get(timeout, unit);<a name="line.178"></a>
+<span class="sourceLineNo">179</span> } catch (InterruptedException e) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span> throw (IOException) new InterruptedIOException().initCause(e);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> } catch (ExecutionException e) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> throw rethrow(e);<a name="line.182"></a>
+<span class="sourceLineNo">183</span> } catch (TimeoutException e) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span> throw new TimeoutIOException(e);<a name="line.184"></a>
+<span class="sourceLineNo">185</span> }<a name="line.185"></a>
+<span class="sourceLineNo">186</span> }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span> /**<a name="line.188"></a>
+<span class="sourceLineNo">189</span> * Returns a CompletableFuture that is already completed exceptionally with the given exception.<a name="line.189"></a>
+<span class="sourceLineNo">190</span> */<a name="line.190"></a>
+<span class="sourceLineNo">191</span> public static <T> CompletableFuture<T> failedFuture(Throwable e) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> CompletableFuture<T> future = new CompletableFuture<>();<a name="line.192"></a>
+<span class="sourceLineNo">193</span> future.completeExceptionally(e);<a name="line.193"></a>
+<span class="sourceLineNo">194</span> return future;<a name="line.194"></a>
+<span class="sourceLineNo">195</span> }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>}<a name="line.196"></a>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/UnsafeAccess.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/UnsafeAccess.html
index 4a8cf3e..ae86ecc 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/UnsafeAccess.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/UnsafeAccess.html
@@ -341,7 +341,7 @@
<span class="sourceLineNo">333</span> private static void unsafeCopy(Object src, long srcAddr, Object dst, long destAddr, long len) {<a name="line.333"></a>
<span class="sourceLineNo">334</span> while (len > 0) {<a name="line.334"></a>
<span class="sourceLineNo">335</span> long size = (len > UNSAFE_COPY_THRESHOLD) ? UNSAFE_COPY_THRESHOLD : len;<a name="line.335"></a>
-<span class="sourceLineNo">336</span> theUnsafe.copyMemory(src, srcAddr, dst, destAddr, len);<a name="line.336"></a>
+<span class="sourceLineNo">336</span> theUnsafe.copyMemory(src, srcAddr, dst, destAddr, size);<a name="line.336"></a>
<span class="sourceLineNo">337</span> len -= size;<a name="line.337"></a>
<span class="sourceLineNo">338</span> srcAddr += size;<a name="line.338"></a>
<span class="sourceLineNo">339</span> destAddr += size;<a name="line.339"></a>
diff --git a/downloads.html b/downloads.html
index c6bb4c4..55e3b0b 100644
--- a/downloads.html
+++ b/downloads.html
@@ -401,7 +401,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/export_control.html b/export_control.html
index a73e5cd..b71a18b 100644
--- a/export_control.html
+++ b/export_control.html
@@ -187,7 +187,7 @@ for more details.</p>
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/index.html b/index.html
index f14549c..9196872 100644
--- a/index.html
+++ b/index.html
@@ -269,7 +269,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/issue-management.html b/issue-management.html
index 17b1654..df5d792 100644
--- a/issue-management.html
+++ b/issue-management.html
@@ -159,7 +159,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/licenses.html b/licenses.html
index 42180f4..28be356 100644
--- a/licenses.html
+++ b/licenses.html
@@ -362,7 +362,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/mailing-lists.html b/mailing-lists.html
index 943473d..b9df87f 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -212,7 +212,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/metrics.html b/metrics.html
index 2d4ac19..3d22425 100644
--- a/metrics.html
+++ b/metrics.html
@@ -315,7 +315,7 @@ export HBASE_REGIONSERVER_OPTS="$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/old_news.html b/old_news.html
index a947a3c..82618af 100644
--- a/old_news.html
+++ b/old_news.html
@@ -296,7 +296,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/plugin-management.html b/plugin-management.html
index e66c817..4837c78 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -311,7 +311,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/plugins.html b/plugins.html
index 0abb6f7..a160125 100644
--- a/plugins.html
+++ b/plugins.html
@@ -238,7 +238,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index c8d9878..3bbd2e2 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -625,7 +625,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/project-info.html b/project-info.html
index e3a2a2d..f3c444d 100644
--- a/project-info.html
+++ b/project-info.html
@@ -203,7 +203,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/project-reports.html b/project-reports.html
index a809b1d..49cba13 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -176,7 +176,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 078c3f6..ac40b0d 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -164,7 +164,7 @@ Running Apache HBase (TM) in pseudo-distributed mode
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/replication.html b/replication.html
index 6f80fb7..ef43058 100644
--- a/replication.html
+++ b/replication.html
@@ -159,7 +159,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/resources.html b/resources.html
index d8e13ba..d837f3d 100644
--- a/resources.html
+++ b/resources.html
@@ -187,7 +187,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/scm.html b/scm.html
index 19bab0b..e45f5c2 100644
--- a/scm.html
+++ b/scm.html
@@ -170,7 +170,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/sponsors.html b/sponsors.html
index d634d62..a5a80d9 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -189,7 +189,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/summary.html b/summary.html
index da75a1e..c56ce1e 100644
--- a/summary.html
+++ b/summary.html
@@ -202,7 +202,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/supportingprojects.html b/supportingprojects.html
index ac32965..ff6f8a3 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -376,7 +376,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/team.html b/team.html
index b40f822..55b032e 100644
--- a/team.html
+++ b/team.html
@@ -649,7 +649,7 @@
<div class="row">
<p>Copyright ©2007–2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-29</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2019-05-30</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index 7c0391f..290eb2f 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -1208,6 +1208,7 @@
<li><a href="org/apache/hadoop/hbase/backup/TestFullBackupWithFailures.html" title="class in org.apache.hadoop.hbase.backup" target="classFrame">TestFullBackupWithFailures</a></li>
<li><a href="org/apache/hadoop/hbase/TestFullLogReconstruction.html" title="class in org.apache.hadoop.hbase" target="classFrame">TestFullLogReconstruction</a></li>
<li><a href="org/apache/hadoop/hbase/backup/TestFullRestore.html" title="class in org.apache.hadoop.hbase.backup" target="classFrame">TestFullRestore</a></li>
+<li><a href="org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">TestFutureUtils</a></li>
<li><a href="org/apache/hadoop/hbase/filter/TestFuzzyRowAndColumnRangeFilter.html" title="class in org.apache.hadoop.hbase.filter" target="classFrame">TestFuzzyRowAndColumnRangeFilter</a></li>
<li><a href="org/apache/hadoop/hbase/filter/TestFuzzyRowFilter.html" title="class in org.apache.hadoop.hbase.filter" target="classFrame">TestFuzzyRowFilter</a></li>
<li><a href="org/apache/hadoop/hbase/filter/TestFuzzyRowFilterEndToEnd.html" title="class in org.apache.hadoop.hbase.filter" target="classFrame">TestFuzzyRowFilterEndToEnd</a></li>
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index df074db..05d022c 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -1208,6 +1208,7 @@
<li><a href="org/apache/hadoop/hbase/backup/TestFullBackupWithFailures.html" title="class in org.apache.hadoop.hbase.backup">TestFullBackupWithFailures</a></li>
<li><a href="org/apache/hadoop/hbase/TestFullLogReconstruction.html" title="class in org.apache.hadoop.hbase">TestFullLogReconstruction</a></li>
<li><a href="org/apache/hadoop/hbase/backup/TestFullRestore.html" title="class in org.apache.hadoop.hbase.backup">TestFullRestore</a></li>
+<li><a href="org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util">TestFutureUtils</a></li>
<li><a href="org/apache/hadoop/hbase/filter/TestFuzzyRowAndColumnRangeFilter.html" title="class in org.apache.hadoop.hbase.filter">TestFuzzyRowAndColumnRangeFilter</a></li>
<li><a href="org/apache/hadoop/hbase/filter/TestFuzzyRowFilter.html" title="class in org.apache.hadoop.hbase.filter">TestFuzzyRowFilter</a></li>
<li><a href="org/apache/hadoop/hbase/filter/TestFuzzyRowFilterEndToEnd.html" title="class in org.apache.hadoop.hbase.filter">TestFuzzyRowFilterEndToEnd</a></li>
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 964cc08..f4ab765 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -3230,8 +3230,6 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestWideScanner.html#C">C</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestWideScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestWideScanner</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#c--">c()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationStatusSourceStartedTargetStoppedNoOps</a></dt>
-<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationWALEntryFilters.html#c">c</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationWALEntryFilters.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationWALEntryFilters</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestKeepDeletes.html#c0">c0</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestKeepDeletes.html" title="class in org.apache.hadoop.hbase.regionserver">TestKeepDeletes</a></dt>
@@ -6977,6 +6975,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSVisitor.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util">TestFSVisitor</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFutureUtils.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util">TestFutureUtils</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckCleanReplicationBarriers</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestHBaseFsckComparator.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestHBaseFsckComparator.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckComparator</a></dt>
@@ -14399,6 +14399,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure/SimpleRSProcedureManager.SimpleSubprocedurePool.html#executor">executor</a></span> - Variable in class org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/SimpleRSProcedureManager.SimpleSubprocedurePool.html" title="class in org.apache.hadoop.hbase.procedure">SimpleRSProcedureManager.SimpleSubprocedurePool</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFutureUtils.html#executor">executor</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util">TestFutureUtils</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html#executorService">executorService</a></span> - Static variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRegionStates</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mttr/IntegrationTestMTTR.html#executorService">executorService</a></span> - Static variable in class org.apache.hadoop.hbase.mttr.<a href="org/apache/hadoop/hbase/mttr/IntegrationTestMTTR.html" title="class in org.apache.hadoop.hbase.mttr">IntegrationTestMTTR</a></dt>
@@ -39951,6 +39953,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSVisitor.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util">TestFSVisitor</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFutureUtils.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util">TestFutureUtils</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html#setUp--">setUp()</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckCleanReplicationBarriers</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckEncryption</a></dt>
@@ -45498,6 +45502,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSVisitor.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util">TestFSVisitor</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFutureUtils.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util">TestFutureUtils</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html#tearDown--">tearDown()</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckCleanReplicationBarriers</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckEncryption</a></dt>
@@ -54615,6 +54621,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestProcedureFuture.TestFuture.html#TestFuture-org.apache.hadoop.hbase.client.HBaseAdmin-java.lang.Long-">TestFuture(HBaseAdmin, Long)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestProcedureFuture.TestFuture.html" title="class in org.apache.hadoop.hbase.client">TestProcedureFuture.TestFuture</a></dt>
<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestFutureUtils</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFutureUtils.html#TestFutureUtils--">TestFutureUtils()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util">TestFutureUtils</a></dt>
+<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/filter/TestFuzzyRowAndColumnRangeFilter.html" title="class in org.apache.hadoop.hbase.filter"><span class="typeNameLink">TestFuzzyRowAndColumnRangeFilter</span></a> - Class in <a href="org/apache/hadoop/hbase/filter/package-summary.html">org.apache.hadoop.hbase.filter</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/TestFuzzyRowAndColumnRangeFilter.html#TestFuzzyRowAndColumnRangeFilter--">TestFuzzyRowAndColumnRangeFilter()</a></span> - Constructor for class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/TestFuzzyRowAndColumnRangeFilter.html" title="class in org.apache.hadoop.hbase.filter">TestFuzzyRowAndColumnRangeFilter</a></dt>
@@ -61972,6 +61982,8 @@
<dd>
<div class="block">Test the whole reconstruction loop.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFutureUtils.html#testRecordStackTrace--">testRecordStackTrace()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util">TestFutureUtils</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#testRecover--">testRecover()</a></span> - Method in class org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html" title="class in org.apache.hadoop.hbase.io.asyncfs">TestFanOutOneBlockAsyncDFSOutput</a></dt>
<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/zookeeper/TestRecoverableZooKeeper.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestRecoverableZooKeeper</span></a> - Class in <a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></dt>
@@ -63520,6 +63532,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#TestReplicationStatusSourceStartedTargetStoppedNoOps--">TestReplicationStatusSourceStartedTargetStoppedNoOps()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSt [...]
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#testReplicationStatusSourceStartedTargetStoppedNoOps--">testReplicationStatusSourceStartedTargetStoppedNoOps()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationStatusSo [...]
+<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedWithRecovery.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationStatusSourceStartedTargetStoppedWithRecovery</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedWithRecovery.html#TestReplicationStatusSourceStartedTargetStoppedWithRecovery--">TestReplicationStatusSourceStartedTargetStoppedWithRecovery()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedWithRecovery.html" title="class in org.apache.hadoop.hbase.re [...]
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
index 56b8075..f8e6801 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
@@ -6929,154 +6929,158 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRetryCounter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRetryCounter.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestFutureUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestThreadLocalPoolMap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestThreadLocalPoolMap.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestRetryCounter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRetryCounter.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestReusablePoolMap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestReusablePoolMap.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestThreadLocalPoolMap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestThreadLocalPoolMap.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRoundRobinPoolMap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRoundRobinPoolMap.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestReusablePoolMap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestReusablePoolMap.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHBaseFsckReplication.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckReplication.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestRoundRobinPoolMap.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRoundRobinPoolMap.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRootPath.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRootPath.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestHBaseFsckReplication.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckReplication.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRegionSplitter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionSplitter.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestRootPath.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRootPath.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHBaseFsckComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckComparator.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestRegionSplitter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionSplitter.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHBaseFsckMOB.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckMOB.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestHBaseFsckComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckComparator.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestByteBuffUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestByteBuffUtils.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestHBaseFsckMOB.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckMOB.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFSTableDescriptors.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSTableDescriptors.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestByteBuffUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestByteBuffUtils.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestDefaultEnvironmentEdge.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestDefaultEnvironmentEdge.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestFSTableDescriptors.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSTableDescriptors.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFSUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestDefaultEnvironmentEdge.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestDefaultEnvironmentEdge.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSortedList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestSortedList.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestFSUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestBloomFilterChunk.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestBloomFilterChunk.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestSortedList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestSortedList.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFSHDFSUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSHDFSUtils.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestBloomFilterChunk.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestBloomFilterChunk.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestConfigurationUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestConfigurationUtil.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestFSHDFSUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSHDFSUtils.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFSVisitor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSVisitor.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestConfigurationUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestConfigurationUtil.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestIdLock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestIdLock.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestFSVisitor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSVisitor.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHBaseFsckEncryption.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestIdLock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestIdLock.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestStealJobQueue.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestStealJobQueue.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestHBaseFsckEncryption.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMiniClusterLoadEncoded.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadEncoded.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestStealJobQueue.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestStealJobQueue.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRegionMover.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionMover.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestMiniClusterLoadEncoded.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadEncoded.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestConnectionCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestConnectionCache.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestRegionMover.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionMover.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestJSONMetricUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestJSONMetricUtil.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestConnectionCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestConnectionCache.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHFileArchiveUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHFileArchiveUtil.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestJSONMetricUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestJSONMetricUtil.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHBaseFsckCleanReplicationBarriers.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestHFileArchiveUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHFileArchiveUtil.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCoprocessorScanPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestCoprocessorScanPolicy.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestHBaseFsckCleanReplicationBarriers.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMiniClusterLoadSequential.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestCoprocessorScanPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestCoprocessorScanPolicy.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFromClientSide3WoUnsafe.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFromClientSide3WoUnsafe.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestMiniClusterLoadSequential.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestLossyCounting.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestLossyCounting.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestFromClientSide3WoUnsafe.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFromClientSide3WoUnsafe.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestEncryptionTest.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestEncryptionTest.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestLossyCounting.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestLossyCounting.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCompressionTest.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestCompressionTest.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestEncryptionTest.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestEncryptionTest.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestIdReadWriteLock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestIdReadWriteLock.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestCompressionTest.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestCompressionTest.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestBoundedPriorityBlockingQueue.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestBoundedPriorityBlockingQueue.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestIdReadWriteLock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestIdReadWriteLock.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMiniClusterLoadParallel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadParallel.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestBoundedPriorityBlockingQueue.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestBoundedPriorityBlockingQueue.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRegionSplitCalculator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionSplitCalculator.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestMiniClusterLoadParallel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadParallel.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestRegionSplitCalculator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionSplitCalculator.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
<td class="colLast"><span class="typeNameLabel">TestIncrementingEnvironmentEdge.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestIncrementingEnvironmentEdge.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
</tbody>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index 3d3887a..ce0d47a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -160,8 +160,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><E> (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><T>, 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/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
</ul>
</li>
</ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index accf246..4319b9b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -579,15 +579,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><E> (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><T>, 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/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
</ul>
</li>
</ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 64b73da..4d2a0a6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -242,9 +242,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><E> (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><T>, 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/TestProcedureBypass.StuckStateMachineState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureBypass.StuckStateMachineState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
</ul>
</li>
</ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 7f4a21c..a2a093d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -707,11 +707,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><E> (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><T>, 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/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
</ul>
</li>
</ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html
index 1f9b3be..a51aca3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html
@@ -179,7 +179,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#c--">c</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#testReplicationStatusSourceStartedTargetStoppedNoOps--">testReplicationStatusSourceStartedTargetStoppedNoOps</a></span>()</code> </td>
</tr>
</table>
<ul class="blockList">
@@ -244,14 +244,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Method Detail</h3>
-<a name="c--">
+<a name="testReplicationStatusSourceStartedTargetStoppedNoOps--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
-<h4>c</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#line.44">c</a>()
- throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<h4>testReplicationStatusSourceStartedTargetStoppedNoOps</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#line.44">testReplicationStatusSourceStartedTargetStoppedNoOps</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index b428734..f4e98ea 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -253,10 +253,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><E> (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><T>, 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.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
</ul>
</li>
</ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestFSVisitor.html b/testdevapidocs/org/apache/hadoop/hbase/util/TestFSVisitor.html
index 0947976..dbef903 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestFSVisitor.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/TestFSVisitor.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.AlwaysFailSetStoragePolicyFileSystem.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestFSVisitor.html" target="_top">Frames</a></li>
@@ -452,7 +452,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.AlwaysFailSetStoragePolicyFileSystem.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestFSVisitor.html" target="_top">Frames</a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html b/testdevapidocs/org/apache/hadoop/hbase/util/TestFutureUtils.html
similarity index 54%
copy from testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html
copy to testdevapidocs/org/apache/hadoop/hbase/util/TestFutureUtils.html
index 1f9b3be..81720e1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/TestFutureUtils.html
@@ -4,7 +4,7 @@
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestReplicationStatusSourceStartedTargetStoppedNoOps (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<title>TestFutureUtils (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
@@ -12,13 +12,13 @@
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="TestReplicationStatusSourceStartedTargetStoppedNoOps (Apache HBase 3.0.0-SNAPSHOT Test API)";
+ parent.document.title="TestFutureUtils (Apache HBase 3.0.0-SNAPSHOT Test API)";
}
}
catch(err) {
}
//-->
-var methods = {"i0":10};
+var methods = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestReplicationStatusSourceStartedTargetStoppedNoOps.html">Use</a></li>
+<li><a href="class-use/TestFutureUtils.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNewOp.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedWithRecovery.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html" target="_top">Frames</a></li>
-<li><a href="TestReplicationStatusSourceStartedTargetStoppedNoOps.html" target="_top">No Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestFutureUtils.html" target="_top">Frames</a></li>
+<li><a href="TestFutureUtils.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
@@ -92,20 +92,15 @@ var activeTableTab = "activeTableTab";
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.replication</div>
-<h2 title="Class TestReplicationStatusSourceStartedTargetStoppedNoOps" class="title">Class TestReplicationStatusSourceStartedTargetStoppedNoOps</h2>
+<div class="subTitle">org.apache.hadoop.hbase.util</div>
+<h2 title="Class TestFutureUtils" class="title">Class TestFutureUtils</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication.TestReplicationBase</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.replication.TestReplicationStatusSourceStartedTargetStoppedNoOps</li>
-</ul>
-</li>
+<li>org.apache.hadoop.hbase.util.TestFutureUtils</li>
</ul>
</li>
</ul>
@@ -114,8 +109,8 @@ var activeTableTab = "activeTableTab";
<li class="blockList">
<hr>
<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#line.37">TestReplicationStatusSourceStartedTargetStoppedNoOps</a>
-extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></pre>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFutureUtils.html#line.44">TestFutureUtils</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>
</li>
</ul>
</div>
@@ -136,16 +131,13 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html#executor">executor</a></span></code> </td>
</tr>
</table>
-<ul class="blockList">
-<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
-<!-- -->
-</a>
-<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/re [...]
-</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
@@ -160,7 +152,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#TestReplicationStatusSourceStartedTargetStoppedNoOps--">TestReplicationStatusSourceStartedTargetStoppedNoOps</a></span>()</code> </td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html#TestFutureUtils--">TestFutureUtils</a></span>()</code> </td>
</tr>
</table>
</li>
@@ -179,17 +171,18 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#c--">c</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html#setUp--">setUp</a></span>()</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html#tearDown--">tearDown</a></span>()</code> </td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html#testRecordStackTrace--">testRecordStackTrace</a></span>()</code> </td>
</tr>
</table>
<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
-<!-- -->
-</a>
-<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#configureClusters--">configureClusters</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSyncPeer--">isSyncPeer</a>, <a href="../.. [...]
-</ul>
-<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
@@ -213,10 +206,19 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<a name="CLASS_RULE">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>CLASS_RULE</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#line.40">CLASS_RULE</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFutureUtils.html#line.47">CLASS_RULE</a></pre>
+</li>
+</ul>
+<a name="executor">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>executor</h4>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFutureUtils.html#line.50">executor</a></pre>
</li>
</ul>
</li>
@@ -227,13 +229,13 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Constructor Detail</h3>
-<a name="TestReplicationStatusSourceStartedTargetStoppedNoOps--">
+<a name="TestFutureUtils--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
-<h4>TestReplicationStatusSourceStartedTargetStoppedNoOps</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#line.37">TestReplicationStatusSourceStartedTargetStoppedNoOps</a>()</pre>
+<h4>TestFutureUtils</h4>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFutureUtils.html#line.44">TestFutureUtils</a>()</pre>
</li>
</ul>
</li>
@@ -244,17 +246,35 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Method Detail</h3>
-<a name="c--">
+<a name="setUp--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUp</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFutureUtils.html#line.53">setUp</a>()</pre>
+</li>
+</ul>
+<a name="tearDown--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tearDown</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFutureUtils.html#line.58">tearDown</a>()</pre>
+</li>
+</ul>
+<a name="testRecordStackTrace--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
-<h4>c</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html#line.44">c</a>()
- throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<h4>testRecordStackTrace</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFutureUtils.html#line.63">testRecordStackTrace</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+<dd><code><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></code></dd>
</dl>
</li>
</ul>
@@ -277,7 +297,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestReplicationStatusSourceStartedTargetStoppedNoOps.html">Use</a></li>
+<li><a href="class-use/TestFutureUtils.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
@@ -286,12 +306,12 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNewOp.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedWithRecovery.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html" target="_top">Frames</a></li>
-<li><a href="TestReplicationStatusSourceStartedTargetStoppedNoOps.html" target="_top">No Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestFutureUtils.html" target="_top">Frames</a></li>
+<li><a href="TestFutureUtils.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html b/testdevapidocs/org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html
index fc98f51..5ddad81 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckComparator.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
@@ -492,7 +492,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckComparator.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/class-use/TestFutureUtils.html b/testdevapidocs/org/apache/hadoop/hbase/util/class-use/TestFutureUtils.html
new file mode 100644
index 0000000..8bcaf26
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/class-use/TestFutureUtils.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.util.TestFutureUtils (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.util.TestFutureUtils (Apache HBase 3.0.0-SNAPSHOT Test API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/TestFutureUtils.html" target="_top">Frames</a></li>
+<li><a href="TestFutureUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.util.TestFutureUtils" class="title">Uses of Class<br>org.apache.hadoop.hbase.util.TestFutureUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.util.TestFutureUtils</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/TestFutureUtils.html" target="_top">Frames</a></li>
+<li><a href="TestFutureUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2007–2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/util/package-frame.html
index 06c56a9..0ebe884 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/package-frame.html
@@ -89,6 +89,7 @@
<li><a href="TestFSTableDescriptors.FSTableDescriptorsTest.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">TestFSTableDescriptors.FSTableDescriptorsTest</a></li>
<li><a href="TestFSUtils.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">TestFSUtils</a></li>
<li><a href="TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">TestFSVisitor</a></li>
+<li><a href="TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">TestFutureUtils</a></li>
<li><a href="TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">TestHBaseFsckCleanReplicationBarriers</a></li>
<li><a href="TestHBaseFsckComparator.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">TestHBaseFsckComparator</a></li>
<li><a href="TestHBaseFsckEncryption.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">TestHBaseFsckEncryption</a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/util/package-summary.html
index 96d8a41..aa2e584 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/package-summary.html
@@ -470,181 +470,185 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckCleanReplicationBarriers</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util">TestFutureUtils</a></td>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckCleanReplicationBarriers</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckComparator.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckComparator</a></td>
<td class="colLast">
<div class="block">Test the comparator used by Hbck.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckEncryption</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckMOB.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckMOB</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckReplication.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckReplication</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestHFileArchiveUtil.html" title="class in org.apache.hadoop.hbase.util">TestHFileArchiveUtil</a></td>
<td class="colLast">
<div class="block">Test that the utility works as expected</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestIdLock.html" title="class in org.apache.hadoop.hbase.util">TestIdLock</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestIdReadWriteLock.html" title="class in org.apache.hadoop.hbase.util">TestIdReadWriteLock</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestIncrementingEnvironmentEdge.html" title="class in org.apache.hadoop.hbase.util">TestIncrementingEnvironmentEdge</a></td>
<td class="colLast">
<div class="block">Tests that the incrementing environment edge increments time instead of using
the default.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestJRubyFormat.html" title="class in org.apache.hadoop.hbase.util">TestJRubyFormat</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestJSONMetricUtil.html" title="class in org.apache.hadoop.hbase.util">TestJSONMetricUtil</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestKeyLocker.html" title="class in org.apache.hadoop.hbase.util">TestKeyLocker</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestLoadTestKVGenerator.html" title="class in org.apache.hadoop.hbase.util">TestLoadTestKVGenerator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestLossyCounting.html" title="class in org.apache.hadoop.hbase.util">TestLossyCounting</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadEncoded.html" title="class in org.apache.hadoop.hbase.util">TestMiniClusterLoadEncoded</a></td>
<td class="colLast">
<div class="block">Runs a load test on a mini HBase cluster with data block encoding turned on.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadParallel.html" title="class in org.apache.hadoop.hbase.util">TestMiniClusterLoadParallel</a></td>
<td class="colLast">
<div class="block">A write/read/verify load test on a mini HBase cluster.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util">TestMiniClusterLoadSequential</a></td>
<td class="colLast">
<div class="block">A write/read/verify load test on a mini HBase cluster.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html" title="class in org.apache.hadoop.hbase.util">TestOrder</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util">TestOrderedBytes</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionMover.html" title="class in org.apache.hadoop.hbase.util">TestRegionMover</a></td>
<td class="colLast">
<div class="block">Tests for Region Mover Load/Unload functionality with and without ack mode and also to test
exclude functionality useful for rack decommissioning</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionSplitCalculator.html" title="class in org.apache.hadoop.hbase.util">TestRegionSplitCalculator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionSplitCalculator.SimpleRange.html" title="class in org.apache.hadoop.hbase.util">TestRegionSplitCalculator.SimpleRange</a></td>
<td class="colLast">
<div class="block">This is range uses a user specified start and end keys.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionSplitter.html" title="class in org.apache.hadoop.hbase.util">TestRegionSplitter</a></td>
<td class="colLast">
<div class="block">Tests for <code>RegionSplitter</code>, which can create a pre-split table or do a
rolling split of an existing table.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestRetryCounter.html" title="class in org.apache.hadoop.hbase.util">TestRetryCounter</a></td>
<td class="colLast">
<div class="block">Basic test for some old functionality we don't seem to have used but that looks nice.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestReusablePoolMap.html" title="class in org.apache.hadoop.hbase.util">TestReusablePoolMap</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestRootPath.html" title="class in org.apache.hadoop.hbase.util">TestRootPath</a></td>
<td class="colLast">
<div class="block">Test requirement that root directory must be a URI</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestRoundRobinPoolMap.html" title="class in org.apache.hadoop.hbase.util">TestRoundRobinPoolMap</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestShowProperties.html" title="class in org.apache.hadoop.hbase.util">TestShowProperties</a></td>
<td class="colLast">
<div class="block">This test is there to dump the properties.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestSimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util">TestSimpleMutableByteRange</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestSimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util">TestSimplePositionedMutableByteRange</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestSortedList.html" title="class in org.apache.hadoop.hbase.util">TestSortedList</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestSortedList.StringComparator.html" title="class in org.apache.hadoop.hbase.util">TestSortedList.StringComparator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestStealJobQueue.html" title="class in org.apache.hadoop.hbase.util">TestStealJobQueue</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestThreadLocalPoolMap.html" title="class in org.apache.hadoop.hbase.util">TestThreadLocalPoolMap</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestThreads.html" title="class in org.apache.hadoop.hbase.util">TestThreads</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestVersionInfo.html" title="class in org.apache.hadoop.hbase.util">TestVersionInfo</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TestWeakObjectPool.html" title="class in org.apache.hadoop.hbase.util">TestWeakObjectPool</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TimeOffsetEnvironmentEdge.html" title="class in org.apache.hadoop.hbase.util">TimeOffsetEnvironmentEdge</a></td>
<td class="colLast"> </td>
</tr>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/util/package-tree.html
index 4993d15..8548db6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -248,6 +248,7 @@
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/TestFSTableDescriptors.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestFSTableDescriptors</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestFSUtils</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestFSVisitor</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestFutureUtils</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckCleanReplicationBarriers.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestHBaseFsckCleanReplicationBarriers</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckComparator.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestHBaseFsckComparator</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestHBaseFsckEncryption</span></a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index 8539cfa..f4cae08 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -148,8 +148,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><E> (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><T>, 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.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/TestWALSplit.Corruptions.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
</ul>
</li>
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index baae4d5..9cfa789 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -3015,6 +3015,7 @@
<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestFSVisitor</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestFSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">TestFSWALEntry</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestFullLogReconstruction.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">TestFullLogReconstruction</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFutureUtils.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestFutureUtils</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/TestFuzzyRowAndColumnRangeFilter.html" title="class in org.apache.hadoop.hbase.filter"><span class="typeNameLink">TestFuzzyRowAndColumnRangeFilter</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/TestFuzzyRowFilter.html" title="class in org.apache.hadoop.hbase.filter"><span class="typeNameLink">TestFuzzyRowFilter</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/TestFuzzyRowFilterEndToEnd.html" title="class in org.apache.hadoop.hbase.filter"><span class="typeNameLink">TestFuzzyRowFilterEndToEnd</span></a></li>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusAfterLagging.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusAfterLagging.html
index fafbc9c..f47cf60 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusAfterLagging.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusAfterLagging.html
@@ -53,7 +53,7 @@
<span class="sourceLineNo">045</span> @Test<a name="line.45"></a>
<span class="sourceLineNo">046</span> public void testReplicationStatusAfterLagging() throws Exception {<a name="line.46"></a>
<span class="sourceLineNo">047</span> utility2.shutdownMiniHBaseCluster();<a name="line.47"></a>
-<span class="sourceLineNo">048</span> restartHBaseCluster(utility1, NUM_SLAVES1);<a name="line.48"></a>
+<span class="sourceLineNo">048</span> restartHBaseCluster(utility1, 1);<a name="line.48"></a>
<span class="sourceLineNo">049</span> // add some values to cluster 1<a name="line.49"></a>
<span class="sourceLineNo">050</span> for (int i = 0; i < NB_ROWS_IN_BATCH; i++) {<a name="line.50"></a>
<span class="sourceLineNo">051</span> Put p = new Put(Bytes.toBytes("row" + i));<a name="line.51"></a>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusBothNormalAndRecoveryLagging.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusBothNormalAndRecoveryLagging.html
index 6830b44..e71fbec 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusBothNormalAndRecoveryLagging.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusBothNormalAndRecoveryLagging.html
@@ -60,7 +60,7 @@
<span class="sourceLineNo">052</span> htable1.put(p);<a name="line.52"></a>
<span class="sourceLineNo">053</span> }<a name="line.53"></a>
<span class="sourceLineNo">054</span> Thread.sleep(10000);<a name="line.54"></a>
-<span class="sourceLineNo">055</span> restartHBaseCluster(utility1, NUM_SLAVES1);<a name="line.55"></a>
+<span class="sourceLineNo">055</span> restartHBaseCluster(utility1, 1);<a name="line.55"></a>
<span class="sourceLineNo">056</span> Admin hbaseAdmin = utility1.getAdmin();<a name="line.56"></a>
<span class="sourceLineNo">057</span> ServerName serverName = utility1.getHBaseCluster().getRegionServer(0).getServerName();<a name="line.57"></a>
<span class="sourceLineNo">058</span> Thread.sleep(10000);<a name="line.58"></a>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNewOp.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNewOp.html
index 92cac82..984ccb4 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNewOp.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNewOp.html
@@ -54,7 +54,7 @@
<span class="sourceLineNo">046</span> @Test<a name="line.46"></a>
<span class="sourceLineNo">047</span> public void testReplicationStatusSourceStartedTargetStoppedNewOp() throws Exception {<a name="line.47"></a>
<span class="sourceLineNo">048</span> utility2.shutdownMiniHBaseCluster();<a name="line.48"></a>
-<span class="sourceLineNo">049</span> restartHBaseCluster(utility1, NUM_SLAVES1);<a name="line.49"></a>
+<span class="sourceLineNo">049</span> restartHBaseCluster(utility1, 1);<a name="line.49"></a>
<span class="sourceLineNo">050</span> Admin hbaseAdmin = utility1.getAdmin();<a name="line.50"></a>
<span class="sourceLineNo">051</span> // add some values to source cluster<a name="line.51"></a>
<span class="sourceLineNo">052</span> for (int i = 0; i < NB_ROWS_IN_BATCH; i++) {<a name="line.52"></a>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html
index 34e67b1..3e3d244 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedNoOps.html
@@ -49,9 +49,9 @@
<span class="sourceLineNo">041</span> HBaseClassTestRule.forClass(TestReplicationStatusSourceStartedTargetStoppedNoOps.class);<a name="line.41"></a>
<span class="sourceLineNo">042</span><a name="line.42"></a>
<span class="sourceLineNo">043</span> @Test<a name="line.43"></a>
-<span class="sourceLineNo">044</span> public void c() throws Exception {<a name="line.44"></a>
+<span class="sourceLineNo">044</span> public void testReplicationStatusSourceStartedTargetStoppedNoOps() throws Exception {<a name="line.44"></a>
<span class="sourceLineNo">045</span> utility2.shutdownMiniHBaseCluster();<a name="line.45"></a>
-<span class="sourceLineNo">046</span> restartHBaseCluster(utility1, NUM_SLAVES1);<a name="line.46"></a>
+<span class="sourceLineNo">046</span> restartHBaseCluster(utility1, 1);<a name="line.46"></a>
<span class="sourceLineNo">047</span> Admin hbaseAdmin = utility1.getAdmin();<a name="line.47"></a>
<span class="sourceLineNo">048</span> ServerName serverName = utility1.getHBaseCluster().getRegionServer(0).getServerName();<a name="line.48"></a>
<span class="sourceLineNo">049</span> Thread.sleep(10000);<a name="line.49"></a>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedWithRecovery.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedWithRecovery.html
index 35cd9f3..fa82c65 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedWithRecovery.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationStatusSourceStartedTargetStoppedWithRecovery.html
@@ -62,7 +62,7 @@
<span class="sourceLineNo">054</span> htable1.put(p);<a name="line.54"></a>
<span class="sourceLineNo">055</span> }<a name="line.55"></a>
<span class="sourceLineNo">056</span> Thread.sleep(10000);<a name="line.56"></a>
-<span class="sourceLineNo">057</span> restartHBaseCluster(utility1, NUM_SLAVES1);<a name="line.57"></a>
+<span class="sourceLineNo">057</span> restartHBaseCluster(utility1, 1);<a name="line.57"></a>
<span class="sourceLineNo">058</span> Admin hbaseAdmin = utility1.getAdmin();<a name="line.58"></a>
<span class="sourceLineNo">059</span> ServerName serverName = utility1.getHBaseCluster().getRegionServer(0).getServerName();<a name="line.59"></a>
<span class="sourceLineNo">060</span> Thread.sleep(10000);<a name="line.60"></a>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFutureUtils.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFutureUtils.html
new file mode 100644
index 0000000..1daddea
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFutureUtils.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements. See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership. The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License. You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> * http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.util;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import static org.hamcrest.CoreMatchers.startsWith;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.junit.Assert.assertEquals;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import static org.junit.Assert.assertThat;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import static org.junit.Assert.assertTrue;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import static org.junit.Assert.fail;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.concurrent.CompletableFuture;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.concurrent.ExecutorService;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.concurrent.Executors;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.stream.Stream;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.junit.After;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.junit.Before;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.ClassRule;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.Test;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.experimental.categories.Category;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>@Category({ MiscTests.class, SmallTests.class })<a name="line.43"></a>
+<span class="sourceLineNo">044</span>public class TestFutureUtils {<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span> @ClassRule<a name="line.46"></a>
+<span class="sourceLineNo">047</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.47"></a>
+<span class="sourceLineNo">048</span> HBaseClassTestRule.forClass(TestFutureUtils.class);<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span> private ExecutorService executor;<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span> @Before<a name="line.52"></a>
+<span class="sourceLineNo">053</span> public void setUp() {<a name="line.53"></a>
+<span class="sourceLineNo">054</span> executor = Executors.newFixedThreadPool(1, new ThreadFactoryBuilder().setDaemon(true).build());<a name="line.54"></a>
+<span class="sourceLineNo">055</span> }<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span> @After<a name="line.57"></a>
+<span class="sourceLineNo">058</span> public void tearDown() {<a name="line.58"></a>
+<span class="sourceLineNo">059</span> executor.shutdownNow();<a name="line.59"></a>
+<span class="sourceLineNo">060</span> }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span> @Test<a name="line.62"></a>
+<span class="sourceLineNo">063</span> public void testRecordStackTrace() throws IOException {<a name="line.63"></a>
+<span class="sourceLineNo">064</span> CompletableFuture<Void> future = new CompletableFuture<>();<a name="line.64"></a>
+<span class="sourceLineNo">065</span> executor.execute(() -> future.completeExceptionally(new HBaseIOException("Inject error!")));<a name="line.65"></a>
+<span class="sourceLineNo">066</span> try {<a name="line.66"></a>
+<span class="sourceLineNo">067</span> FutureUtils.get(future);<a name="line.67"></a>
+<span class="sourceLineNo">068</span> fail("The future should have been completed exceptionally");<a name="line.68"></a>
+<span class="sourceLineNo">069</span> } catch (HBaseIOException e) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span> assertEquals("Inject error!", e.getMessage());<a name="line.70"></a>
+<span class="sourceLineNo">071</span> StackTraceElement[] elements = e.getStackTrace();<a name="line.71"></a>
+<span class="sourceLineNo">072</span> assertThat(elements[0].toString(), startsWith("java.lang.Thread.getStackTrace"));<a name="line.72"></a>
+<span class="sourceLineNo">073</span> assertThat(elements[1].toString(),<a name="line.73"></a>
+<span class="sourceLineNo">074</span> startsWith("org.apache.hadoop.hbase.util.FutureUtils.setStackTrace"));<a name="line.74"></a>
+<span class="sourceLineNo">075</span> assertThat(elements[2].toString(),<a name="line.75"></a>
+<span class="sourceLineNo">076</span> startsWith("org.apache.hadoop.hbase.util.FutureUtils.rethrow"));<a name="line.76"></a>
+<span class="sourceLineNo">077</span> assertThat(elements[3].toString(),<a name="line.77"></a>
+<span class="sourceLineNo">078</span> startsWith("org.apache.hadoop.hbase.util.FutureUtils.get"));<a name="line.78"></a>
+<span class="sourceLineNo">079</span> assertThat(elements[4].toString(),<a name="line.79"></a>
+<span class="sourceLineNo">080</span> startsWith("org.apache.hadoop.hbase.util.TestFutureUtils.testRecordStackTrace"));<a name="line.80"></a>
+<span class="sourceLineNo">081</span> assertTrue(Stream.of(elements)<a name="line.81"></a>
+<span class="sourceLineNo">082</span> .anyMatch(element -> element.toString().contains("--------Future.get--------")));<a name="line.82"></a>
+<span class="sourceLineNo">083</span> }<a name="line.83"></a>
+<span class="sourceLineNo">084</span> }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>}<a name="line.85"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>