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 2020/04/20 14:45:17 UTC
[hbase-site] branch asf-site updated: Published site at
bcacc4ce939e60fd69891df6315a39aef852b567.
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 bfc2932 Published site at bcacc4ce939e60fd69891df6315a39aef852b567.
bfc2932 is described below
commit bfc2932c1c1de1df31a7bcc876a54422f020d148
Author: jenkins <bu...@apache.org>
AuthorDate: Mon Apr 20 14:44:43 2020 +0000
Published site at bcacc4ce939e60fd69891df6315a39aef852b567.
---
acid-semantics.html | 2 +-
apache_hbase_reference_guide.pdf | 4 +-
book.html | 2 +-
bulk-loads.html | 2 +-
checkstyle-aggregate.html | 10 +-
coc.html | 2 +-
dependencies.html | 2 +-
dependency-convergence.html | 2 +-
dependency-info.html | 2 +-
dependency-management.html | 2 +-
devapidocs/constant-values.html | 4 +-
.../src-html/org/apache/hadoop/hbase/Version.html | 4 +-
.../hbase/master/snapshot/SnapshotManager.html | 2 +-
downloads.html | 2 +-
export_control.html | 2 +-
index.html | 2 +-
issue-tracking.html | 2 +-
mail-lists.html | 2 +-
metrics.html | 2 +-
old_news.html | 2 +-
plugin-management.html | 2 +-
plugins.html | 2 +-
poweredbyhbase.html | 2 +-
project-info.html | 2 +-
project-reports.html | 2 +-
project-summary.html | 2 +-
pseudo-distributed.html | 2 +-
replication.html | 2 +-
resources.html | 2 +-
source-repository.html | 2 +-
sponsors.html | 2 +-
supportingprojects.html | 2 +-
team-list.html | 2 +-
testdevapidocs/index-all.html | 10 +
.../apache/hadoop/hbase/backup/package-tree.html | 2 +-
.../SnapshotWithAclTestBase.AccessReadAction.html | 12 +-
...pshotWithAclTestBase.AccessSnapshotAction.html} | 52 +-
.../SnapshotWithAclTestBase.AccessWriteAction.html | 12 +-
.../hbase/client/SnapshotWithAclTestBase.html | 70 ++-
.../hadoop/hbase/client/TestSnapshotWithAcl.html | 4 +-
.../client/TestSnapshotWithAclAsyncAdmin.html | 4 +-
...apshotWithAclTestBase.AccessSnapshotAction.html | 125 +++++
.../hadoop/hbase/client/package-summary.html | 552 ++++++++++-----------
.../apache/hadoop/hbase/client/package-tree.html | 1 +
.../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 +-
.../access/SecureTestUtil.AccessTestAction.html | 2 +-
.../class-use/SecureTestUtil.AccessTestAction.html | 4 +
.../org/apache/hadoop/hbase/test/package-tree.html | 2 +-
.../org/apache/hadoop/hbase/wal/package-tree.html | 2 +-
testdevapidocs/overview-tree.html | 1 +
.../SnapshotWithAclTestBase.AccessReadAction.html | 456 +++++++++--------
...apshotWithAclTestBase.AccessSnapshotAction.html | 347 +++++++++++++
.../SnapshotWithAclTestBase.AccessWriteAction.html | 456 +++++++++--------
.../hbase/client/SnapshotWithAclTestBase.html | 456 +++++++++--------
57 files changed, 1657 insertions(+), 1013 deletions(-)
diff --git a/acid-semantics.html b/acid-semantics.html
index 1f94158..b2200b8 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -467,7 +467,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 cfa0e8c..0bf29fd 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.rc.2, based on Prawn 2.2.2)
/Producer (Apache HBase Team)
-/ModDate (D:20200418143108+00'00')
-/CreationDate (D:20200418144327+00'00')
+/ModDate (D:20200420143113+00'00')
+/CreationDate (D:20200420144156+00'00')
>>
endobj
2 0 obj
diff --git a/book.html b/book.html
index 42e999a..e58f574 100644
--- a/book.html
+++ b/book.html
@@ -45200,7 +45200,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 2020-04-18 14:31:08 UTC
+Last updated 2020-04-20 14:31:13 UTC
</div>
</div>
<script type="text/x-mathjax-config">
diff --git a/bulk-loads.html b/bulk-loads.html
index 5209fd3..36d166f 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -172,7 +172,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 6a2b400..4e925c4 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7369,7 +7369,7 @@
<tr class="a">
<td>annotation</td>
<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_annotation.html#MissingDeprecated">MissingDeprecated</a></td>
-<td>9</td>
+<td>10</td>
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td></tr>
<tr class="b">
<td>blocks</td>
@@ -7468,7 +7468,7 @@
<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>596</td>
+<td>595</td>
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td></tr>
<tr class="b">
<td></td>
@@ -8500,8 +8500,8 @@
<td>600</td></tr>
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
-<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>annotation</td>
+<td>MissingDeprecated</td>
<td>Javadoc comment at column 33 has parse error. Details: no viable alternative at input '<Map.Entry<' while parsing HTML_ELEMENT</td>
<td>642</td></tr>
<tr class="a">
@@ -80038,7 +80038,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/coc.html b/coc.html
index 2315597..f36203e 100644
--- a/coc.html
+++ b/coc.html
@@ -241,7 +241,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 f6baa6a..169e853 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -313,7 +313,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 f7054a4..c1b36c3 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -755,7 +755,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 90cfdf4..d487181 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -194,7 +194,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 3810e44..9019e2d 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -1061,7 +1061,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 0f20426..565fccd 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -4165,14 +4165,14 @@
<!-- -->
</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>"Sat Apr 18 14:40:01 UTC 2020"</code></td>
+<td class="colLast"><code>"Mon Apr 20 14:38:13 UTC 2020"</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
<!-- -->
</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#revision">revision</a></code></td>
-<td class="colLast"><code>"2846ea4700d1802e6ec907a99087d0b24806ce51"</code></td>
+<td class="colLast"><code>"bcacc4ce939e60fd69891df6315a39aef852b567"</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index f6b137e..2614afe 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -18,9 +18,9 @@
<span class="sourceLineNo">010</span> justification="Intentional; to be modified in test")<a name="line.10"></a>
<span class="sourceLineNo">011</span>public class Version {<a name="line.11"></a>
<span class="sourceLineNo">012</span> public static final String version = new String("3.0.0-SNAPSHOT");<a name="line.12"></a>
-<span class="sourceLineNo">013</span> public static final String revision = "2846ea4700d1802e6ec907a99087d0b24806ce51";<a name="line.13"></a>
+<span class="sourceLineNo">013</span> public static final String revision = "bcacc4ce939e60fd69891df6315a39aef852b567";<a name="line.13"></a>
<span class="sourceLineNo">014</span> public static final String user = "jenkins";<a name="line.14"></a>
-<span class="sourceLineNo">015</span> public static final String date = "Sat Apr 18 14:40:01 UTC 2020";<a name="line.15"></a>
+<span class="sourceLineNo">015</span> public static final String date = "Mon Apr 20 14:38:13 UTC 2020";<a name="line.15"></a>
<span class="sourceLineNo">016</span> public static final String url = "git://jenkins-websites-he-de.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.16"></a>
<span class="sourceLineNo">017</span> public static final String srcChecksum = "(stdin)=";<a name="line.17"></a>
<span class="sourceLineNo">018</span>}<a name="line.18"></a>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html
index e9e68e4..91249d6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html
@@ -643,7 +643,7 @@
<span class="sourceLineNo">635</span> builder.setVersion(SnapshotDescriptionUtils.SNAPSHOT_LAYOUT_VERSION);<a name="line.635"></a>
<span class="sourceLineNo">636</span> }<a name="line.636"></a>
<span class="sourceLineNo">637</span> RpcServer.getRequestUser().ifPresent(user -> {<a name="line.637"></a>
-<span class="sourceLineNo">638</span> if (User.isHBaseSecurityEnabled(master.getConfiguration())) {<a name="line.638"></a>
+<span class="sourceLineNo">638</span> if (AccessChecker.isAuthorizationSupported(master.getConfiguration())) {<a name="line.638"></a>
<span class="sourceLineNo">639</span> builder.setOwner(user.getShortName());<a name="line.639"></a>
<span class="sourceLineNo">640</span> }<a name="line.640"></a>
<span class="sourceLineNo">641</span> });<a name="line.641"></a>
diff --git a/downloads.html b/downloads.html
index 0e0cef0..9c7bd0b 100644
--- a/downloads.html
+++ b/downloads.html
@@ -465,7 +465,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 174bff4..277d454 100644
--- a/export_control.html
+++ b/export_control.html
@@ -197,7 +197,7 @@ for more details.</p>
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 5d3f1eb..c9a935c 100644
--- a/index.html
+++ b/index.html
@@ -275,7 +275,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/issue-tracking.html b/issue-tracking.html
index c7cd45c..436266a 100644
--- a/issue-tracking.html
+++ b/issue-tracking.html
@@ -169,7 +169,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/mail-lists.html b/mail-lists.html
index 618bf4f..c9f46df 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -229,7 +229,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 e3ab136..62b3833 100644
--- a/metrics.html
+++ b/metrics.html
@@ -325,7 +325,7 @@ export HBASE_REGIONSERVER_OPTS="$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 68c4472..1f1e896 100644
--- a/old_news.html
+++ b/old_news.html
@@ -316,7 +316,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 212548c..05fc7a5 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -321,7 +321,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 03b3058..ac677c9 100644
--- a/plugins.html
+++ b/plugins.html
@@ -248,7 +248,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 37c2b29..c50b1f4 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -650,7 +650,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 f1d12f8..a1c0538 100644
--- a/project-info.html
+++ b/project-info.html
@@ -210,7 +210,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 bbe2597..68645d2 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -186,7 +186,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/project-summary.html b/project-summary.html
index 811c654..2a0c1b0 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -212,7 +212,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 abbe999..ecc4f6a 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -174,7 +174,7 @@ Running Apache HBase (TM) in pseudo-distributed mode
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 b163ca6..7bc06d2 100644
--- a/replication.html
+++ b/replication.html
@@ -169,7 +169,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 1a3dcd5..2732889 100644
--- a/resources.html
+++ b/resources.html
@@ -197,7 +197,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/source-repository.html b/source-repository.html
index 1111d14..e737a8d 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -180,7 +180,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 4389fd7..2910a94 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -199,7 +199,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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 01fa77c..8c8aaa6 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -390,7 +390,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</li>
</p>
</div>
<p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/team-list.html b/team-list.html
index 265c3cd..364a9c9 100644
--- a/team-list.html
+++ b/team-list.html
@@ -701,7 +701,7 @@
<div class="row">
<p>Copyright ©2007–2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-18</li>
+All rights reserved. <li id="publishDate" class="pull-right">Last Published: 2020-04-20</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/index-all.html b/testdevapidocs/index-all.html
index 2836f56..095cdea 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -434,6 +434,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#AccessReadAction-org.apache.hadoop.hbase.TableName-">AccessReadAction(TableName)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html#AccessSnapshotAction-java.lang.String-">AccessSnapshotAction(String)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessSnapshotAction</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/client/RemoteAdmin.html#accessToken">accessToken</a></span> - Variable in class org.apache.hadoop.hbase.rest.client.<a href="org/apache/hadoop/hbase/rest/client/RemoteAdmin.html" title="class in org.apache.hadoop.hbase.rest.client">RemoteAdmin</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html#AccessWriteAction-org.apache.hadoop.hbase.TableName-">AccessWriteAction(TableName)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessWriteAction</a></dt>
@@ -39788,6 +39790,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#run--">run()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html#run--">run()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessSnapshotAction</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html#run--">run()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessWriteAction</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreaded.html#run-java.util.concurrent.atomic.AtomicBoolean-">run(AtomicBoolean)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreaded.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableGetMultiThreaded</a></dt>
@@ -44839,6 +44843,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.SnapshotMock.html#SnapshotMock-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">SnapshotMock(Configuration, FileSystem, Path)</a></span> - Constructor for class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.SnapshotMock.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotTestingUtils.S [...]
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html#snapshotName">snapshotName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessSnapshotAction</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.html#snapshotName">snapshotName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotCloneIndependence</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ScanPerformanceEvaluation.html#snapshotName">snapshotName</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ScanPerformanceEvaluation.html" title="class in org.apache.hadoop.hbase">ScanPerformanceEvaluation</a></dt>
@@ -44909,6 +44915,8 @@
<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotWithAclTestBase.AccessReadAction</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotWithAclTestBase.AccessSnapshotAction</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
+<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotWithAclTestBase.AccessWriteAction</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/TestRpcServerSlowConnectionSetup.html#socket">socket</a></span> - Variable in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/TestRpcServerSlowConnectionSetup.html" title="class in org.apache.hadoop.hbase.ipc">TestRpcServerSlowConnectionSetup</a></dt>
@@ -56051,6 +56059,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.html#testDeleteSingleTimestamp--">testDeleteSingleTimestamp()</a></span> - Method in class org.apache.hadoop.hbase.thrift2.<a href="org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.html" title="class in org.apache.hadoop.hbase.thrift2">TestThriftHBaseServiceHandler</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#testDeleteSnapshot--">testDeleteSnapshot()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestSnapshotFromMaster.html#testDeleteSnapshot--">testDeleteSnapshot()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestSnapshotFromMaster.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestSnapshotFromMaster</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html#testDeleteSnapshots--">testDeleteSnapshots()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncSnapshotAdminApi</a></dt>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index fa6650a..88e37d3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -150,8 +150,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.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
</ul>
</li>
</ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html b/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html
index 398e02e..9ca7101 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" target="_top">Frames</a></li>
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.61">SnapshotWithAclTestBase.AccessReadAction</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.64">SnapshotWithAclTestBase.AccessReadAction</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestAction</a></pre>
</li>
@@ -206,7 +206,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<ul class="blockListLast">
<li class="blockList">
<h4>tableName</h4>
-<pre>private org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#line.63">tableName</a></pre>
+<pre>private org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#line.66">tableName</a></pre>
</li>
</ul>
</li>
@@ -223,7 +223,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<ul class="blockListLast">
<li class="blockList">
<h4>AccessReadAction</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#line.65">AccessReadAction</a>(org.apache.hadoop.hbase.TableName tableName)</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#line.68">AccessReadAction</a>(org.apache.hadoop.hbase.TableName tableName)</pre>
</li>
</ul>
</li>
@@ -240,7 +240,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<ul class="blockListLast">
<li class="blockList">
<h4>run</h4>
-<pre>public <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> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#line.70">run</a>()
+<pre>public <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> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#line.73">run</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="overrideSpecifyLabel">Specified by:</span></dt>
@@ -279,7 +279,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" target="_top">Frames</a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html b/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html
similarity index 81%
copy from testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html
copy to testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html
index 398e02e..1eb3df7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html
@@ -4,7 +4,7 @@
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>SnapshotWithAclTestBase.AccessReadAction (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<title>SnapshotWithAclTestBase.AccessSnapshotAction (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,7 +12,7 @@
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="SnapshotWithAclTestBase.AccessReadAction (Apache HBase 3.0.0-SNAPSHOT Test API)";
+ parent.document.title="SnapshotWithAclTestBase.AccessSnapshotAction (Apache HBase 3.0.0-SNAPSHOT Test API)";
}
}
catch(err) {
@@ -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/SnapshotWithAclTestBase.AccessReadAction.html">Use</a></li>
+<li><a href="class-use/SnapshotWithAclTestBase.AccessSnapshotAction.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/client/SnapshotWithAclTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" target="_top">Frames</a></li>
-<li><a href="SnapshotWithAclTestBase.AccessReadAction.html" target="_top">No Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" target="_top">Frames</a></li>
+<li><a href="SnapshotWithAclTestBase.AccessSnapshotAction.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>
@@ -93,14 +93,14 @@ var activeTableTab = "activeTableTab";
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.client</div>
-<h2 title="Class SnapshotWithAclTestBase.AccessReadAction" class="title">Class SnapshotWithAclTestBase.AccessReadAction</h2>
+<h2 title="Class SnapshotWithAclTestBase.AccessSnapshotAction" class="title">Class SnapshotWithAclTestBase.AccessSnapshotAction</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>org.apache.hadoop.hbase.client.SnapshotWithAclTestBase.AccessReadAction</li>
+<li>org.apache.hadoop.hbase.client.SnapshotWithAclTestBase.AccessSnapshotAction</li>
</ul>
</li>
</ul>
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.61">SnapshotWithAclTestBase.AccessReadAction</a>
+<pre>final class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.236">SnapshotWithAclTestBase.AccessSnapshotAction</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestAction</a></pre>
</li>
@@ -139,8 +139,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>private org.apache.hadoop.hbase.TableName</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#tableName">tableName</a></span></code> </td>
+<td class="colFirst"><code>private <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 class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html#snapshotName">snapshotName</a></span></code> </td>
</tr>
</table>
</li>
@@ -154,10 +154,12 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#AccessReadAction-org.apache.hadoop.hbase.TableName-">AccessReadAction</a></span>(org.apache.hadoop.hbase.TableName tableName)</code> </td>
+<td class="colFirst"><code>private </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html#AccessSnapshotAction-java.lang.String-">AccessSnapshotAction</a></span>(<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> snapshotName)</code> </td>
</tr>
</table>
</li>
@@ -176,7 +178,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><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></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#run--">run</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html#run--">run</a></span>()</code> </td>
</tr>
</table>
<ul class="blockList">
@@ -200,13 +202,13 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<!-- -->
</a>
<h3>Field Detail</h3>
-<a name="tableName">
+<a name="snapshotName">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
-<h4>tableName</h4>
-<pre>private org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#line.63">tableName</a></pre>
+<h4>snapshotName</h4>
+<pre>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html#line.237">snapshotName</a></pre>
</li>
</ul>
</li>
@@ -217,13 +219,13 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<!-- -->
</a>
<h3>Constructor Detail</h3>
-<a name="AccessReadAction-org.apache.hadoop.hbase.TableName-">
+<a name="AccessSnapshotAction-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
-<h4>AccessReadAction</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#line.65">AccessReadAction</a>(org.apache.hadoop.hbase.TableName tableName)</pre>
+<h4>AccessSnapshotAction</h4>
+<pre>private <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html#line.238">AccessSnapshotAction</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> snapshotName)</pre>
</li>
</ul>
</li>
@@ -240,7 +242,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<ul class="blockListLast">
<li class="blockList">
<h4>run</h4>
-<pre>public <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> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html#line.70">run</a>()
+<pre>public <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> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html#line.242">run</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="overrideSpecifyLabel">Specified by:</span></dt>
@@ -269,7 +271,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<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/SnapshotWithAclTestBase.AccessReadAction.html">Use</a></li>
+<li><a href="class-use/SnapshotWithAclTestBase.AccessSnapshotAction.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>
@@ -278,12 +280,12 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" target="_top">Frames</a></li>
-<li><a href="SnapshotWithAclTestBase.AccessReadAction.html" target="_top">No Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" target="_top">Frames</a></li>
+<li><a href="SnapshotWithAclTestBase.AccessSnapshotAction.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/client/SnapshotWithAclTestBase.AccessWriteAction.html b/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html
index f05c934..57dc102 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.81">SnapshotWithAclTestBase.AccessWriteAction</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.84">SnapshotWithAclTestBase.AccessWriteAction</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestAction</a></pre>
</li>
@@ -206,7 +206,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<ul class="blockListLast">
<li class="blockList">
<h4>tableName</h4>
-<pre>private org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html#line.82">tableName</a></pre>
+<pre>private org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html#line.85">tableName</a></pre>
</li>
</ul>
</li>
@@ -223,7 +223,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<ul class="blockListLast">
<li class="blockList">
<h4>AccessWriteAction</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html#line.84">AccessWriteAction</a>(org.apache.hadoop.hbase.TableName tableName)</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html#line.87">AccessWriteAction</a>(org.apache.hadoop.hbase.TableName tableName)</pre>
</li>
</ul>
</li>
@@ -240,7 +240,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
<ul class="blockListLast">
<li class="blockList">
<h4>run</h4>
-<pre>public <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> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html#line.89">run</a>()
+<pre>public <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> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html#line.92">run</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="overrideSpecifyLabel">Specified by:</span></dt>
@@ -278,7 +278,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/security/access/Secur
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html
index bbb0ecc..4f20fa5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":6,"i1":10,"i2":6,"i3":10,"i4":9,"i5":6,"i6":9,"i7":10,"i8":10};
+var methods = {"i0":6,"i1":10,"i2":6,"i3":10,"i4":9,"i5":6,"i6":9,"i7":10,"i8":10,"i9":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.40">SnapshotWithAclTestBase</a>
+<pre>public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.43">SnapshotWithAclTestBase</a>
extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.html" title="class in org.apache.hadoop.hbase.security.access">SecureTestUtil</a></pre>
</li>
</ul>
@@ -143,6 +143,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a></span></code> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>(package private) class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessSnapshotAction</a></span></code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>(package private) static class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessWriteAction</a></span></code> </td>
</tr>
@@ -274,9 +278,13 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#testRestoreSnapshot--">testRestoreSnapshot</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#testDeleteSnapshot--">testDeleteSnapshot</a></span>()</code> </td>
</tr>
<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#testRestoreSnapshot--">testRestoreSnapshot</a></span>()</code> </td>
+</tr>
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#verifyRows-org.apache.hadoop.hbase.TableName-">verifyRows</a></span>(org.apache.hadoop.hbase.TableName tableName)</code> </td>
</tr>
@@ -315,7 +323,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>TEST_TABLE</h4>
-<pre>private org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.42">TEST_TABLE</a></pre>
+<pre>private org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.45">TEST_TABLE</a></pre>
</li>
</ul>
<a name="ROW_COUNT">
@@ -324,7 +332,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>ROW_COUNT</h4>
-<pre>private static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.44">ROW_COUNT</a></pre>
+<pre>private static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.47">ROW_COUNT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.SnapshotWithAclTestBase.ROW_COUNT">Constant Field Values</a></dd>
@@ -337,7 +345,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>TEST_FAMILY</h4>
-<pre>private static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.46">TEST_FAMILY</a></pre>
+<pre>private static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.49">TEST_FAMILY</a></pre>
</li>
</ul>
<a name="TEST_QUALIFIER">
@@ -346,7 +354,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>TEST_QUALIFIER</h4>
-<pre>private static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.47">TEST_QUALIFIER</a></pre>
+<pre>private static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.50">TEST_QUALIFIER</a></pre>
</li>
</ul>
<a name="TEST_ROW">
@@ -355,7 +363,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>TEST_ROW</h4>
-<pre>private static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.48">TEST_ROW</a></pre>
+<pre>private static byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.51">TEST_ROW</a></pre>
</li>
</ul>
<a name="TEST_UTIL">
@@ -364,7 +372,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>TEST_UTIL</h4>
-<pre>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.50">TEST_UTIL</a></pre>
+<pre>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.53">TEST_UTIL</a></pre>
</li>
</ul>
<a name="USER_OWNER">
@@ -373,7 +381,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>USER_OWNER</h4>
-<pre>private static org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.53">USER_OWNER</a></pre>
+<pre>private static org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.56">USER_OWNER</a></pre>
</li>
</ul>
<a name="USER_RW">
@@ -382,7 +390,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>USER_RW</h4>
-<pre>private static org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.55">USER_RW</a></pre>
+<pre>private static org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.58">USER_RW</a></pre>
</li>
</ul>
<a name="USER_RO">
@@ -391,7 +399,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>USER_RO</h4>
-<pre>private static org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.57">USER_RO</a></pre>
+<pre>private static org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.60">USER_RO</a></pre>
</li>
</ul>
<a name="USER_NONE">
@@ -400,7 +408,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockListLast">
<li class="blockList">
<h4>USER_NONE</h4>
-<pre>private static org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.59">USER_NONE</a></pre>
+<pre>private static org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.62">USER_NONE</a></pre>
</li>
</ul>
</li>
@@ -417,7 +425,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockListLast">
<li class="blockList">
<h4>SnapshotWithAclTestBase</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.40">SnapshotWithAclTestBase</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.43">SnapshotWithAclTestBase</a>()</pre>
</li>
</ul>
</li>
@@ -434,7 +442,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>setupBeforeClass</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.101">setupBeforeClass</a>()
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.104">setupBeforeClass</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>
@@ -448,7 +456,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>setUp</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.123">setUp</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.126">setUp</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>
@@ -462,7 +470,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>loadData</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.137">loadData</a>()
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.140">loadData</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>
@@ -476,7 +484,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>tearDownAfterClass</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.150">tearDownAfterClass</a>()
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.153">tearDownAfterClass</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>
@@ -490,7 +498,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>verifyRows</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.154">verifyRows</a>(org.apache.hadoop.hbase.TableName tableName)
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.157">verifyRows</a>(org.apache.hadoop.hbase.TableName tableName)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -504,7 +512,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>snapshot</h4>
-<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.167">snapshot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> snapshotName,
+<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.170">snapshot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> snapshotName,
org.apache.hadoop.hbase.TableName tableName)
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>
@@ -519,7 +527,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>cloneSnapshot</h4>
-<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.169">cloneSnapshot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> snapshotName,
+<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.172">cloneSnapshot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> snapshotName,
org.apache.hadoop.hbase.TableName tableName,
boolean restoreAcl)
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>
@@ -535,7 +543,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<ul class="blockList">
<li class="blockList">
<h4>restoreSnapshot</h4>
-<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.172">restoreSnapshot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> snapshotName,
+<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.175">restoreSnapshot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> snapshotName,
boolean restoreAcl)
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>
@@ -547,10 +555,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
<a name="testRestoreSnapshot--">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>testRestoreSnapshot</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.175">testRestoreSnapshot</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.178">testRestoreSnapshot</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>
@@ -558,6 +566,20 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
</dl>
</li>
</ul>
+<a name="testDeleteSnapshot--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testDeleteSnapshot</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#line.252">testDeleteSnapshot</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>
+</dl>
+</li>
+</ul>
</li>
</ul>
</li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestSnapshotWithAcl.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestSnapshotWithAcl.html
index 281aa80..b8f54d3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestSnapshotWithAcl.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestSnapshotWithAcl.html
@@ -138,7 +138,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTe
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessWriteAction</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessSnapshotAction</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessW [...]
</ul>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.security.access.SecureTestUtil">
@@ -226,7 +226,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTe
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#setUp--">setUp</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#setupBeforeClass--">setupBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#testRestoreSnapshot--">testRestoreSnapshot [...]
+<code><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#setUp--">setUp</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#setupBeforeClass--">setupBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#testDeleteSnapshot--">testDeleteSnapshot</ [...]
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.security.access.SecureTestUtil">
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestSnapshotWithAclAsyncAdmin.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestSnapshotWithAclAsyncAdmin.html
index c27e3d7..8a649e6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestSnapshotWithAclAsyncAdmin.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestSnapshotWithAclAsyncAdmin.html
@@ -138,7 +138,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTe
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessWriteAction</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessSnapshotAction</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessW [...]
</ul>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.security.access.SecureTestUtil">
@@ -226,7 +226,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTe
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#setUp--">setUp</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#setupBeforeClass--">setupBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#testRestoreSnapshot--">testRestoreSnapshot [...]
+<code><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#setUp--">setUp</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#setupBeforeClass--">setupBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html#testDeleteSnapshot--">testDeleteSnapshot</ [...]
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.security.access.SecureTestUtil">
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/SnapshotWithAclTestBase.AccessSnapshotAction.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/SnapshotWithAclTestBase.AccessSnapshotAction.html
new file mode 100644
index 0000000..50095c1
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/SnapshotWithAclTestBase.AccessSnapshotAction.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.client.SnapshotWithAclTestBase.AccessSnapshotAction (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.client.SnapshotWithAclTestBase.AccessSnapshotAction (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/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client">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/client/class-use/SnapshotWithAclTestBase.AccessSnapshotAction.html" target="_top">Frames</a></li>
+<li><a href="SnapshotWithAclTestBase.AccessSnapshotAction.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.client.SnapshotWithAclTestBase.AccessSnapshotAction" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.SnapshotWithAclTestBase.AccessSnapshotAction</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.SnapshotWithAclTestBase.AccessSnapshotAction</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/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client">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/client/class-use/SnapshotWithAclTestBase.AccessSnapshotAction.html" target="_top">Frames</a></li>
+<li><a href="SnapshotWithAclTestBase.AccessSnapshotAction.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–2020 <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/client/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
index c7c19c8..7757bcd 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
@@ -303,1153 +303,1153 @@
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessWriteAction</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin.html" title="class in org.apache.hadoop.hbase.client">TestAdmin</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin1.html" title="class in org.apache.hadoop.hbase.client">TestAdmin1</a></td>
<td class="colLast">
<div class="block">Class to test HBaseAdmin.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin2.html" title="class in org.apache.hadoop.hbase.client">TestAdmin2</a></td>
<td class="colLast">
<div class="block">Class to test HBaseAdmin.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin3.html" title="class in org.apache.hadoop.hbase.client">TestAdmin3</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdminBase.html" title="class in org.apache.hadoop.hbase.client">TestAdminBase</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdminShell.html" title="class in org.apache.hadoop.hbase.client">TestAdminShell</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdminShell2.html" title="class in org.apache.hadoop.hbase.client">TestAdminShell2</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAllowPartialScanResultCache.html" title="class in org.apache.hadoop.hbase.client">TestAllowPartialScanResultCache</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAlwaysSetScannerId.html" title="class in org.apache.hadoop.hbase.client">TestAlwaysSetScannerId</a></td>
<td class="colLast">
<div class="block">Testcase to make sure that we always set scanner id in ScanResponse.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAppendFromClientSide.html" title="class in org.apache.hadoop.hbase.client">TestAppendFromClientSide</a></td>
<td class="colLast">
<div class="block">Run Append tests that use the HBase clients;</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAccessControlAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAccessControlAdminApi</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBase.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBase</a></td>
<td class="colLast">
<div class="block">Class to test AsyncAdmin.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBuilder</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestMaxRetriesCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBuilder.TestMaxRetriesCoprocessor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestOperationTimeoutCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBuilder.TestOperationTimeoutCoprocessor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestRpcTimeoutCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBuilder.TestRpcTimeoutCoprocessor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminMasterSwitch.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminMasterSwitch</a></td>
<td class="colLast">
<div class="block">Testcase for HBASE-22135.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminRpcPriority.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminRpcPriority</a></td>
<td class="colLast">
<div class="block">Confirm that we will set the priority in <code>HBaseRpcController</code> for several admin operations.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminWithRegionReplicas</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAggregationClient.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAggregationClient</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncBufferMutator.html" title="class in org.apache.hadoop.hbase.client">TestAsyncBufferMutator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncBufferMutator.AsyncBufferMutatorForTest.html" title="class in org.apache.hadoop.hbase.client">TestAsyncBufferMutator.AsyncBufferMutatorForTest</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClientPauseForCallQueueTooBig.html" title="class in org.apache.hadoop.hbase.client">TestAsyncClientPauseForCallQueueTooBig</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClientPauseForCallQueueTooBig.CQTBERpcScheduler.html" title="class in org.apache.hadoop.hbase.client">TestAsyncClientPauseForCallQueueTooBig.CQTBERpcScheduler</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClientPauseForCallQueueTooBig.CQTBERpcSchedulerFactory.html" title="class in org.apache.hadoop.hbase.client">TestAsyncClientPauseForCallQueueTooBig.CQTBERpcSchedulerFactory</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClientPushback.html" title="class in org.apache.hadoop.hbase.client">TestAsyncClientPushback</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncClusterAdminApi</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi2.html" title="class in org.apache.hadoop.hbase.client">TestAsyncClusterAdminApi2</a></td>
<td class="colLast">
<div class="block">Only used to test stopMaster/stopRegionServer/shutdown methods.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncDecommissionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncDecommissionAdminApi</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncMetaRegionLocator.html" title="class in org.apache.hadoop.hbase.client">TestAsyncMetaRegionLocator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncMetaRegionLocatorFailFast.html" title="class in org.apache.hadoop.hbase.client">TestAsyncMetaRegionLocatorFailFast</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncMetaRegionLocatorFailFast.FaultyConnectionRegistry.html" title="class in org.apache.hadoop.hbase.client">TestAsyncMetaRegionLocatorFailFast.FaultyConnectionRegistry</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNamespaceAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncNamespaceAdminApi</a></td>
<td class="colLast">
<div class="block">Class to test asynchronous namespace admin operations.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocator.html" title="class in org.apache.hadoop.hbase.client">TestAsyncNonMetaRegionLocator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocatorConcurrenyLimit.html" title="class in org.apache.hadoop.hbase.client">TestAsyncNonMetaRegionLocatorConcurrenyLimit</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocatorConcurrenyLimit.CountingRegionObserver.html" title="class in org.apache.hadoop.hbase.client">TestAsyncNonMetaRegionLocatorConcurrenyLimit.CountingRegionObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcedureAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcedureAdminApi</a></td>
<td class="colLast">
<div class="block">Class to test asynchronous procedure admin operations.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncQuotaAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncQuotaAdminApi</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></td>
<td class="colLast">
<div class="block">Class to test asynchronous region admin operations.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi2</a></td>
<td class="colLast">
<div class="block">Class to test asynchronous region admin operations.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionLocator.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionLocator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionLocator.SleepRegionObserver.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionLocator.SleepRegionObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncReplicationAdminApi</a></td>
<td class="colLast">
<div class="block">Class to test asynchronous replication admin operations.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApiWithClusters.html" title="class in org.apache.hadoop.hbase.client">TestAsyncReplicationAdminApiWithClusters</a></td>
<td class="colLast">
<div class="block">Class to test asynchronous replication admin operations when more than 1 cluster</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncResultScannerCursor.html" title="class in org.apache.hadoop.hbase.client">TestAsyncResultScannerCursor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.html" title="class in org.apache.hadoop.hbase.client">TestAsyncSingleRequestRpcRetryingCaller</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncSnapshotAdminApi</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTable.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTable</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableAdminApi</a></td>
<td class="colLast">
<div class="block">Class to test asynchronous table admin operations.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi2.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableAdminApi2</a></td>
<td class="colLast">
<div class="block">Class to test asynchronous table admin operations</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi3.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableAdminApi3</a></td>
<td class="colLast">
<div class="block">Class to test asynchronous table admin operations.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableBatch.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableBatch</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableBatch.ErrorInjectObserver.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableBatch.ErrorInjectObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableBatchRetryImmediately.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableBatchRetryImmediately</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreaded.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableGetMultiThreaded</a></td>
<td class="colLast">
<div class="block">Will split the table, and move region randomly when testing.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreadedWithBasicCompaction.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableGetMultiThreadedWithBasicCompaction</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreadedWithEagerCompaction.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableGetMultiThreadedWithEagerCompaction</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableLocatePrefetch.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableLocatePrefetch</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableLocateRegionForDeletedTable.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableLocateRegionForDeletedTable</a></td>
<td class="colLast">
<div class="block">Fix an infinite loop in <code>AsyncNonMetaRegionLocator</code>, see the comments on HBASE-21943 for
more details.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableNoncedRetry.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableNoncedRetry</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableNoncedRetry.SleepOnceCP.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableNoncedRetry.SleepOnceCP</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableRegionLocator.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableRegionLocator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableRegionReplicasGet.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableRegionReplicasGet</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableRegionReplicasScan.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableRegionReplicasScan</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableRpcPriority.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableRpcPriority</a></td>
<td class="colLast">
<div class="block">Confirm that we will set the priority in <code>HBaseRpcController</code> for several table operations.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableRSCrashPublish.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableRSCrashPublish</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScan.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScan</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanAll.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanAll</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanException.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanException</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanException.ErrorCP.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanException.ErrorCP</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanMetrics.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanMetrics</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanner.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanner</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScannerCloseWhileSuspending.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScannerCloseWhileSuspending</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanRenewLease.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanRenewLease</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanRenewLease.RenewLeaseConsumer.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanRenewLease.RenewLeaseConsumer</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableUseMetaReplicas.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableUseMetaReplicas</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableUseMetaReplicas.FailPrimaryMetaScanCp.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableUseMetaReplicas.FailPrimaryMetaScanCp</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncToolAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncToolAdminApi</a></td>
<td class="colLast">
<div class="block">Test the admin operations for Balancer, Normalizer, CleanerChore, and CatalogJanitor.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAttributes.html" title="class in org.apache.hadoop.hbase.client">TestAttributes</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.html" title="class in org.apache.hadoop.hbase.client">TestAvoidCellReferencesIntoShippedBlocks</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.CompactorInternalScanner.html" title="class in org.apache.hadoop.hbase.client">TestAvoidCellReferencesIntoShippedBlocks.CompactorInternalScanner</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.CompactorRegionObserver.html" title="class in org.apache.hadoop.hbase.client">TestAvoidCellReferencesIntoShippedBlocks.CompactorRegionObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.ScannerThread.html" title="class in org.apache.hadoop.hbase.client">TestAvoidCellReferencesIntoShippedBlocks.ScannerThread</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBatchScanResultCache.html" title="class in org.apache.hadoop.hbase.client">TestBatchScanResultCache</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.CustomInnerRegionObserver.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.CustomInnerRegionObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.CustomInnerRegionObserverWrapper.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.CustomInnerRegionObserverWrapper</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.CustomScanner.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.CustomScanner</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.GetThread.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.GetThread</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.MultiGetThread.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.MultiGetThread</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.ScanThread.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.ScanThread</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutator.html" title="class in org.apache.hadoop.hbase.client">TestBufferedMutator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutatorParams.html" title="class in org.apache.hadoop.hbase.client">TestBufferedMutatorParams</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutatorParams.MockExceptionListener.html" title="class in org.apache.hadoop.hbase.client">TestBufferedMutatorParams.MockExceptionListener</a></td>
<td class="colLast">
<div class="block">Just to create an instance, this doesn't actually function.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">TestCheckAndMutate</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIBadHostname.html" title="class in org.apache.hadoop.hbase.client">TestCIBadHostname</a></td>
<td class="colLast">
<div class="block">Tests that we fail fast when hostname resolution is not working and do not cache unresolved
InetSocketAddresses.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteOperationTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIDeleteOperationTimeout</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteRpcTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIDeleteRpcTimeout</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIGetOperationTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIGetOperationTimeout</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIGetRpcTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIGetRpcTimeout</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIIncrementRpcTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIIncrementRpcTimeout</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutOperationTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIPutOperationTimeout</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutRpcTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIPutRpcTimeout</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCISleep.html" title="class in org.apache.hadoop.hbase.client">TestCISleep</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientExponentialBackoff.html" title="class in org.apache.hadoop.hbase.client">TestClientExponentialBackoff</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientOperationInterrupt.html" title="class in org.apache.hadoop.hbase.client">TestClientOperationInterrupt</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientOperationInterrupt.TestCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestClientOperationInterrupt.TestCoprocessor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html" title="class in org.apache.hadoop.hbase.client">TestClientScannerRPCTimeout</a></td>
<td class="colLast">
<div class="block">Test the scenario where a HRegionServer#scan() call, while scanning, timeout at client side and
getting retried.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.RegionServerWithScanTimeout.html" title="class in org.apache.hadoop.hbase.client">TestClientScannerRPCTimeout.RegionServerWithScanTimeout</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.RSRpcServicesWithScanTimeout.html" title="class in org.apache.hadoop.hbase.client">TestClientScannerRPCTimeout.RSRpcServicesWithScanTimeout</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutBlockingRpcChannel.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts.RandomTimeoutBlockingRpcChannel</a></td>
<td class="colLast">
<div class="block">Blocking rpc channel that goes via hbase rpc.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcChannel.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts.RandomTimeoutRpcChannel</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts.RandomTimeoutRpcClient</a></td>
<td class="colLast">
<div class="block">Rpc Channel implementation with RandomTimeoutBlockingRpcChannel</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientAfterSplittingRegion</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientError</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientNormal</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TestColumnFamilyDescriptorBuilder</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorLowerCaseEnum.html" title="class in org.apache.hadoop.hbase.client">TestColumnFamilyDescriptorLowerCaseEnum</a></td>
<td class="colLast">
<div class="block">Testcase for HBASE-21732.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCompleteResultScanResultCache.html" title="class in org.apache.hadoop.hbase.client">TestCompleteResultScanResultCache</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnection.html" title="class in org.apache.hadoop.hbase.client">TestConnection</a></td>
<td class="colLast">
<div class="block">This class is for testing <code>Connection</code>.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionRegistryLeak.html" title="class in org.apache.hadoop.hbase.client">TestConnectionRegistryLeak</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionRegistryLeak.ConnectionRegistryForTest.html" title="class in org.apache.hadoop.hbase.client">TestConnectionRegistryLeak.ConnectionRegistryForTest</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionUtils.html" title="class in org.apache.hadoop.hbase.client">TestConnectionUtils</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCoprocessorDescriptor.html" title="class in org.apache.hadoop.hbase.client">TestCoprocessorDescriptor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestDeleteTimeStamp.html" title="class in org.apache.hadoop.hbase.client">TestDeleteTimeStamp</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestDropTimeoutRequest.html" title="class in org.apache.hadoop.hbase.client">TestDropTimeoutRequest</a></td>
<td class="colLast">
<div class="block">Test a drop timeout request.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestDropTimeoutRequest.SleepLongerAtFirstCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestDropTimeoutRequest.SleepLongerAtFirstCoprocessor</a></td>
<td class="colLast">
<div class="block">Coprocessor that sleeps a while the first time you do a Get</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.html" title="class in org.apache.hadoop.hbase.client">TestEnableTable</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.MasterSyncObserver.html" title="class in org.apache.hadoop.hbase.client">TestEnableTable.MasterSyncObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFlushFromClient.html" title="class in org.apache.hadoop.hbase.client">TestFlushFromClient</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide</a></td>
<td class="colLast">
<div class="block">Run tests that use the HBase clients; <code>Table</code>.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide3.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide3</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide3.WaitingForMultiMutationsObserver.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide3.WaitingForMultiMutationsObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide3.WaitingForScanObserver.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide3.WaitingForScanObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide4.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide4</a></td>
<td class="colLast">
<div class="block">Run tests that use the HBase clients; <code>Table</code>.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide5.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide5</a></td>
<td class="colLast">
<div class="block">Run tests that use the HBase clients; <code>Table</code>.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideNoCodec.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideNoCodec</a></td>
<td class="colLast">
<div class="block">Do some ops and prove that client and server can work w/o codecs; that we can pb all the time.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideScanExcpetion</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.MyHRegion.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideScanExcpetion.MyHRegion</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.MyHStore.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideScanExcpetion.MyHStore</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.MyStoreScanner.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideScanExcpetion.MyStoreScanner</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetionWithCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideScanExcpetionWithCoprocessor</a></td>
<td class="colLast">
<div class="block">Test all client operations with a coprocessor that just implements the default flush/compact/scan
policy.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideWithCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideWithCoprocessor</a></td>
<td class="colLast">
<div class="block">Test all client operations with a coprocessor that just implements the default flush/compact/scan
policy.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideWithCoprocessor4.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideWithCoprocessor4</a></td>
<td class="colLast">
<div class="block">Test all client operations with a coprocessor that just implements the default flush/compact/scan
policy.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideWithCoprocessor5.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideWithCoprocessor5</a></td>
<td class="colLast">
<div class="block">Test all client operations with a coprocessor that just implements the default flush/compact/scan
policy.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestGet.html" title="class in org.apache.hadoop.hbase.client">TestGet</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetProcedureResult.html" title="class in org.apache.hadoop.hbase.client">TestGetProcedureResult</a></td>
<td class="colLast">
<div class="block">Testcase for HBASE-19608.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetProcedureResult.DummyProcedure.html" title="class in org.apache.hadoop.hbase.client">TestGetProcedureResult.DummyProcedure</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetScanColumnsWithNewVersionBehavior.html" title="class in org.apache.hadoop.hbase.client">TestGetScanColumnsWithNewVersionBehavior</a></td>
<td class="colLast">
<div class="block">Testcase for HBASE-21032, where use the wrong readType from a Scan instance which is actually a
get scan and cause returning only 1 cell per rpc call.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetScanPartialResult.html" title="class in org.apache.hadoop.hbase.client">TestGetScanPartialResult</a></td>
<td class="colLast">
<div class="block">Testcase for HBASE-21032, where use the wrong readType from a Scan instance which is actually a
get scan and cause returning only 1 cell per rpc call.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestHbck.html" title="class in org.apache.hadoop.hbase.client">TestHbck</a></td>
<td class="colLast">
<div class="block">Class to test HBaseHbck.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestHbck.FailingMergeAfterMetaUpdatedMasterObserver.html" title="class in org.apache.hadoop.hbase.client">TestHbck.FailingMergeAfterMetaUpdatedMasterObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestHbck.FailingSplitAfterMetaUpdatedMasterObserver.html" title="class in org.apache.hadoop.hbase.client">TestHbck.FailingSplitAfterMetaUpdatedMasterObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestHbck.SuspendProcedure.html" title="class in org.apache.hadoop.hbase.client">TestHbck.SuspendProcedure</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.html" title="class in org.apache.hadoop.hbase.client">TestIllegalTableDescriptor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrement.html" title="class in org.apache.hadoop.hbase.client">TestIncrement</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrementFromClientSideWithCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestIncrementFromClientSideWithCoprocessor</a></td>
<td class="colLast">
<div class="block">Test all <code>Increment</code> client operations with a coprocessor that
just implements the default flush/compact/scan policy.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrementsFromClientSide.html" title="class in org.apache.hadoop.hbase.client">TestIncrementsFromClientSide</a></td>
<td class="colLast">
<div class="block">Run Increment tests that use the HBase clients; <code>TableBuilder</code>.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestInterfaceAlign.html" title="class in org.apache.hadoop.hbase.client">TestInterfaceAlign</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestIntraRowPagination.html" title="class in org.apache.hadoop.hbase.client">TestIntraRowPagination</a></td>
<td class="colLast">
<div class="block">Test scan/get offset and limit settings within one row through HRegion API.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestInvalidMutationDurabilityException.html" title="class in org.apache.hadoop.hbase.client">TestInvalidMutationDurabilityException</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestLimitedScanWithFilter.html" title="class in org.apache.hadoop.hbase.client">TestLimitedScanWithFilter</a></td>
<td class="colLast">
<div class="block">With filter we may stop at a middle of row and think that we still have more cells for the
current row but actually all the remaining cells will be filtered out by the filter.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMalformedCellFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMalformedCellFromClient</a></td>
<td class="colLast">
<div class="block">The purpose of this test is to ensure whether rs deals with the malformed cells correctly.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMasterRegistry.html" title="class in org.apache.hadoop.hbase.client">TestMasterRegistry</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.CallQueueTooBigExceptionInjector</a></td>
<td class="colLast">
<div class="block">Throws CallQueueTooBigException for all gets.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.ExceptionInjector</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.FakeRSRpcServices</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.RegionServerWithFakeRpcServices</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.RoundRobinExceptionInjector</a></td>
<td class="colLast">
<div class="block">Rotates through the possible cache clearing and non-cache clearing exceptions
for requests.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaRegionLocationCache.html" title="class in org.apache.hadoop.hbase.client">TestMetaRegionLocationCache</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaTableAccessorNoCluster.html" title="class in org.apache.hadoop.hbase.client">TestMetaTableAccessorNoCluster</a></td>
<td class="colLast">
<div class="block">Test MetaTableAccessor but without spinning up a cluster.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaWithReplicas.html" title="class in org.apache.hadoop.hbase.client">TestMetaWithReplicas</a></td>
<td class="colLast">
<div class="block">Tests the scenarios where replicas are enabled for the meta table</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetricsConnection.html" title="class in org.apache.hadoop.hbase.client">TestMetricsConnection</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</a></td>
<td class="colLast">
<div class="block">This coprocessor is used to delay the flush.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClientAfterSplittingRegions.html" title="class in org.apache.hadoop.hbase.client">TestMobRestoreSnapshotFromClientAfterSplittingRegions</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClientAfterTruncate.html" title="class in org.apache.hadoop.hbase.client">TestMobRestoreSnapshotFromClientAfterTruncate</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClientClone.html" title="class in org.apache.hadoop.hbase.client">TestMobRestoreSnapshotFromClientClone</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClientGetCompactionState.html" title="class in org.apache.hadoop.hbase.client">TestMobRestoreSnapshotFromClientGetCompactionState</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClientSchemaChange.html" title="class in org.apache.hadoop.hbase.client">TestMobRestoreSnapshotFromClientSchemaChange</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClientSimple.html" title="class in org.apache.hadoop.hbase.client">TestMobRestoreSnapshotFromClientSimple</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html" title="class in org.apache.hadoop.hbase.client">TestMobSnapshotCloneIndependence</a></td>
<td class="colLast">
<div class="block">Test to verify that the cloned table is independent of the table from which it was cloned</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobSnapshotFromClient</a></td>
<td class="colLast">
<div class="block">Test create/using/deleting snapshots from the client</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMultiActionMetricsFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMultiActionMetricsFromClient</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMultiParallel.html" title="class in org.apache.hadoop.hbase.client">TestMultiParallel</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html" title="class in org.apache.hadoop.hbase.client">TestMultiParallel.MyMasterObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMultipleTimestamps.html" title="class in org.apache.hadoop.hbase.client">TestMultipleTimestamps</a></td>
<td class="colLast">
<div class="block">Run tests related to <code>TimestampsFilter</code> using HBase client APIs.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMultiRespectsLimits.html" title="class in org.apache.hadoop.hbase.client">TestMultiRespectsLimits</a></td>
<td class="colLast">
<div class="block">This test sets the multi size WAAAAAY low and then checks to make sure that gets will still make
progress.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMutation.html" title="class in org.apache.hadoop.hbase.client">TestMutation</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMutationGetCellBuilder.html" title="class in org.apache.hadoop.hbase.client">TestMutationGetCellBuilder</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMvccConsistentScanner.html" title="class in org.apache.hadoop.hbase.client">TestMvccConsistentScanner</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestOperation.html" title="class in org.apache.hadoop.hbase.client">TestOperation</a></td>
<td class="colLast">
<div class="block">Run tests that use the functionality of the Operation superclass for
Puts, Gets, Deletes, Scans, and MultiPuts.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutDeleteEtcCellIteration.html" title="class in org.apache.hadoop.hbase.client">TestPutDeleteEtcCellIteration</a></td>
<td class="colLast">
<div class="block">Test that I can Iterate Client Actions that hold Cells (Get does not have Cells).</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutDotHas.html" title="class in org.apache.hadoop.hbase.client">TestPutDotHas</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutWithDelete.html" title="class in org.apache.hadoop.hbase.client">TestPutWithDelete</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutWriteToWal.html" title="class in org.apache.hadoop.hbase.client">TestPutWriteToWal</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestQuotasShell.html" title="class in org.apache.hadoop.hbase.client">TestQuotasShell</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncScanCursor.html" title="class in org.apache.hadoop.hbase.client">TestRawAsyncScanCursor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTableLimitedScanWithFilter.html" title="class in org.apache.hadoop.hbase.client">TestRawAsyncTableLimitedScanWithFilter</a></td>
<td class="colLast">
<div class="block">With filter we may stop at a middle of row and think that we still have more cells for the
current row but actually all the remaining cells will be filtered out by the filter.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTablePartialScan.html" title="class in org.apache.hadoop.hbase.client">TestRawAsyncTablePartialScan</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTableScan.html" title="class in org.apache.hadoop.hbase.client">TestRawAsyncTableScan</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRegionInfoDisplay.html" title="class in org.apache.hadoop.hbase.client">TestRegionInfoDisplay</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRegionLocationCaching.html" title="class in org.apache.hadoop.hbase.client">TestRegionLocationCaching</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRegionLocator.html" title="class in org.apache.hadoop.hbase.client">TestRegionLocator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicasClient.html" title="class in org.apache.hadoop.hbase.client">TestReplicasClient</a></td>
<td class="colLast">
<div class="block">Tests for region replicas.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicasClient.SlowMeCopro.html" title="class in org.apache.hadoop.hbase.client">TestReplicasClient.SlowMeCopro</a></td>
<td class="colLast">
<div class="block">This copro is used to synchronize the tests.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicationShell.html" title="class in org.apache.hadoop.hbase.client">TestReplicationShell</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicaWithCluster.html" title="class in org.apache.hadoop.hbase.client">TestReplicaWithCluster</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html" title="class in org.apache.hadoop.hbase.client">TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro</a></td>
<td class="colLast">
<div class="block">This copro is used to slow down the primary meta region scan a bit</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html" title="class in org.apache.hadoop.hbase.client">TestReplicaWithCluster.RegionServerStoppedCopro</a></td>
<td class="colLast">
<div class="block">This copro is used to simulate region server down exception for Get and Scan</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html" title="class in org.apache.hadoop.hbase.client">TestReplicaWithCluster.SlowMeCopro</a></td>
<td class="colLast">
<div class="block">This copro is used to synchronize the tests.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientAfterSplittingRegions.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClientAfterSplittingRegions</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientAfterTruncate.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClientAfterTruncate</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientClone.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClientClone</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientGetCompactionState.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClientGetCompactionState</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientSchemaChange.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClientSchemaChange</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientSimple.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClientSimple</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestResult.html" title="class in org.apache.hadoop.hbase.client">TestResult</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestResultFromCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestResultFromCoprocessor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestResultFromCoprocessor.MyObserver.html" title="class in org.apache.hadoop.hbase.client">TestResultFromCoprocessor.MyObserver</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestResultScannerCursor.html" title="class in org.apache.hadoop.hbase.client">TestResultScannerCursor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestResultSizeEstimation.html" title="class in org.apache.hadoop.hbase.client">TestResultSizeEstimation</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestResultStatsUtil.html" title="class in org.apache.hadoop.hbase.client">TestResultStatsUtil</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRetriesExhaustedWithDetailsException.html" title="class in org.apache.hadoop.hbase.client">TestRetriesExhaustedWithDetailsException</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRowComparator.html" title="class in org.apache.hadoop.hbase.client">TestRowComparator</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRpcControllerFactory.html" title="class in org.apache.hadoop.hbase.client">TestRpcControllerFactory</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRpcControllerFactory.CountingRpcController.html" title="class in org.apache.hadoop.hbase.client">TestRpcControllerFactory.CountingRpcController</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRpcControllerFactory.StaticRpcControllerFactory.html" title="class in org.apache.hadoop.hbase.client">TestRpcControllerFactory.StaticRpcControllerFactory</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestRSGroupShell.html" title="class in org.apache.hadoop.hbase.client">TestRSGroupShell</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestScan.html" title="class in org.apache.hadoop.hbase.client">TestScan</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide.html" title="class in org.apache.hadoop.hbase.client">TestScannersFromClientSide</a></td>
<td class="colLast">
<div class="block">A client-side test, mostly testing scanners with various parameters.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide.LimitKVsReturnFilter.html" title="class in org.apache.hadoop.hbase.client">TestScannersFromClientSide.LimitKVsReturnFilter</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide2.html" title="class in org.apache.hadoop.hbase.client">TestScannersFromClientSide2</a></td>
<td class="colLast">
<div class="block">Testcase for newly added feature in HBASE-17143, such as startRow and stopRow
inclusive/exclusive, limit for rows, etc.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannerTimeout.html" title="class in org.apache.hadoop.hbase.client">TestScannerTimeout</a></td>
<td class="colLast">
<div class="block">Test various scanner timeout issues.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestScanWithoutFetchingData.html" title="class in org.apache.hadoop.hbase.client">TestScanWithoutFetchingData</a></td>
<td class="colLast">
<div class="block">Testcase to make sure that we do not close scanners if ScanRequest.numberOfRows is zero.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSeparateClientZKCluster.html" title="class in org.apache.hadoop.hbase.client">TestSeparateClientZKCluster</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerBusyException.html" title="class in org.apache.hadoop.hbase.client">TestServerBusyException</a></td>
<td class="colLast">
<div class="block">This class is for testing HBaseConnectionManager ServerBusyException.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerBusyException.SleepCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestServerBusyException.SleepCoprocessor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerBusyException.SleepLongerAtFirstCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestServerBusyException.SleepLongerAtFirstCoprocessor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerBusyException.TestGetThread.html" title="class in org.apache.hadoop.hbase.client">TestServerBusyException.TestGetThread</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerBusyException.TestPutThread.html" title="class in org.apache.hadoop.hbase.client">TestServerBusyException.TestPutThread</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerLoadDurability.html" title="class in org.apache.hadoop.hbase.client">TestServerLoadDurability</a></td>
<td class="colLast">
<div class="block">HBASE-19496 noticed that the RegionLoad/ServerLoad may be corrupted if rpc server
@@ -1457,127 +1457,127 @@
invoke HMaster to iterate all stored server/region loads.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestShell.html" title="class in org.apache.hadoop.hbase.client">TestShell</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestShellNoCluster.html" title="class in org.apache.hadoop.hbase.client">TestShellNoCluster</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSimpleRequestController.html" title="class in org.apache.hadoop.hbase.client">TestSimpleRequestController</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSizeFailures.html" title="class in org.apache.hadoop.hbase.client">TestSizeFailures</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSmallReversedScanner.html" title="class in org.apache.hadoop.hbase.client">TestSmallReversedScanner</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotCloneIndependence</a></td>
<td class="colLast">
<div class="block">Test to verify that the cloned table is independent of the table from which it was cloned</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotDFSTemporaryDirectory.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotDFSTemporaryDirectory</a></td>
<td class="colLast">
<div class="block">This class tests that the use of a temporary snapshot directory supports snapshot functionality
while the temporary directory is on the same file system as the root directory</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotFromClient</a></td>
<td class="colLast">
<div class="block">Test create/using/deleting snapshots from the client</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotFromClientWithRegionReplicas</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotMetadata.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotMetadata</a></td>
<td class="colLast">
<div class="block">Test class to verify that metadata is consistent before and after a snapshot attempt.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotTemporaryDirectory.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotTemporaryDirectory</a></td>
<td class="colLast">
<div class="block">This class tests that the use of a temporary snapshot directory supports snapshot functionality
while the temporary directory is on a different file system than the root directory</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotTemporaryDirectoryWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotTemporaryDirectoryWithRegionReplicas</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotWithAcl.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotWithAcl</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotWithAclAsyncAdmin.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotWithAclAsyncAdmin</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSplitOrMergeAtTableLevel.html" title="class in org.apache.hadoop.hbase.client">TestSplitOrMergeAtTableLevel</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.html" title="class in org.apache.hadoop.hbase.client">TestSplitOrMergeStatus</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorBuilder</a></td>
<td class="colLast">
<div class="block">Test setting values in the descriptor.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorUtils</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client">TestTableFavoredNodes</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableOperationException.html" title="class in org.apache.hadoop.hbase.client">TestTableOperationException</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableOperationException.ThrowDoNotRetryIOExceptionCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestTableOperationException.ThrowDoNotRetryIOExceptionCoprocessor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableOperationException.ThrowIOExceptionCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestTableOperationException.ThrowIOExceptionCoprocessor</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableShell.html" title="class in org.apache.hadoop.hbase.client">TestTableShell</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client">TestTableSnapshotScanner</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTimestampsFilter.html" title="class in org.apache.hadoop.hbase.client">TestTimestampsFilter</a></td>
<td class="colLast">
<div class="block">Run tests related to <code>TimestampsFilter</code> using HBase client APIs.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestUpdateConfiguration.html" title="class in org.apache.hadoop.hbase.client">TestUpdateConfiguration</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestZKConnectionRegistry.html" title="class in org.apache.hadoop.hbase.client">TestZKConnectionRegistry</a></td>
<td class="colLast"> </td>
</tr>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
index 5a57fda..699a901 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -413,6 +413,7 @@
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SimpleScanResultConsumer.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SimpleScanResultConsumer</span></a> (implements org.apache.hadoop.hbase.client.ScanResultConsumer)</li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SleepAtFirstRpcCall.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SleepAtFirstRpcCall</span></a> (implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver)</li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotWithAclTestBase.AccessReadAction</span></a> (implements org.apache.hadoop.hbase.security.access.<a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access" [...]
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotWithAclTestBase.AccessSnapshotAction</span></a> (implements org.apache.hadoop.hbase.security.access.<a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security [...]
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotWithAclTestBase.AccessWriteAction</span></a> (implements org.apache.hadoop.hbase.security.access.<a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.acces [...]
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestAdminBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestAdminBase</span></a>
<ul>
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 d4d7436..f32920e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -165,8 +165,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/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>
+<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>
</ul>
</li>
</ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index d4e4034..824027a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -620,15 +620,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/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/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/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/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/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/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/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/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/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/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/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/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/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</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 180fd43..358bddc 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/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>
<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>
</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 10e6ec4..8460c25 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -719,11 +719,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/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/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>
+<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/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
</ul>
</li>
</ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html b/testdevapidocs/org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html
index dc31242..363608b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html
@@ -99,7 +99,7 @@
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessWriteAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/security/access/TestAccessController. [...]
+<dd><a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessSnapshotAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase. [...]
</dl>
<dl>
<dt>Enclosing class:</dt>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/security/access/class-use/SecureTestUtil.AccessTestAction.html b/testdevapidocs/org/apache/hadoop/hbase/security/access/class-use/SecureTestUtil.AccessTestAction.html
index 1595066..728367c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/security/access/class-use/SecureTestUtil.AccessTestAction.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/security/access/class-use/SecureTestUtil.AccessTestAction.html
@@ -115,6 +115,10 @@
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessReadAction</a></span></code> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>(package private) class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessSnapshotAction</a></span></code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>(package private) static class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client">SnapshotWithAclTestBase.AccessWriteAction</a></span></code> </td>
</tr>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index 74c2878..93c7d15 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.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/wal/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index da87dd9..45aafc7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -164,8 +164,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.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>
-<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/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
</ul>
</li>
</ul>
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index 9e11a97..8546427 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -2514,6 +2514,7 @@
<li type="circle">org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.SnapshotMock.RegionData.html" title="class in org.apache.hadoop.hbase.snapshot"><span class="typeNameLink">SnapshotTestingUtils.SnapshotMock.RegionData</span></a></li>
<li type="circle">org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.SnapshotMock.SnapshotBuilder.html" title="class in org.apache.hadoop.hbase.snapshot"><span class="typeNameLink">SnapshotTestingUtils.SnapshotMock.SnapshotBuilder</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotWithAclTestBase.AccessReadAction</span></a> (implements org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestActi [...]
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotWithAclTestBase.AccessSnapshotAction</span></a> (implements org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.Access [...]
<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotWithAclTestBase.AccessWriteAction</span></a> (implements org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestAc [...]
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceQuotaHelperForTests.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceQuotaHelperForTests</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceQuotaHelperForTests.NoFilesToDischarge.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceQuotaHelperForTests.NoFilesToDischarge</span></a> (implements org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Waiter.Predicate.html" title="interface in org.apache.hadoop.hbase">Waiter.Predicate</a><E>)</li>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html
index 08ec907..cf1c9e9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessReadAction.html
@@ -26,217 +26,261 @@
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.hadoop.conf.Configuration;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.TableName;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.security.User;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.security.access.AccessControlConstants;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.security.access.PermissionStorage;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.junit.AfterClass;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.Assert;<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.BeforeClass;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.Test;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>public abstract class SnapshotWithAclTestBase extends SecureTestUtil {<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span> private TableName TEST_TABLE = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.42"></a>
-<span class="sourceLineNo">043</span><a name="line.43"></a>
-<span class="sourceLineNo">044</span> private static final int ROW_COUNT = 30000;<a name="line.44"></a>
-<span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span> private static byte[] TEST_FAMILY = Bytes.toBytes("f1");<a name="line.46"></a>
-<span class="sourceLineNo">047</span> private static byte[] TEST_QUALIFIER = Bytes.toBytes("cq");<a name="line.47"></a>
-<span class="sourceLineNo">048</span> private static byte[] TEST_ROW = Bytes.toBytes(0);<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span> protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span> // user is table owner. will have all permissions on table<a name="line.52"></a>
-<span class="sourceLineNo">053</span> private static User USER_OWNER;<a name="line.53"></a>
-<span class="sourceLineNo">054</span> // user with rw permissions on column family.<a name="line.54"></a>
-<span class="sourceLineNo">055</span> private static User USER_RW;<a name="line.55"></a>
-<span class="sourceLineNo">056</span> // user with read-only permissions<a name="line.56"></a>
-<span class="sourceLineNo">057</span> private static User USER_RO;<a name="line.57"></a>
-<span class="sourceLineNo">058</span> // user with none permissions<a name="line.58"></a>
-<span class="sourceLineNo">059</span> private static User USER_NONE;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span> static class AccessReadAction implements AccessTestAction {<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span> private TableName tableName;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span> public AccessReadAction(TableName tableName) {<a name="line.65"></a>
-<span class="sourceLineNo">066</span> this.tableName = tableName;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span> @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span> public Object run() throws Exception {<a name="line.70"></a>
-<span class="sourceLineNo">071</span> Get g = new Get(TEST_ROW);<a name="line.71"></a>
-<span class="sourceLineNo">072</span> g.addFamily(TEST_FAMILY);<a name="line.72"></a>
-<span class="sourceLineNo">073</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.73"></a>
-<span class="sourceLineNo">074</span> Table t = conn.getTable(tableName)) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span> t.get(g);<a name="line.75"></a>
-<span class="sourceLineNo">076</span> }<a name="line.76"></a>
-<span class="sourceLineNo">077</span> return null;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> }<a name="line.78"></a>
-<span class="sourceLineNo">079</span> }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span> static class AccessWriteAction implements AccessTestAction {<a name="line.81"></a>
-<span class="sourceLineNo">082</span> private TableName tableName;<a name="line.82"></a>
+<span class="sourceLineNo">021</span>import java.util.List;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.regex.Pattern;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.conf.Configuration;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.TableName;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.security.User;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.security.access.AccessControlConstants;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.security.access.PermissionStorage;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.AfterClass;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.Assert;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.Before;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.BeforeClass;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.Test;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>public abstract class SnapshotWithAclTestBase extends SecureTestUtil {<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span> private TableName TEST_TABLE = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span> private static final int ROW_COUNT = 30000;<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span> private static byte[] TEST_FAMILY = Bytes.toBytes("f1");<a name="line.49"></a>
+<span class="sourceLineNo">050</span> private static byte[] TEST_QUALIFIER = Bytes.toBytes("cq");<a name="line.50"></a>
+<span class="sourceLineNo">051</span> private static byte[] TEST_ROW = Bytes.toBytes(0);<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span> protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span> // user is table owner. will have all permissions on table<a name="line.55"></a>
+<span class="sourceLineNo">056</span> private static User USER_OWNER;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> // user with rw permissions on column family.<a name="line.57"></a>
+<span class="sourceLineNo">058</span> private static User USER_RW;<a name="line.58"></a>
+<span class="sourceLineNo">059</span> // user with read-only permissions<a name="line.59"></a>
+<span class="sourceLineNo">060</span> private static User USER_RO;<a name="line.60"></a>
+<span class="sourceLineNo">061</span> // user with none permissions<a name="line.61"></a>
+<span class="sourceLineNo">062</span> private static User USER_NONE;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span> static class AccessReadAction implements AccessTestAction {<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span> private TableName tableName;<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span> public AccessReadAction(TableName tableName) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span> this.tableName = tableName;<a name="line.69"></a>
+<span class="sourceLineNo">070</span> }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span> @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span> public Object run() throws Exception {<a name="line.73"></a>
+<span class="sourceLineNo">074</span> Get g = new Get(TEST_ROW);<a name="line.74"></a>
+<span class="sourceLineNo">075</span> g.addFamily(TEST_FAMILY);<a name="line.75"></a>
+<span class="sourceLineNo">076</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.76"></a>
+<span class="sourceLineNo">077</span> Table t = conn.getTable(tableName)) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span> t.get(g);<a name="line.78"></a>
+<span class="sourceLineNo">079</span> }<a name="line.79"></a>
+<span class="sourceLineNo">080</span> return null;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> }<a name="line.81"></a>
+<span class="sourceLineNo">082</span> }<a name="line.82"></a>
<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span> public AccessWriteAction(TableName tableName) {<a name="line.84"></a>
-<span class="sourceLineNo">085</span> this.tableName = tableName;<a name="line.85"></a>
-<span class="sourceLineNo">086</span> }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span> @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span> public Object run() throws Exception {<a name="line.89"></a>
-<span class="sourceLineNo">090</span> Put p = new Put(TEST_ROW);<a name="line.90"></a>
-<span class="sourceLineNo">091</span> p.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(0));<a name="line.91"></a>
-<span class="sourceLineNo">092</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.92"></a>
-<span class="sourceLineNo">093</span> Table t = conn.getTable(tableName)) {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> t.put(p);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> }<a name="line.95"></a>
-<span class="sourceLineNo">096</span> return null;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> }<a name="line.97"></a>
-<span class="sourceLineNo">098</span> }<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span> @BeforeClass<a name="line.100"></a>
-<span class="sourceLineNo">101</span> public static void setupBeforeClass() throws Exception {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> Configuration conf = TEST_UTIL.getConfiguration();<a name="line.102"></a>
-<span class="sourceLineNo">103</span> // Enable security<a name="line.103"></a>
-<span class="sourceLineNo">104</span> enableSecurity(conf);<a name="line.104"></a>
-<span class="sourceLineNo">105</span> conf.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, AccessController.class.getName());<a name="line.105"></a>
-<span class="sourceLineNo">106</span> // Verify enableSecurity sets up what we require<a name="line.106"></a>
-<span class="sourceLineNo">107</span> verifyConfiguration(conf);<a name="line.107"></a>
-<span class="sourceLineNo">108</span> // Enable EXEC permission checking<a name="line.108"></a>
-<span class="sourceLineNo">109</span> conf.setBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY, true);<a name="line.109"></a>
-<span class="sourceLineNo">110</span> TEST_UTIL.startMiniCluster();<a name="line.110"></a>
-<span class="sourceLineNo">111</span> TEST_UTIL.waitUntilAllRegionsAssigned(PermissionStorage.ACL_TABLE_NAME);<a name="line.111"></a>
-<span class="sourceLineNo">112</span> MasterCoprocessorHost cpHost =<a name="line.112"></a>
-<span class="sourceLineNo">113</span> TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterCoprocessorHost();<a name="line.113"></a>
-<span class="sourceLineNo">114</span> cpHost.load(AccessController.class, Coprocessor.PRIORITY_HIGHEST, conf);<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> USER_OWNER = User.createUserForTesting(conf, "owner", new String[0]);<a name="line.116"></a>
-<span class="sourceLineNo">117</span> USER_RW = User.createUserForTesting(conf, "rwuser", new String[0]);<a name="line.117"></a>
-<span class="sourceLineNo">118</span> USER_RO = User.createUserForTesting(conf, "rouser", new String[0]);<a name="line.118"></a>
-<span class="sourceLineNo">119</span> USER_NONE = User.createUserForTesting(conf, "usernone", new String[0]);<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> @Before<a name="line.122"></a>
-<span class="sourceLineNo">123</span> public void setUp() throws Exception {<a name="line.123"></a>
-<span class="sourceLineNo">124</span> TEST_UTIL.createTable(TableDescriptorBuilder.newBuilder(TEST_TABLE)<a name="line.124"></a>
-<span class="sourceLineNo">125</span> .setColumnFamily(<a name="line.125"></a>
-<span class="sourceLineNo">126</span> ColumnFamilyDescriptorBuilder.newBuilder(TEST_FAMILY).setMaxVersions(100).build())<a name="line.126"></a>
-<span class="sourceLineNo">127</span> .setOwner(USER_OWNER).build(), new byte[][] { Bytes.toBytes("s") });<a name="line.127"></a>
-<span class="sourceLineNo">128</span> TEST_UTIL.waitTableEnabled(TEST_TABLE);<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span> grantOnTable(TEST_UTIL, USER_RW.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.130"></a>
-<span class="sourceLineNo">131</span> Permission.Action.READ, Permission.Action.WRITE);<a name="line.131"></a>
+<span class="sourceLineNo">084</span> static class AccessWriteAction implements AccessTestAction {<a name="line.84"></a>
+<span class="sourceLineNo">085</span> private TableName tableName;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span> public AccessWriteAction(TableName tableName) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span> this.tableName = tableName;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span> @Override<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public Object run() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> Put p = new Put(TEST_ROW);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> p.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(0));<a name="line.94"></a>
+<span class="sourceLineNo">095</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.95"></a>
+<span class="sourceLineNo">096</span> Table t = conn.getTable(tableName)) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span> t.put(p);<a name="line.97"></a>
+<span class="sourceLineNo">098</span> }<a name="line.98"></a>
+<span class="sourceLineNo">099</span> return null;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> }<a name="line.100"></a>
+<span class="sourceLineNo">101</span> }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span> @BeforeClass<a name="line.103"></a>
+<span class="sourceLineNo">104</span> public static void setupBeforeClass() throws Exception {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> Configuration conf = TEST_UTIL.getConfiguration();<a name="line.105"></a>
+<span class="sourceLineNo">106</span> // Enable security<a name="line.106"></a>
+<span class="sourceLineNo">107</span> enableSecurity(conf);<a name="line.107"></a>
+<span class="sourceLineNo">108</span> conf.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, AccessController.class.getName());<a name="line.108"></a>
+<span class="sourceLineNo">109</span> // Verify enableSecurity sets up what we require<a name="line.109"></a>
+<span class="sourceLineNo">110</span> verifyConfiguration(conf);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> // Enable EXEC permission checking<a name="line.111"></a>
+<span class="sourceLineNo">112</span> conf.setBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span> TEST_UTIL.startMiniCluster();<a name="line.113"></a>
+<span class="sourceLineNo">114</span> TEST_UTIL.waitUntilAllRegionsAssigned(PermissionStorage.ACL_TABLE_NAME);<a name="line.114"></a>
+<span class="sourceLineNo">115</span> MasterCoprocessorHost cpHost =<a name="line.115"></a>
+<span class="sourceLineNo">116</span> TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterCoprocessorHost();<a name="line.116"></a>
+<span class="sourceLineNo">117</span> cpHost.load(AccessController.class, Coprocessor.PRIORITY_HIGHEST, conf);<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span> USER_OWNER = User.createUserForTesting(conf, "owner", new String[0]);<a name="line.119"></a>
+<span class="sourceLineNo">120</span> USER_RW = User.createUserForTesting(conf, "rwuser", new String[0]);<a name="line.120"></a>
+<span class="sourceLineNo">121</span> USER_RO = User.createUserForTesting(conf, "rouser", new String[0]);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> USER_NONE = User.createUserForTesting(conf, "usernone", new String[0]);<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> @Before<a name="line.125"></a>
+<span class="sourceLineNo">126</span> public void setUp() throws Exception {<a name="line.126"></a>
+<span class="sourceLineNo">127</span> TEST_UTIL.createTable(TableDescriptorBuilder.newBuilder(TEST_TABLE)<a name="line.127"></a>
+<span class="sourceLineNo">128</span> .setColumnFamily(<a name="line.128"></a>
+<span class="sourceLineNo">129</span> ColumnFamilyDescriptorBuilder.newBuilder(TEST_FAMILY).setMaxVersions(100).build())<a name="line.129"></a>
+<span class="sourceLineNo">130</span> .setOwner(USER_OWNER).build(), new byte[][] { Bytes.toBytes("s") });<a name="line.130"></a>
+<span class="sourceLineNo">131</span> TEST_UTIL.waitTableEnabled(TEST_TABLE);<a name="line.131"></a>
<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span> grantOnTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.133"></a>
-<span class="sourceLineNo">134</span> Permission.Action.READ);<a name="line.134"></a>
-<span class="sourceLineNo">135</span> }<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> private void loadData() throws IOException {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration())) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span> try (Table t = conn.getTable(TEST_TABLE)) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> for (int i = 0; i < ROW_COUNT; i++) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span> Put put = new Put(Bytes.toBytes(i));<a name="line.141"></a>
-<span class="sourceLineNo">142</span> put.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(i));<a name="line.142"></a>
-<span class="sourceLineNo">143</span> t.put(put);<a name="line.143"></a>
-<span class="sourceLineNo">144</span> }<a name="line.144"></a>
-<span class="sourceLineNo">145</span> }<a name="line.145"></a>
-<span class="sourceLineNo">146</span> }<a name="line.146"></a>
-<span class="sourceLineNo">147</span> }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span> @AfterClass<a name="line.149"></a>
-<span class="sourceLineNo">150</span> public static void tearDownAfterClass() throws Exception {<a name="line.150"></a>
-<span class="sourceLineNo">151</span> TEST_UTIL.shutdownMiniCluster();<a name="line.151"></a>
-<span class="sourceLineNo">152</span> }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span> private void verifyRows(TableName tableName) throws IOException {<a name="line.154"></a>
-<span class="sourceLineNo">155</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.155"></a>
-<span class="sourceLineNo">156</span> Table t = conn.getTable(tableName); ResultScanner scanner = t.getScanner(new Scan())) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Result result;<a name="line.157"></a>
-<span class="sourceLineNo">158</span> int rowCount = 0;<a name="line.158"></a>
-<span class="sourceLineNo">159</span> while ((result = scanner.next()) != null) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span> byte[] value = result.getValue(TEST_FAMILY, TEST_QUALIFIER);<a name="line.160"></a>
-<span class="sourceLineNo">161</span> Assert.assertArrayEquals(value, Bytes.toBytes(rowCount++));<a name="line.161"></a>
-<span class="sourceLineNo">162</span> }<a name="line.162"></a>
-<span class="sourceLineNo">163</span> Assert.assertEquals(ROW_COUNT, rowCount);<a name="line.163"></a>
-<span class="sourceLineNo">164</span> }<a name="line.164"></a>
-<span class="sourceLineNo">165</span> }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span> protected abstract void snapshot(String snapshotName, TableName tableName) throws Exception;<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span> protected abstract void cloneSnapshot(String snapshotName, TableName tableName,<a name="line.169"></a>
-<span class="sourceLineNo">170</span> boolean restoreAcl) throws Exception;<a name="line.170"></a>
+<span class="sourceLineNo">133</span> grantOnTable(TEST_UTIL, USER_RW.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.133"></a>
+<span class="sourceLineNo">134</span> Permission.Action.READ, Permission.Action.WRITE);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> grantOnTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.136"></a>
+<span class="sourceLineNo">137</span> Permission.Action.READ);<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> private void loadData() throws IOException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration())) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span> try (Table t = conn.getTable(TEST_TABLE)) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span> for (int i = 0; i < ROW_COUNT; i++) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> Put put = new Put(Bytes.toBytes(i));<a name="line.144"></a>
+<span class="sourceLineNo">145</span> put.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(i));<a name="line.145"></a>
+<span class="sourceLineNo">146</span> t.put(put);<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> }<a name="line.148"></a>
+<span class="sourceLineNo">149</span> }<a name="line.149"></a>
+<span class="sourceLineNo">150</span> }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> @AfterClass<a name="line.152"></a>
+<span class="sourceLineNo">153</span> public static void tearDownAfterClass() throws Exception {<a name="line.153"></a>
+<span class="sourceLineNo">154</span> TEST_UTIL.shutdownMiniCluster();<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> private void verifyRows(TableName tableName) throws IOException {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.158"></a>
+<span class="sourceLineNo">159</span> Table t = conn.getTable(tableName); ResultScanner scanner = t.getScanner(new Scan())) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span> Result result;<a name="line.160"></a>
+<span class="sourceLineNo">161</span> int rowCount = 0;<a name="line.161"></a>
+<span class="sourceLineNo">162</span> while ((result = scanner.next()) != null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span> byte[] value = result.getValue(TEST_FAMILY, TEST_QUALIFIER);<a name="line.163"></a>
+<span class="sourceLineNo">164</span> Assert.assertArrayEquals(value, Bytes.toBytes(rowCount++));<a name="line.164"></a>
+<span class="sourceLineNo">165</span> }<a name="line.165"></a>
+<span class="sourceLineNo">166</span> Assert.assertEquals(ROW_COUNT, rowCount);<a name="line.166"></a>
+<span class="sourceLineNo">167</span> }<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span> protected abstract void snapshot(String snapshotName, TableName tableName) throws Exception;<a name="line.170"></a>
<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span> protected abstract void restoreSnapshot(String snapshotName, boolean restoreAcl) throws Exception;<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Test<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public void testRestoreSnapshot() throws Exception {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.178"></a>
-<span class="sourceLineNo">179</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span> loadData();<a name="line.181"></a>
-<span class="sourceLineNo">182</span> verifyRows(TEST_TABLE);<a name="line.182"></a>
+<span class="sourceLineNo">172</span> protected abstract void cloneSnapshot(String snapshotName, TableName tableName,<a name="line.172"></a>
+<span class="sourceLineNo">173</span> boolean restoreAcl) throws Exception;<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span> protected abstract void restoreSnapshot(String snapshotName, boolean restoreAcl) throws Exception;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span> @Test<a name="line.177"></a>
+<span class="sourceLineNo">178</span> public void testRestoreSnapshot() throws Exception {<a name="line.178"></a>
+<span class="sourceLineNo">179</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.179"></a>
+<span class="sourceLineNo">180</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.182"></a>
<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span> String snapshotName1 = TEST_UTIL.getRandomUUID().toString();<a name="line.184"></a>
-<span class="sourceLineNo">185</span> snapshot(snapshotName1, TEST_TABLE);<a name="line.185"></a>
+<span class="sourceLineNo">184</span> loadData();<a name="line.184"></a>
+<span class="sourceLineNo">185</span> verifyRows(TEST_TABLE);<a name="line.185"></a>
<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> // clone snapshot with restoreAcl true.<a name="line.187"></a>
-<span class="sourceLineNo">188</span> TableName tableName1 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.188"></a>
-<span class="sourceLineNo">189</span> cloneSnapshot(snapshotName1, tableName1, true);<a name="line.189"></a>
-<span class="sourceLineNo">190</span> verifyRows(tableName1);<a name="line.190"></a>
-<span class="sourceLineNo">191</span> verifyAllowed(new AccessReadAction(tableName1), USER_OWNER, USER_RO, USER_RW);<a name="line.191"></a>
-<span class="sourceLineNo">192</span> verifyDenied(new AccessReadAction(tableName1), USER_NONE);<a name="line.192"></a>
-<span class="sourceLineNo">193</span> verifyAllowed(new AccessWriteAction(tableName1), USER_OWNER, USER_RW);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> verifyDenied(new AccessWriteAction(tableName1), USER_RO, USER_NONE);<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span> // clone snapshot with restoreAcl false.<a name="line.196"></a>
-<span class="sourceLineNo">197</span> TableName tableName2 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.197"></a>
-<span class="sourceLineNo">198</span> cloneSnapshot(snapshotName1, tableName2, false);<a name="line.198"></a>
-<span class="sourceLineNo">199</span> verifyRows(tableName2);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> verifyAllowed(new AccessReadAction(tableName2), USER_OWNER);<a name="line.200"></a>
-<span class="sourceLineNo">201</span> verifyDenied(new AccessReadAction(tableName2), USER_NONE, USER_RO, USER_RW);<a name="line.201"></a>
-<span class="sourceLineNo">202</span> verifyAllowed(new AccessWriteAction(tableName2), USER_OWNER);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> verifyDenied(new AccessWriteAction(tableName2), USER_RO, USER_RW, USER_NONE);<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span> // remove read permission for USER_RO.<a name="line.205"></a>
-<span class="sourceLineNo">206</span> revokeFromTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.206"></a>
-<span class="sourceLineNo">207</span> Permission.Action.READ);<a name="line.207"></a>
-<span class="sourceLineNo">208</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.209"></a>
-<span class="sourceLineNo">210</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.210"></a>
-<span class="sourceLineNo">211</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span> // restore snapshot with restoreAcl false.<a name="line.213"></a>
-<span class="sourceLineNo">214</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.214"></a>
-<span class="sourceLineNo">215</span> restoreSnapshot(snapshotName1, false);<a name="line.215"></a>
-<span class="sourceLineNo">216</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.216"></a>
-<span class="sourceLineNo">217</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.217"></a>
-<span class="sourceLineNo">218</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span> // restore snapshot with restoreAcl true.<a name="line.222"></a>
-<span class="sourceLineNo">223</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> restoreSnapshot(snapshotName1, true);<a name="line.224"></a>
-<span class="sourceLineNo">225</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.225"></a>
-<span class="sourceLineNo">226</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.226"></a>
-<span class="sourceLineNo">227</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.227"></a>
-<span class="sourceLineNo">228</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.228"></a>
-<span class="sourceLineNo">229</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.229"></a>
-<span class="sourceLineNo">230</span> }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>}<a name="line.231"></a>
+<span class="sourceLineNo">187</span> String snapshotName1 = TEST_UTIL.getRandomUUID().toString();<a name="line.187"></a>
+<span class="sourceLineNo">188</span> snapshot(snapshotName1, TEST_TABLE);<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span> // clone snapshot with restoreAcl true.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> TableName tableName1 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.191"></a>
+<span class="sourceLineNo">192</span> cloneSnapshot(snapshotName1, tableName1, true);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> verifyRows(tableName1);<a name="line.193"></a>
+<span class="sourceLineNo">194</span> verifyAllowed(new AccessReadAction(tableName1), USER_OWNER, USER_RO, USER_RW);<a name="line.194"></a>
+<span class="sourceLineNo">195</span> verifyDenied(new AccessReadAction(tableName1), USER_NONE);<a name="line.195"></a>
+<span class="sourceLineNo">196</span> verifyAllowed(new AccessWriteAction(tableName1), USER_OWNER, USER_RW);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> verifyDenied(new AccessWriteAction(tableName1), USER_RO, USER_NONE);<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span> // clone snapshot with restoreAcl false.<a name="line.199"></a>
+<span class="sourceLineNo">200</span> TableName tableName2 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.200"></a>
+<span class="sourceLineNo">201</span> cloneSnapshot(snapshotName1, tableName2, false);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> verifyRows(tableName2);<a name="line.202"></a>
+<span class="sourceLineNo">203</span> verifyAllowed(new AccessReadAction(tableName2), USER_OWNER);<a name="line.203"></a>
+<span class="sourceLineNo">204</span> verifyDenied(new AccessReadAction(tableName2), USER_NONE, USER_RO, USER_RW);<a name="line.204"></a>
+<span class="sourceLineNo">205</span> verifyAllowed(new AccessWriteAction(tableName2), USER_OWNER);<a name="line.205"></a>
+<span class="sourceLineNo">206</span> verifyDenied(new AccessWriteAction(tableName2), USER_RO, USER_RW, USER_NONE);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span> // remove read permission for USER_RO.<a name="line.208"></a>
+<span class="sourceLineNo">209</span> revokeFromTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.209"></a>
+<span class="sourceLineNo">210</span> Permission.Action.READ);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.211"></a>
+<span class="sourceLineNo">212</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.212"></a>
+<span class="sourceLineNo">213</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.213"></a>
+<span class="sourceLineNo">214</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span> // restore snapshot with restoreAcl false.<a name="line.216"></a>
+<span class="sourceLineNo">217</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> restoreSnapshot(snapshotName1, false);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.221"></a>
+<span class="sourceLineNo">222</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> // restore snapshot with restoreAcl true.<a name="line.225"></a>
+<span class="sourceLineNo">226</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.226"></a>
+<span class="sourceLineNo">227</span> restoreSnapshot(snapshotName1, true);<a name="line.227"></a>
+<span class="sourceLineNo">228</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.228"></a>
+<span class="sourceLineNo">229</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.231"></a>
+<span class="sourceLineNo">232</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span> final class AccessSnapshotAction implements AccessTestAction {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> private String snapshotName;<a name="line.237"></a>
+<span class="sourceLineNo">238</span> private AccessSnapshotAction(String snapshotName) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> this.snapshotName = snapshotName;<a name="line.239"></a>
+<span class="sourceLineNo">240</span> }<a name="line.240"></a>
+<span class="sourceLineNo">241</span> @Override<a name="line.241"></a>
+<span class="sourceLineNo">242</span> public Object run() throws Exception {<a name="line.242"></a>
+<span class="sourceLineNo">243</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Admin admin = conn.getAdmin()) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.snapshot(this.snapshotName, TEST_TABLE);<a name="line.245"></a>
+<span class="sourceLineNo">246</span> }<a name="line.246"></a>
+<span class="sourceLineNo">247</span> return null;<a name="line.247"></a>
+<span class="sourceLineNo">248</span> }<a name="line.248"></a>
+<span class="sourceLineNo">249</span> }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span> @Test<a name="line.251"></a>
+<span class="sourceLineNo">252</span> public void testDeleteSnapshot() throws Exception {<a name="line.252"></a>
+<span class="sourceLineNo">253</span> String testSnapshotName = HBaseCommonTestingUtility.getRandomUUID().toString();<a name="line.253"></a>
+<span class="sourceLineNo">254</span> verifyAllowed(new AccessSnapshotAction(testSnapshotName), USER_OWNER);<a name="line.254"></a>
+<span class="sourceLineNo">255</span> verifyDenied(new AccessSnapshotAction(HBaseCommonTestingUtility.getRandomUUID().toString()),<a name="line.255"></a>
+<span class="sourceLineNo">256</span> USER_RO, USER_RW, USER_NONE);<a name="line.256"></a>
+<span class="sourceLineNo">257</span> List<SnapshotDescription> snapshotDescriptions = TEST_UTIL.getAdmin().listSnapshots(<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Pattern.compile(testSnapshotName));<a name="line.258"></a>
+<span class="sourceLineNo">259</span> Assert.assertEquals(1, snapshotDescriptions.size());<a name="line.259"></a>
+<span class="sourceLineNo">260</span> Assert.assertEquals(USER_OWNER.getShortName(), snapshotDescriptions.get(0).getOwner());<a name="line.260"></a>
+<span class="sourceLineNo">261</span> AccessTestAction deleteSnapshotAction = () -> {<a name="line.261"></a>
+<span class="sourceLineNo">262</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.262"></a>
+<span class="sourceLineNo">263</span> Admin admin = conn.getAdmin()) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span> admin.deleteSnapshot(testSnapshotName);<a name="line.264"></a>
+<span class="sourceLineNo">265</span> }<a name="line.265"></a>
+<span class="sourceLineNo">266</span> return null;<a name="line.266"></a>
+<span class="sourceLineNo">267</span> };<a name="line.267"></a>
+<span class="sourceLineNo">268</span> verifyDenied(deleteSnapshotAction, USER_RO, USER_RW, USER_NONE);<a name="line.268"></a>
+<span class="sourceLineNo">269</span> verifyAllowed(deleteSnapshotAction, USER_OWNER);<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span> List<SnapshotDescription> snapshotsAfterDelete = TEST_UTIL.getAdmin().listSnapshots(<a name="line.271"></a>
+<span class="sourceLineNo">272</span> Pattern.compile(testSnapshotName));<a name="line.272"></a>
+<span class="sourceLineNo">273</span> Assert.assertEquals(0, snapshotsAfterDelete.size());<a name="line.273"></a>
+<span class="sourceLineNo">274</span> }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>}<a name="line.275"></a>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html
new file mode 100644
index 0000000..cf1c9e9
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessSnapshotAction.html
@@ -0,0 +1,347 @@
+<!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.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.List;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.regex.Pattern;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.conf.Configuration;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.TableName;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.security.User;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.security.access.AccessControlConstants;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.security.access.PermissionStorage;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.AfterClass;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.Assert;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.Before;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.BeforeClass;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.Test;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>public abstract class SnapshotWithAclTestBase extends SecureTestUtil {<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span> private TableName TEST_TABLE = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span> private static final int ROW_COUNT = 30000;<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span> private static byte[] TEST_FAMILY = Bytes.toBytes("f1");<a name="line.49"></a>
+<span class="sourceLineNo">050</span> private static byte[] TEST_QUALIFIER = Bytes.toBytes("cq");<a name="line.50"></a>
+<span class="sourceLineNo">051</span> private static byte[] TEST_ROW = Bytes.toBytes(0);<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span> protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span> // user is table owner. will have all permissions on table<a name="line.55"></a>
+<span class="sourceLineNo">056</span> private static User USER_OWNER;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> // user with rw permissions on column family.<a name="line.57"></a>
+<span class="sourceLineNo">058</span> private static User USER_RW;<a name="line.58"></a>
+<span class="sourceLineNo">059</span> // user with read-only permissions<a name="line.59"></a>
+<span class="sourceLineNo">060</span> private static User USER_RO;<a name="line.60"></a>
+<span class="sourceLineNo">061</span> // user with none permissions<a name="line.61"></a>
+<span class="sourceLineNo">062</span> private static User USER_NONE;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span> static class AccessReadAction implements AccessTestAction {<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span> private TableName tableName;<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span> public AccessReadAction(TableName tableName) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span> this.tableName = tableName;<a name="line.69"></a>
+<span class="sourceLineNo">070</span> }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span> @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span> public Object run() throws Exception {<a name="line.73"></a>
+<span class="sourceLineNo">074</span> Get g = new Get(TEST_ROW);<a name="line.74"></a>
+<span class="sourceLineNo">075</span> g.addFamily(TEST_FAMILY);<a name="line.75"></a>
+<span class="sourceLineNo">076</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.76"></a>
+<span class="sourceLineNo">077</span> Table t = conn.getTable(tableName)) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span> t.get(g);<a name="line.78"></a>
+<span class="sourceLineNo">079</span> }<a name="line.79"></a>
+<span class="sourceLineNo">080</span> return null;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> }<a name="line.81"></a>
+<span class="sourceLineNo">082</span> }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span> static class AccessWriteAction implements AccessTestAction {<a name="line.84"></a>
+<span class="sourceLineNo">085</span> private TableName tableName;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span> public AccessWriteAction(TableName tableName) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span> this.tableName = tableName;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span> @Override<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public Object run() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> Put p = new Put(TEST_ROW);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> p.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(0));<a name="line.94"></a>
+<span class="sourceLineNo">095</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.95"></a>
+<span class="sourceLineNo">096</span> Table t = conn.getTable(tableName)) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span> t.put(p);<a name="line.97"></a>
+<span class="sourceLineNo">098</span> }<a name="line.98"></a>
+<span class="sourceLineNo">099</span> return null;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> }<a name="line.100"></a>
+<span class="sourceLineNo">101</span> }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span> @BeforeClass<a name="line.103"></a>
+<span class="sourceLineNo">104</span> public static void setupBeforeClass() throws Exception {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> Configuration conf = TEST_UTIL.getConfiguration();<a name="line.105"></a>
+<span class="sourceLineNo">106</span> // Enable security<a name="line.106"></a>
+<span class="sourceLineNo">107</span> enableSecurity(conf);<a name="line.107"></a>
+<span class="sourceLineNo">108</span> conf.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, AccessController.class.getName());<a name="line.108"></a>
+<span class="sourceLineNo">109</span> // Verify enableSecurity sets up what we require<a name="line.109"></a>
+<span class="sourceLineNo">110</span> verifyConfiguration(conf);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> // Enable EXEC permission checking<a name="line.111"></a>
+<span class="sourceLineNo">112</span> conf.setBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span> TEST_UTIL.startMiniCluster();<a name="line.113"></a>
+<span class="sourceLineNo">114</span> TEST_UTIL.waitUntilAllRegionsAssigned(PermissionStorage.ACL_TABLE_NAME);<a name="line.114"></a>
+<span class="sourceLineNo">115</span> MasterCoprocessorHost cpHost =<a name="line.115"></a>
+<span class="sourceLineNo">116</span> TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterCoprocessorHost();<a name="line.116"></a>
+<span class="sourceLineNo">117</span> cpHost.load(AccessController.class, Coprocessor.PRIORITY_HIGHEST, conf);<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span> USER_OWNER = User.createUserForTesting(conf, "owner", new String[0]);<a name="line.119"></a>
+<span class="sourceLineNo">120</span> USER_RW = User.createUserForTesting(conf, "rwuser", new String[0]);<a name="line.120"></a>
+<span class="sourceLineNo">121</span> USER_RO = User.createUserForTesting(conf, "rouser", new String[0]);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> USER_NONE = User.createUserForTesting(conf, "usernone", new String[0]);<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> @Before<a name="line.125"></a>
+<span class="sourceLineNo">126</span> public void setUp() throws Exception {<a name="line.126"></a>
+<span class="sourceLineNo">127</span> TEST_UTIL.createTable(TableDescriptorBuilder.newBuilder(TEST_TABLE)<a name="line.127"></a>
+<span class="sourceLineNo">128</span> .setColumnFamily(<a name="line.128"></a>
+<span class="sourceLineNo">129</span> ColumnFamilyDescriptorBuilder.newBuilder(TEST_FAMILY).setMaxVersions(100).build())<a name="line.129"></a>
+<span class="sourceLineNo">130</span> .setOwner(USER_OWNER).build(), new byte[][] { Bytes.toBytes("s") });<a name="line.130"></a>
+<span class="sourceLineNo">131</span> TEST_UTIL.waitTableEnabled(TEST_TABLE);<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span> grantOnTable(TEST_UTIL, USER_RW.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.133"></a>
+<span class="sourceLineNo">134</span> Permission.Action.READ, Permission.Action.WRITE);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> grantOnTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.136"></a>
+<span class="sourceLineNo">137</span> Permission.Action.READ);<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> private void loadData() throws IOException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration())) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span> try (Table t = conn.getTable(TEST_TABLE)) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span> for (int i = 0; i < ROW_COUNT; i++) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> Put put = new Put(Bytes.toBytes(i));<a name="line.144"></a>
+<span class="sourceLineNo">145</span> put.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(i));<a name="line.145"></a>
+<span class="sourceLineNo">146</span> t.put(put);<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> }<a name="line.148"></a>
+<span class="sourceLineNo">149</span> }<a name="line.149"></a>
+<span class="sourceLineNo">150</span> }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> @AfterClass<a name="line.152"></a>
+<span class="sourceLineNo">153</span> public static void tearDownAfterClass() throws Exception {<a name="line.153"></a>
+<span class="sourceLineNo">154</span> TEST_UTIL.shutdownMiniCluster();<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> private void verifyRows(TableName tableName) throws IOException {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.158"></a>
+<span class="sourceLineNo">159</span> Table t = conn.getTable(tableName); ResultScanner scanner = t.getScanner(new Scan())) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span> Result result;<a name="line.160"></a>
+<span class="sourceLineNo">161</span> int rowCount = 0;<a name="line.161"></a>
+<span class="sourceLineNo">162</span> while ((result = scanner.next()) != null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span> byte[] value = result.getValue(TEST_FAMILY, TEST_QUALIFIER);<a name="line.163"></a>
+<span class="sourceLineNo">164</span> Assert.assertArrayEquals(value, Bytes.toBytes(rowCount++));<a name="line.164"></a>
+<span class="sourceLineNo">165</span> }<a name="line.165"></a>
+<span class="sourceLineNo">166</span> Assert.assertEquals(ROW_COUNT, rowCount);<a name="line.166"></a>
+<span class="sourceLineNo">167</span> }<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span> protected abstract void snapshot(String snapshotName, TableName tableName) throws Exception;<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span> protected abstract void cloneSnapshot(String snapshotName, TableName tableName,<a name="line.172"></a>
+<span class="sourceLineNo">173</span> boolean restoreAcl) throws Exception;<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span> protected abstract void restoreSnapshot(String snapshotName, boolean restoreAcl) throws Exception;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span> @Test<a name="line.177"></a>
+<span class="sourceLineNo">178</span> public void testRestoreSnapshot() throws Exception {<a name="line.178"></a>
+<span class="sourceLineNo">179</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.179"></a>
+<span class="sourceLineNo">180</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span> loadData();<a name="line.184"></a>
+<span class="sourceLineNo">185</span> verifyRows(TEST_TABLE);<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span> String snapshotName1 = TEST_UTIL.getRandomUUID().toString();<a name="line.187"></a>
+<span class="sourceLineNo">188</span> snapshot(snapshotName1, TEST_TABLE);<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span> // clone snapshot with restoreAcl true.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> TableName tableName1 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.191"></a>
+<span class="sourceLineNo">192</span> cloneSnapshot(snapshotName1, tableName1, true);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> verifyRows(tableName1);<a name="line.193"></a>
+<span class="sourceLineNo">194</span> verifyAllowed(new AccessReadAction(tableName1), USER_OWNER, USER_RO, USER_RW);<a name="line.194"></a>
+<span class="sourceLineNo">195</span> verifyDenied(new AccessReadAction(tableName1), USER_NONE);<a name="line.195"></a>
+<span class="sourceLineNo">196</span> verifyAllowed(new AccessWriteAction(tableName1), USER_OWNER, USER_RW);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> verifyDenied(new AccessWriteAction(tableName1), USER_RO, USER_NONE);<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span> // clone snapshot with restoreAcl false.<a name="line.199"></a>
+<span class="sourceLineNo">200</span> TableName tableName2 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.200"></a>
+<span class="sourceLineNo">201</span> cloneSnapshot(snapshotName1, tableName2, false);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> verifyRows(tableName2);<a name="line.202"></a>
+<span class="sourceLineNo">203</span> verifyAllowed(new AccessReadAction(tableName2), USER_OWNER);<a name="line.203"></a>
+<span class="sourceLineNo">204</span> verifyDenied(new AccessReadAction(tableName2), USER_NONE, USER_RO, USER_RW);<a name="line.204"></a>
+<span class="sourceLineNo">205</span> verifyAllowed(new AccessWriteAction(tableName2), USER_OWNER);<a name="line.205"></a>
+<span class="sourceLineNo">206</span> verifyDenied(new AccessWriteAction(tableName2), USER_RO, USER_RW, USER_NONE);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span> // remove read permission for USER_RO.<a name="line.208"></a>
+<span class="sourceLineNo">209</span> revokeFromTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.209"></a>
+<span class="sourceLineNo">210</span> Permission.Action.READ);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.211"></a>
+<span class="sourceLineNo">212</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.212"></a>
+<span class="sourceLineNo">213</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.213"></a>
+<span class="sourceLineNo">214</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span> // restore snapshot with restoreAcl false.<a name="line.216"></a>
+<span class="sourceLineNo">217</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> restoreSnapshot(snapshotName1, false);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.221"></a>
+<span class="sourceLineNo">222</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> // restore snapshot with restoreAcl true.<a name="line.225"></a>
+<span class="sourceLineNo">226</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.226"></a>
+<span class="sourceLineNo">227</span> restoreSnapshot(snapshotName1, true);<a name="line.227"></a>
+<span class="sourceLineNo">228</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.228"></a>
+<span class="sourceLineNo">229</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.231"></a>
+<span class="sourceLineNo">232</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span> final class AccessSnapshotAction implements AccessTestAction {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> private String snapshotName;<a name="line.237"></a>
+<span class="sourceLineNo">238</span> private AccessSnapshotAction(String snapshotName) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> this.snapshotName = snapshotName;<a name="line.239"></a>
+<span class="sourceLineNo">240</span> }<a name="line.240"></a>
+<span class="sourceLineNo">241</span> @Override<a name="line.241"></a>
+<span class="sourceLineNo">242</span> public Object run() throws Exception {<a name="line.242"></a>
+<span class="sourceLineNo">243</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Admin admin = conn.getAdmin()) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.snapshot(this.snapshotName, TEST_TABLE);<a name="line.245"></a>
+<span class="sourceLineNo">246</span> }<a name="line.246"></a>
+<span class="sourceLineNo">247</span> return null;<a name="line.247"></a>
+<span class="sourceLineNo">248</span> }<a name="line.248"></a>
+<span class="sourceLineNo">249</span> }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span> @Test<a name="line.251"></a>
+<span class="sourceLineNo">252</span> public void testDeleteSnapshot() throws Exception {<a name="line.252"></a>
+<span class="sourceLineNo">253</span> String testSnapshotName = HBaseCommonTestingUtility.getRandomUUID().toString();<a name="line.253"></a>
+<span class="sourceLineNo">254</span> verifyAllowed(new AccessSnapshotAction(testSnapshotName), USER_OWNER);<a name="line.254"></a>
+<span class="sourceLineNo">255</span> verifyDenied(new AccessSnapshotAction(HBaseCommonTestingUtility.getRandomUUID().toString()),<a name="line.255"></a>
+<span class="sourceLineNo">256</span> USER_RO, USER_RW, USER_NONE);<a name="line.256"></a>
+<span class="sourceLineNo">257</span> List<SnapshotDescription> snapshotDescriptions = TEST_UTIL.getAdmin().listSnapshots(<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Pattern.compile(testSnapshotName));<a name="line.258"></a>
+<span class="sourceLineNo">259</span> Assert.assertEquals(1, snapshotDescriptions.size());<a name="line.259"></a>
+<span class="sourceLineNo">260</span> Assert.assertEquals(USER_OWNER.getShortName(), snapshotDescriptions.get(0).getOwner());<a name="line.260"></a>
+<span class="sourceLineNo">261</span> AccessTestAction deleteSnapshotAction = () -> {<a name="line.261"></a>
+<span class="sourceLineNo">262</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.262"></a>
+<span class="sourceLineNo">263</span> Admin admin = conn.getAdmin()) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span> admin.deleteSnapshot(testSnapshotName);<a name="line.264"></a>
+<span class="sourceLineNo">265</span> }<a name="line.265"></a>
+<span class="sourceLineNo">266</span> return null;<a name="line.266"></a>
+<span class="sourceLineNo">267</span> };<a name="line.267"></a>
+<span class="sourceLineNo">268</span> verifyDenied(deleteSnapshotAction, USER_RO, USER_RW, USER_NONE);<a name="line.268"></a>
+<span class="sourceLineNo">269</span> verifyAllowed(deleteSnapshotAction, USER_OWNER);<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span> List<SnapshotDescription> snapshotsAfterDelete = TEST_UTIL.getAdmin().listSnapshots(<a name="line.271"></a>
+<span class="sourceLineNo">272</span> Pattern.compile(testSnapshotName));<a name="line.272"></a>
+<span class="sourceLineNo">273</span> Assert.assertEquals(0, snapshotsAfterDelete.size());<a name="line.273"></a>
+<span class="sourceLineNo">274</span> }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>}<a name="line.275"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html
index 08ec907..cf1c9e9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.AccessWriteAction.html
@@ -26,217 +26,261 @@
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.hadoop.conf.Configuration;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.TableName;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.security.User;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.security.access.AccessControlConstants;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.security.access.PermissionStorage;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.junit.AfterClass;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.Assert;<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.BeforeClass;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.Test;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>public abstract class SnapshotWithAclTestBase extends SecureTestUtil {<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span> private TableName TEST_TABLE = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.42"></a>
-<span class="sourceLineNo">043</span><a name="line.43"></a>
-<span class="sourceLineNo">044</span> private static final int ROW_COUNT = 30000;<a name="line.44"></a>
-<span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span> private static byte[] TEST_FAMILY = Bytes.toBytes("f1");<a name="line.46"></a>
-<span class="sourceLineNo">047</span> private static byte[] TEST_QUALIFIER = Bytes.toBytes("cq");<a name="line.47"></a>
-<span class="sourceLineNo">048</span> private static byte[] TEST_ROW = Bytes.toBytes(0);<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span> protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span> // user is table owner. will have all permissions on table<a name="line.52"></a>
-<span class="sourceLineNo">053</span> private static User USER_OWNER;<a name="line.53"></a>
-<span class="sourceLineNo">054</span> // user with rw permissions on column family.<a name="line.54"></a>
-<span class="sourceLineNo">055</span> private static User USER_RW;<a name="line.55"></a>
-<span class="sourceLineNo">056</span> // user with read-only permissions<a name="line.56"></a>
-<span class="sourceLineNo">057</span> private static User USER_RO;<a name="line.57"></a>
-<span class="sourceLineNo">058</span> // user with none permissions<a name="line.58"></a>
-<span class="sourceLineNo">059</span> private static User USER_NONE;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span> static class AccessReadAction implements AccessTestAction {<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span> private TableName tableName;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span> public AccessReadAction(TableName tableName) {<a name="line.65"></a>
-<span class="sourceLineNo">066</span> this.tableName = tableName;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span> @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span> public Object run() throws Exception {<a name="line.70"></a>
-<span class="sourceLineNo">071</span> Get g = new Get(TEST_ROW);<a name="line.71"></a>
-<span class="sourceLineNo">072</span> g.addFamily(TEST_FAMILY);<a name="line.72"></a>
-<span class="sourceLineNo">073</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.73"></a>
-<span class="sourceLineNo">074</span> Table t = conn.getTable(tableName)) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span> t.get(g);<a name="line.75"></a>
-<span class="sourceLineNo">076</span> }<a name="line.76"></a>
-<span class="sourceLineNo">077</span> return null;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> }<a name="line.78"></a>
-<span class="sourceLineNo">079</span> }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span> static class AccessWriteAction implements AccessTestAction {<a name="line.81"></a>
-<span class="sourceLineNo">082</span> private TableName tableName;<a name="line.82"></a>
+<span class="sourceLineNo">021</span>import java.util.List;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.regex.Pattern;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.conf.Configuration;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.TableName;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.security.User;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.security.access.AccessControlConstants;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.security.access.PermissionStorage;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.AfterClass;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.Assert;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.Before;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.BeforeClass;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.Test;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>public abstract class SnapshotWithAclTestBase extends SecureTestUtil {<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span> private TableName TEST_TABLE = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span> private static final int ROW_COUNT = 30000;<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span> private static byte[] TEST_FAMILY = Bytes.toBytes("f1");<a name="line.49"></a>
+<span class="sourceLineNo">050</span> private static byte[] TEST_QUALIFIER = Bytes.toBytes("cq");<a name="line.50"></a>
+<span class="sourceLineNo">051</span> private static byte[] TEST_ROW = Bytes.toBytes(0);<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span> protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span> // user is table owner. will have all permissions on table<a name="line.55"></a>
+<span class="sourceLineNo">056</span> private static User USER_OWNER;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> // user with rw permissions on column family.<a name="line.57"></a>
+<span class="sourceLineNo">058</span> private static User USER_RW;<a name="line.58"></a>
+<span class="sourceLineNo">059</span> // user with read-only permissions<a name="line.59"></a>
+<span class="sourceLineNo">060</span> private static User USER_RO;<a name="line.60"></a>
+<span class="sourceLineNo">061</span> // user with none permissions<a name="line.61"></a>
+<span class="sourceLineNo">062</span> private static User USER_NONE;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span> static class AccessReadAction implements AccessTestAction {<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span> private TableName tableName;<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span> public AccessReadAction(TableName tableName) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span> this.tableName = tableName;<a name="line.69"></a>
+<span class="sourceLineNo">070</span> }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span> @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span> public Object run() throws Exception {<a name="line.73"></a>
+<span class="sourceLineNo">074</span> Get g = new Get(TEST_ROW);<a name="line.74"></a>
+<span class="sourceLineNo">075</span> g.addFamily(TEST_FAMILY);<a name="line.75"></a>
+<span class="sourceLineNo">076</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.76"></a>
+<span class="sourceLineNo">077</span> Table t = conn.getTable(tableName)) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span> t.get(g);<a name="line.78"></a>
+<span class="sourceLineNo">079</span> }<a name="line.79"></a>
+<span class="sourceLineNo">080</span> return null;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> }<a name="line.81"></a>
+<span class="sourceLineNo">082</span> }<a name="line.82"></a>
<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span> public AccessWriteAction(TableName tableName) {<a name="line.84"></a>
-<span class="sourceLineNo">085</span> this.tableName = tableName;<a name="line.85"></a>
-<span class="sourceLineNo">086</span> }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span> @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span> public Object run() throws Exception {<a name="line.89"></a>
-<span class="sourceLineNo">090</span> Put p = new Put(TEST_ROW);<a name="line.90"></a>
-<span class="sourceLineNo">091</span> p.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(0));<a name="line.91"></a>
-<span class="sourceLineNo">092</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.92"></a>
-<span class="sourceLineNo">093</span> Table t = conn.getTable(tableName)) {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> t.put(p);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> }<a name="line.95"></a>
-<span class="sourceLineNo">096</span> return null;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> }<a name="line.97"></a>
-<span class="sourceLineNo">098</span> }<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span> @BeforeClass<a name="line.100"></a>
-<span class="sourceLineNo">101</span> public static void setupBeforeClass() throws Exception {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> Configuration conf = TEST_UTIL.getConfiguration();<a name="line.102"></a>
-<span class="sourceLineNo">103</span> // Enable security<a name="line.103"></a>
-<span class="sourceLineNo">104</span> enableSecurity(conf);<a name="line.104"></a>
-<span class="sourceLineNo">105</span> conf.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, AccessController.class.getName());<a name="line.105"></a>
-<span class="sourceLineNo">106</span> // Verify enableSecurity sets up what we require<a name="line.106"></a>
-<span class="sourceLineNo">107</span> verifyConfiguration(conf);<a name="line.107"></a>
-<span class="sourceLineNo">108</span> // Enable EXEC permission checking<a name="line.108"></a>
-<span class="sourceLineNo">109</span> conf.setBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY, true);<a name="line.109"></a>
-<span class="sourceLineNo">110</span> TEST_UTIL.startMiniCluster();<a name="line.110"></a>
-<span class="sourceLineNo">111</span> TEST_UTIL.waitUntilAllRegionsAssigned(PermissionStorage.ACL_TABLE_NAME);<a name="line.111"></a>
-<span class="sourceLineNo">112</span> MasterCoprocessorHost cpHost =<a name="line.112"></a>
-<span class="sourceLineNo">113</span> TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterCoprocessorHost();<a name="line.113"></a>
-<span class="sourceLineNo">114</span> cpHost.load(AccessController.class, Coprocessor.PRIORITY_HIGHEST, conf);<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> USER_OWNER = User.createUserForTesting(conf, "owner", new String[0]);<a name="line.116"></a>
-<span class="sourceLineNo">117</span> USER_RW = User.createUserForTesting(conf, "rwuser", new String[0]);<a name="line.117"></a>
-<span class="sourceLineNo">118</span> USER_RO = User.createUserForTesting(conf, "rouser", new String[0]);<a name="line.118"></a>
-<span class="sourceLineNo">119</span> USER_NONE = User.createUserForTesting(conf, "usernone", new String[0]);<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> @Before<a name="line.122"></a>
-<span class="sourceLineNo">123</span> public void setUp() throws Exception {<a name="line.123"></a>
-<span class="sourceLineNo">124</span> TEST_UTIL.createTable(TableDescriptorBuilder.newBuilder(TEST_TABLE)<a name="line.124"></a>
-<span class="sourceLineNo">125</span> .setColumnFamily(<a name="line.125"></a>
-<span class="sourceLineNo">126</span> ColumnFamilyDescriptorBuilder.newBuilder(TEST_FAMILY).setMaxVersions(100).build())<a name="line.126"></a>
-<span class="sourceLineNo">127</span> .setOwner(USER_OWNER).build(), new byte[][] { Bytes.toBytes("s") });<a name="line.127"></a>
-<span class="sourceLineNo">128</span> TEST_UTIL.waitTableEnabled(TEST_TABLE);<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span> grantOnTable(TEST_UTIL, USER_RW.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.130"></a>
-<span class="sourceLineNo">131</span> Permission.Action.READ, Permission.Action.WRITE);<a name="line.131"></a>
+<span class="sourceLineNo">084</span> static class AccessWriteAction implements AccessTestAction {<a name="line.84"></a>
+<span class="sourceLineNo">085</span> private TableName tableName;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span> public AccessWriteAction(TableName tableName) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span> this.tableName = tableName;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span> @Override<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public Object run() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> Put p = new Put(TEST_ROW);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> p.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(0));<a name="line.94"></a>
+<span class="sourceLineNo">095</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.95"></a>
+<span class="sourceLineNo">096</span> Table t = conn.getTable(tableName)) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span> t.put(p);<a name="line.97"></a>
+<span class="sourceLineNo">098</span> }<a name="line.98"></a>
+<span class="sourceLineNo">099</span> return null;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> }<a name="line.100"></a>
+<span class="sourceLineNo">101</span> }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span> @BeforeClass<a name="line.103"></a>
+<span class="sourceLineNo">104</span> public static void setupBeforeClass() throws Exception {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> Configuration conf = TEST_UTIL.getConfiguration();<a name="line.105"></a>
+<span class="sourceLineNo">106</span> // Enable security<a name="line.106"></a>
+<span class="sourceLineNo">107</span> enableSecurity(conf);<a name="line.107"></a>
+<span class="sourceLineNo">108</span> conf.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, AccessController.class.getName());<a name="line.108"></a>
+<span class="sourceLineNo">109</span> // Verify enableSecurity sets up what we require<a name="line.109"></a>
+<span class="sourceLineNo">110</span> verifyConfiguration(conf);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> // Enable EXEC permission checking<a name="line.111"></a>
+<span class="sourceLineNo">112</span> conf.setBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span> TEST_UTIL.startMiniCluster();<a name="line.113"></a>
+<span class="sourceLineNo">114</span> TEST_UTIL.waitUntilAllRegionsAssigned(PermissionStorage.ACL_TABLE_NAME);<a name="line.114"></a>
+<span class="sourceLineNo">115</span> MasterCoprocessorHost cpHost =<a name="line.115"></a>
+<span class="sourceLineNo">116</span> TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterCoprocessorHost();<a name="line.116"></a>
+<span class="sourceLineNo">117</span> cpHost.load(AccessController.class, Coprocessor.PRIORITY_HIGHEST, conf);<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span> USER_OWNER = User.createUserForTesting(conf, "owner", new String[0]);<a name="line.119"></a>
+<span class="sourceLineNo">120</span> USER_RW = User.createUserForTesting(conf, "rwuser", new String[0]);<a name="line.120"></a>
+<span class="sourceLineNo">121</span> USER_RO = User.createUserForTesting(conf, "rouser", new String[0]);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> USER_NONE = User.createUserForTesting(conf, "usernone", new String[0]);<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> @Before<a name="line.125"></a>
+<span class="sourceLineNo">126</span> public void setUp() throws Exception {<a name="line.126"></a>
+<span class="sourceLineNo">127</span> TEST_UTIL.createTable(TableDescriptorBuilder.newBuilder(TEST_TABLE)<a name="line.127"></a>
+<span class="sourceLineNo">128</span> .setColumnFamily(<a name="line.128"></a>
+<span class="sourceLineNo">129</span> ColumnFamilyDescriptorBuilder.newBuilder(TEST_FAMILY).setMaxVersions(100).build())<a name="line.129"></a>
+<span class="sourceLineNo">130</span> .setOwner(USER_OWNER).build(), new byte[][] { Bytes.toBytes("s") });<a name="line.130"></a>
+<span class="sourceLineNo">131</span> TEST_UTIL.waitTableEnabled(TEST_TABLE);<a name="line.131"></a>
<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span> grantOnTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.133"></a>
-<span class="sourceLineNo">134</span> Permission.Action.READ);<a name="line.134"></a>
-<span class="sourceLineNo">135</span> }<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> private void loadData() throws IOException {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration())) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span> try (Table t = conn.getTable(TEST_TABLE)) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> for (int i = 0; i < ROW_COUNT; i++) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span> Put put = new Put(Bytes.toBytes(i));<a name="line.141"></a>
-<span class="sourceLineNo">142</span> put.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(i));<a name="line.142"></a>
-<span class="sourceLineNo">143</span> t.put(put);<a name="line.143"></a>
-<span class="sourceLineNo">144</span> }<a name="line.144"></a>
-<span class="sourceLineNo">145</span> }<a name="line.145"></a>
-<span class="sourceLineNo">146</span> }<a name="line.146"></a>
-<span class="sourceLineNo">147</span> }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span> @AfterClass<a name="line.149"></a>
-<span class="sourceLineNo">150</span> public static void tearDownAfterClass() throws Exception {<a name="line.150"></a>
-<span class="sourceLineNo">151</span> TEST_UTIL.shutdownMiniCluster();<a name="line.151"></a>
-<span class="sourceLineNo">152</span> }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span> private void verifyRows(TableName tableName) throws IOException {<a name="line.154"></a>
-<span class="sourceLineNo">155</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.155"></a>
-<span class="sourceLineNo">156</span> Table t = conn.getTable(tableName); ResultScanner scanner = t.getScanner(new Scan())) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Result result;<a name="line.157"></a>
-<span class="sourceLineNo">158</span> int rowCount = 0;<a name="line.158"></a>
-<span class="sourceLineNo">159</span> while ((result = scanner.next()) != null) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span> byte[] value = result.getValue(TEST_FAMILY, TEST_QUALIFIER);<a name="line.160"></a>
-<span class="sourceLineNo">161</span> Assert.assertArrayEquals(value, Bytes.toBytes(rowCount++));<a name="line.161"></a>
-<span class="sourceLineNo">162</span> }<a name="line.162"></a>
-<span class="sourceLineNo">163</span> Assert.assertEquals(ROW_COUNT, rowCount);<a name="line.163"></a>
-<span class="sourceLineNo">164</span> }<a name="line.164"></a>
-<span class="sourceLineNo">165</span> }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span> protected abstract void snapshot(String snapshotName, TableName tableName) throws Exception;<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span> protected abstract void cloneSnapshot(String snapshotName, TableName tableName,<a name="line.169"></a>
-<span class="sourceLineNo">170</span> boolean restoreAcl) throws Exception;<a name="line.170"></a>
+<span class="sourceLineNo">133</span> grantOnTable(TEST_UTIL, USER_RW.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.133"></a>
+<span class="sourceLineNo">134</span> Permission.Action.READ, Permission.Action.WRITE);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> grantOnTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.136"></a>
+<span class="sourceLineNo">137</span> Permission.Action.READ);<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> private void loadData() throws IOException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration())) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span> try (Table t = conn.getTable(TEST_TABLE)) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span> for (int i = 0; i < ROW_COUNT; i++) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> Put put = new Put(Bytes.toBytes(i));<a name="line.144"></a>
+<span class="sourceLineNo">145</span> put.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(i));<a name="line.145"></a>
+<span class="sourceLineNo">146</span> t.put(put);<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> }<a name="line.148"></a>
+<span class="sourceLineNo">149</span> }<a name="line.149"></a>
+<span class="sourceLineNo">150</span> }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> @AfterClass<a name="line.152"></a>
+<span class="sourceLineNo">153</span> public static void tearDownAfterClass() throws Exception {<a name="line.153"></a>
+<span class="sourceLineNo">154</span> TEST_UTIL.shutdownMiniCluster();<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> private void verifyRows(TableName tableName) throws IOException {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.158"></a>
+<span class="sourceLineNo">159</span> Table t = conn.getTable(tableName); ResultScanner scanner = t.getScanner(new Scan())) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span> Result result;<a name="line.160"></a>
+<span class="sourceLineNo">161</span> int rowCount = 0;<a name="line.161"></a>
+<span class="sourceLineNo">162</span> while ((result = scanner.next()) != null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span> byte[] value = result.getValue(TEST_FAMILY, TEST_QUALIFIER);<a name="line.163"></a>
+<span class="sourceLineNo">164</span> Assert.assertArrayEquals(value, Bytes.toBytes(rowCount++));<a name="line.164"></a>
+<span class="sourceLineNo">165</span> }<a name="line.165"></a>
+<span class="sourceLineNo">166</span> Assert.assertEquals(ROW_COUNT, rowCount);<a name="line.166"></a>
+<span class="sourceLineNo">167</span> }<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span> protected abstract void snapshot(String snapshotName, TableName tableName) throws Exception;<a name="line.170"></a>
<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span> protected abstract void restoreSnapshot(String snapshotName, boolean restoreAcl) throws Exception;<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Test<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public void testRestoreSnapshot() throws Exception {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.178"></a>
-<span class="sourceLineNo">179</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span> loadData();<a name="line.181"></a>
-<span class="sourceLineNo">182</span> verifyRows(TEST_TABLE);<a name="line.182"></a>
+<span class="sourceLineNo">172</span> protected abstract void cloneSnapshot(String snapshotName, TableName tableName,<a name="line.172"></a>
+<span class="sourceLineNo">173</span> boolean restoreAcl) throws Exception;<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span> protected abstract void restoreSnapshot(String snapshotName, boolean restoreAcl) throws Exception;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span> @Test<a name="line.177"></a>
+<span class="sourceLineNo">178</span> public void testRestoreSnapshot() throws Exception {<a name="line.178"></a>
+<span class="sourceLineNo">179</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.179"></a>
+<span class="sourceLineNo">180</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.182"></a>
<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span> String snapshotName1 = TEST_UTIL.getRandomUUID().toString();<a name="line.184"></a>
-<span class="sourceLineNo">185</span> snapshot(snapshotName1, TEST_TABLE);<a name="line.185"></a>
+<span class="sourceLineNo">184</span> loadData();<a name="line.184"></a>
+<span class="sourceLineNo">185</span> verifyRows(TEST_TABLE);<a name="line.185"></a>
<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> // clone snapshot with restoreAcl true.<a name="line.187"></a>
-<span class="sourceLineNo">188</span> TableName tableName1 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.188"></a>
-<span class="sourceLineNo">189</span> cloneSnapshot(snapshotName1, tableName1, true);<a name="line.189"></a>
-<span class="sourceLineNo">190</span> verifyRows(tableName1);<a name="line.190"></a>
-<span class="sourceLineNo">191</span> verifyAllowed(new AccessReadAction(tableName1), USER_OWNER, USER_RO, USER_RW);<a name="line.191"></a>
-<span class="sourceLineNo">192</span> verifyDenied(new AccessReadAction(tableName1), USER_NONE);<a name="line.192"></a>
-<span class="sourceLineNo">193</span> verifyAllowed(new AccessWriteAction(tableName1), USER_OWNER, USER_RW);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> verifyDenied(new AccessWriteAction(tableName1), USER_RO, USER_NONE);<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span> // clone snapshot with restoreAcl false.<a name="line.196"></a>
-<span class="sourceLineNo">197</span> TableName tableName2 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.197"></a>
-<span class="sourceLineNo">198</span> cloneSnapshot(snapshotName1, tableName2, false);<a name="line.198"></a>
-<span class="sourceLineNo">199</span> verifyRows(tableName2);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> verifyAllowed(new AccessReadAction(tableName2), USER_OWNER);<a name="line.200"></a>
-<span class="sourceLineNo">201</span> verifyDenied(new AccessReadAction(tableName2), USER_NONE, USER_RO, USER_RW);<a name="line.201"></a>
-<span class="sourceLineNo">202</span> verifyAllowed(new AccessWriteAction(tableName2), USER_OWNER);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> verifyDenied(new AccessWriteAction(tableName2), USER_RO, USER_RW, USER_NONE);<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span> // remove read permission for USER_RO.<a name="line.205"></a>
-<span class="sourceLineNo">206</span> revokeFromTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.206"></a>
-<span class="sourceLineNo">207</span> Permission.Action.READ);<a name="line.207"></a>
-<span class="sourceLineNo">208</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.209"></a>
-<span class="sourceLineNo">210</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.210"></a>
-<span class="sourceLineNo">211</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span> // restore snapshot with restoreAcl false.<a name="line.213"></a>
-<span class="sourceLineNo">214</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.214"></a>
-<span class="sourceLineNo">215</span> restoreSnapshot(snapshotName1, false);<a name="line.215"></a>
-<span class="sourceLineNo">216</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.216"></a>
-<span class="sourceLineNo">217</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.217"></a>
-<span class="sourceLineNo">218</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span> // restore snapshot with restoreAcl true.<a name="line.222"></a>
-<span class="sourceLineNo">223</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> restoreSnapshot(snapshotName1, true);<a name="line.224"></a>
-<span class="sourceLineNo">225</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.225"></a>
-<span class="sourceLineNo">226</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.226"></a>
-<span class="sourceLineNo">227</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.227"></a>
-<span class="sourceLineNo">228</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.228"></a>
-<span class="sourceLineNo">229</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.229"></a>
-<span class="sourceLineNo">230</span> }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>}<a name="line.231"></a>
+<span class="sourceLineNo">187</span> String snapshotName1 = TEST_UTIL.getRandomUUID().toString();<a name="line.187"></a>
+<span class="sourceLineNo">188</span> snapshot(snapshotName1, TEST_TABLE);<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span> // clone snapshot with restoreAcl true.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> TableName tableName1 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.191"></a>
+<span class="sourceLineNo">192</span> cloneSnapshot(snapshotName1, tableName1, true);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> verifyRows(tableName1);<a name="line.193"></a>
+<span class="sourceLineNo">194</span> verifyAllowed(new AccessReadAction(tableName1), USER_OWNER, USER_RO, USER_RW);<a name="line.194"></a>
+<span class="sourceLineNo">195</span> verifyDenied(new AccessReadAction(tableName1), USER_NONE);<a name="line.195"></a>
+<span class="sourceLineNo">196</span> verifyAllowed(new AccessWriteAction(tableName1), USER_OWNER, USER_RW);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> verifyDenied(new AccessWriteAction(tableName1), USER_RO, USER_NONE);<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span> // clone snapshot with restoreAcl false.<a name="line.199"></a>
+<span class="sourceLineNo">200</span> TableName tableName2 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.200"></a>
+<span class="sourceLineNo">201</span> cloneSnapshot(snapshotName1, tableName2, false);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> verifyRows(tableName2);<a name="line.202"></a>
+<span class="sourceLineNo">203</span> verifyAllowed(new AccessReadAction(tableName2), USER_OWNER);<a name="line.203"></a>
+<span class="sourceLineNo">204</span> verifyDenied(new AccessReadAction(tableName2), USER_NONE, USER_RO, USER_RW);<a name="line.204"></a>
+<span class="sourceLineNo">205</span> verifyAllowed(new AccessWriteAction(tableName2), USER_OWNER);<a name="line.205"></a>
+<span class="sourceLineNo">206</span> verifyDenied(new AccessWriteAction(tableName2), USER_RO, USER_RW, USER_NONE);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span> // remove read permission for USER_RO.<a name="line.208"></a>
+<span class="sourceLineNo">209</span> revokeFromTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.209"></a>
+<span class="sourceLineNo">210</span> Permission.Action.READ);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.211"></a>
+<span class="sourceLineNo">212</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.212"></a>
+<span class="sourceLineNo">213</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.213"></a>
+<span class="sourceLineNo">214</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span> // restore snapshot with restoreAcl false.<a name="line.216"></a>
+<span class="sourceLineNo">217</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> restoreSnapshot(snapshotName1, false);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.221"></a>
+<span class="sourceLineNo">222</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> // restore snapshot with restoreAcl true.<a name="line.225"></a>
+<span class="sourceLineNo">226</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.226"></a>
+<span class="sourceLineNo">227</span> restoreSnapshot(snapshotName1, true);<a name="line.227"></a>
+<span class="sourceLineNo">228</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.228"></a>
+<span class="sourceLineNo">229</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.231"></a>
+<span class="sourceLineNo">232</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span> final class AccessSnapshotAction implements AccessTestAction {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> private String snapshotName;<a name="line.237"></a>
+<span class="sourceLineNo">238</span> private AccessSnapshotAction(String snapshotName) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> this.snapshotName = snapshotName;<a name="line.239"></a>
+<span class="sourceLineNo">240</span> }<a name="line.240"></a>
+<span class="sourceLineNo">241</span> @Override<a name="line.241"></a>
+<span class="sourceLineNo">242</span> public Object run() throws Exception {<a name="line.242"></a>
+<span class="sourceLineNo">243</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Admin admin = conn.getAdmin()) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.snapshot(this.snapshotName, TEST_TABLE);<a name="line.245"></a>
+<span class="sourceLineNo">246</span> }<a name="line.246"></a>
+<span class="sourceLineNo">247</span> return null;<a name="line.247"></a>
+<span class="sourceLineNo">248</span> }<a name="line.248"></a>
+<span class="sourceLineNo">249</span> }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span> @Test<a name="line.251"></a>
+<span class="sourceLineNo">252</span> public void testDeleteSnapshot() throws Exception {<a name="line.252"></a>
+<span class="sourceLineNo">253</span> String testSnapshotName = HBaseCommonTestingUtility.getRandomUUID().toString();<a name="line.253"></a>
+<span class="sourceLineNo">254</span> verifyAllowed(new AccessSnapshotAction(testSnapshotName), USER_OWNER);<a name="line.254"></a>
+<span class="sourceLineNo">255</span> verifyDenied(new AccessSnapshotAction(HBaseCommonTestingUtility.getRandomUUID().toString()),<a name="line.255"></a>
+<span class="sourceLineNo">256</span> USER_RO, USER_RW, USER_NONE);<a name="line.256"></a>
+<span class="sourceLineNo">257</span> List<SnapshotDescription> snapshotDescriptions = TEST_UTIL.getAdmin().listSnapshots(<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Pattern.compile(testSnapshotName));<a name="line.258"></a>
+<span class="sourceLineNo">259</span> Assert.assertEquals(1, snapshotDescriptions.size());<a name="line.259"></a>
+<span class="sourceLineNo">260</span> Assert.assertEquals(USER_OWNER.getShortName(), snapshotDescriptions.get(0).getOwner());<a name="line.260"></a>
+<span class="sourceLineNo">261</span> AccessTestAction deleteSnapshotAction = () -> {<a name="line.261"></a>
+<span class="sourceLineNo">262</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.262"></a>
+<span class="sourceLineNo">263</span> Admin admin = conn.getAdmin()) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span> admin.deleteSnapshot(testSnapshotName);<a name="line.264"></a>
+<span class="sourceLineNo">265</span> }<a name="line.265"></a>
+<span class="sourceLineNo">266</span> return null;<a name="line.266"></a>
+<span class="sourceLineNo">267</span> };<a name="line.267"></a>
+<span class="sourceLineNo">268</span> verifyDenied(deleteSnapshotAction, USER_RO, USER_RW, USER_NONE);<a name="line.268"></a>
+<span class="sourceLineNo">269</span> verifyAllowed(deleteSnapshotAction, USER_OWNER);<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span> List<SnapshotDescription> snapshotsAfterDelete = TEST_UTIL.getAdmin().listSnapshots(<a name="line.271"></a>
+<span class="sourceLineNo">272</span> Pattern.compile(testSnapshotName));<a name="line.272"></a>
+<span class="sourceLineNo">273</span> Assert.assertEquals(0, snapshotsAfterDelete.size());<a name="line.273"></a>
+<span class="sourceLineNo">274</span> }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>}<a name="line.275"></a>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html
index 08ec907..cf1c9e9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/SnapshotWithAclTestBase.html
@@ -26,217 +26,261 @@
<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
<span class="sourceLineNo">019</span><a name="line.19"></a>
<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.hadoop.conf.Configuration;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.TableName;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.security.User;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.security.access.AccessControlConstants;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.security.access.PermissionStorage;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.junit.AfterClass;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.Assert;<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.BeforeClass;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.Test;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>public abstract class SnapshotWithAclTestBase extends SecureTestUtil {<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span> private TableName TEST_TABLE = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.42"></a>
-<span class="sourceLineNo">043</span><a name="line.43"></a>
-<span class="sourceLineNo">044</span> private static final int ROW_COUNT = 30000;<a name="line.44"></a>
-<span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span> private static byte[] TEST_FAMILY = Bytes.toBytes("f1");<a name="line.46"></a>
-<span class="sourceLineNo">047</span> private static byte[] TEST_QUALIFIER = Bytes.toBytes("cq");<a name="line.47"></a>
-<span class="sourceLineNo">048</span> private static byte[] TEST_ROW = Bytes.toBytes(0);<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span> protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span> // user is table owner. will have all permissions on table<a name="line.52"></a>
-<span class="sourceLineNo">053</span> private static User USER_OWNER;<a name="line.53"></a>
-<span class="sourceLineNo">054</span> // user with rw permissions on column family.<a name="line.54"></a>
-<span class="sourceLineNo">055</span> private static User USER_RW;<a name="line.55"></a>
-<span class="sourceLineNo">056</span> // user with read-only permissions<a name="line.56"></a>
-<span class="sourceLineNo">057</span> private static User USER_RO;<a name="line.57"></a>
-<span class="sourceLineNo">058</span> // user with none permissions<a name="line.58"></a>
-<span class="sourceLineNo">059</span> private static User USER_NONE;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span> static class AccessReadAction implements AccessTestAction {<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span> private TableName tableName;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span> public AccessReadAction(TableName tableName) {<a name="line.65"></a>
-<span class="sourceLineNo">066</span> this.tableName = tableName;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span> @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span> public Object run() throws Exception {<a name="line.70"></a>
-<span class="sourceLineNo">071</span> Get g = new Get(TEST_ROW);<a name="line.71"></a>
-<span class="sourceLineNo">072</span> g.addFamily(TEST_FAMILY);<a name="line.72"></a>
-<span class="sourceLineNo">073</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.73"></a>
-<span class="sourceLineNo">074</span> Table t = conn.getTable(tableName)) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span> t.get(g);<a name="line.75"></a>
-<span class="sourceLineNo">076</span> }<a name="line.76"></a>
-<span class="sourceLineNo">077</span> return null;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> }<a name="line.78"></a>
-<span class="sourceLineNo">079</span> }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span> static class AccessWriteAction implements AccessTestAction {<a name="line.81"></a>
-<span class="sourceLineNo">082</span> private TableName tableName;<a name="line.82"></a>
+<span class="sourceLineNo">021</span>import java.util.List;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.regex.Pattern;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.conf.Configuration;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.TableName;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.security.User;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.security.access.AccessControlConstants;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.security.access.PermissionStorage;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.AfterClass;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.Assert;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.Before;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.BeforeClass;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.Test;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>public abstract class SnapshotWithAclTestBase extends SecureTestUtil {<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span> private TableName TEST_TABLE = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span> private static final int ROW_COUNT = 30000;<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span> private static byte[] TEST_FAMILY = Bytes.toBytes("f1");<a name="line.49"></a>
+<span class="sourceLineNo">050</span> private static byte[] TEST_QUALIFIER = Bytes.toBytes("cq");<a name="line.50"></a>
+<span class="sourceLineNo">051</span> private static byte[] TEST_ROW = Bytes.toBytes(0);<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span> protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span> // user is table owner. will have all permissions on table<a name="line.55"></a>
+<span class="sourceLineNo">056</span> private static User USER_OWNER;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> // user with rw permissions on column family.<a name="line.57"></a>
+<span class="sourceLineNo">058</span> private static User USER_RW;<a name="line.58"></a>
+<span class="sourceLineNo">059</span> // user with read-only permissions<a name="line.59"></a>
+<span class="sourceLineNo">060</span> private static User USER_RO;<a name="line.60"></a>
+<span class="sourceLineNo">061</span> // user with none permissions<a name="line.61"></a>
+<span class="sourceLineNo">062</span> private static User USER_NONE;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span> static class AccessReadAction implements AccessTestAction {<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span> private TableName tableName;<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span> public AccessReadAction(TableName tableName) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span> this.tableName = tableName;<a name="line.69"></a>
+<span class="sourceLineNo">070</span> }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span> @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span> public Object run() throws Exception {<a name="line.73"></a>
+<span class="sourceLineNo">074</span> Get g = new Get(TEST_ROW);<a name="line.74"></a>
+<span class="sourceLineNo">075</span> g.addFamily(TEST_FAMILY);<a name="line.75"></a>
+<span class="sourceLineNo">076</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.76"></a>
+<span class="sourceLineNo">077</span> Table t = conn.getTable(tableName)) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span> t.get(g);<a name="line.78"></a>
+<span class="sourceLineNo">079</span> }<a name="line.79"></a>
+<span class="sourceLineNo">080</span> return null;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> }<a name="line.81"></a>
+<span class="sourceLineNo">082</span> }<a name="line.82"></a>
<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span> public AccessWriteAction(TableName tableName) {<a name="line.84"></a>
-<span class="sourceLineNo">085</span> this.tableName = tableName;<a name="line.85"></a>
-<span class="sourceLineNo">086</span> }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span> @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span> public Object run() throws Exception {<a name="line.89"></a>
-<span class="sourceLineNo">090</span> Put p = new Put(TEST_ROW);<a name="line.90"></a>
-<span class="sourceLineNo">091</span> p.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(0));<a name="line.91"></a>
-<span class="sourceLineNo">092</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.92"></a>
-<span class="sourceLineNo">093</span> Table t = conn.getTable(tableName)) {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> t.put(p);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> }<a name="line.95"></a>
-<span class="sourceLineNo">096</span> return null;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> }<a name="line.97"></a>
-<span class="sourceLineNo">098</span> }<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span> @BeforeClass<a name="line.100"></a>
-<span class="sourceLineNo">101</span> public static void setupBeforeClass() throws Exception {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> Configuration conf = TEST_UTIL.getConfiguration();<a name="line.102"></a>
-<span class="sourceLineNo">103</span> // Enable security<a name="line.103"></a>
-<span class="sourceLineNo">104</span> enableSecurity(conf);<a name="line.104"></a>
-<span class="sourceLineNo">105</span> conf.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, AccessController.class.getName());<a name="line.105"></a>
-<span class="sourceLineNo">106</span> // Verify enableSecurity sets up what we require<a name="line.106"></a>
-<span class="sourceLineNo">107</span> verifyConfiguration(conf);<a name="line.107"></a>
-<span class="sourceLineNo">108</span> // Enable EXEC permission checking<a name="line.108"></a>
-<span class="sourceLineNo">109</span> conf.setBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY, true);<a name="line.109"></a>
-<span class="sourceLineNo">110</span> TEST_UTIL.startMiniCluster();<a name="line.110"></a>
-<span class="sourceLineNo">111</span> TEST_UTIL.waitUntilAllRegionsAssigned(PermissionStorage.ACL_TABLE_NAME);<a name="line.111"></a>
-<span class="sourceLineNo">112</span> MasterCoprocessorHost cpHost =<a name="line.112"></a>
-<span class="sourceLineNo">113</span> TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterCoprocessorHost();<a name="line.113"></a>
-<span class="sourceLineNo">114</span> cpHost.load(AccessController.class, Coprocessor.PRIORITY_HIGHEST, conf);<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> USER_OWNER = User.createUserForTesting(conf, "owner", new String[0]);<a name="line.116"></a>
-<span class="sourceLineNo">117</span> USER_RW = User.createUserForTesting(conf, "rwuser", new String[0]);<a name="line.117"></a>
-<span class="sourceLineNo">118</span> USER_RO = User.createUserForTesting(conf, "rouser", new String[0]);<a name="line.118"></a>
-<span class="sourceLineNo">119</span> USER_NONE = User.createUserForTesting(conf, "usernone", new String[0]);<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> @Before<a name="line.122"></a>
-<span class="sourceLineNo">123</span> public void setUp() throws Exception {<a name="line.123"></a>
-<span class="sourceLineNo">124</span> TEST_UTIL.createTable(TableDescriptorBuilder.newBuilder(TEST_TABLE)<a name="line.124"></a>
-<span class="sourceLineNo">125</span> .setColumnFamily(<a name="line.125"></a>
-<span class="sourceLineNo">126</span> ColumnFamilyDescriptorBuilder.newBuilder(TEST_FAMILY).setMaxVersions(100).build())<a name="line.126"></a>
-<span class="sourceLineNo">127</span> .setOwner(USER_OWNER).build(), new byte[][] { Bytes.toBytes("s") });<a name="line.127"></a>
-<span class="sourceLineNo">128</span> TEST_UTIL.waitTableEnabled(TEST_TABLE);<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span> grantOnTable(TEST_UTIL, USER_RW.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.130"></a>
-<span class="sourceLineNo">131</span> Permission.Action.READ, Permission.Action.WRITE);<a name="line.131"></a>
+<span class="sourceLineNo">084</span> static class AccessWriteAction implements AccessTestAction {<a name="line.84"></a>
+<span class="sourceLineNo">085</span> private TableName tableName;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span> public AccessWriteAction(TableName tableName) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span> this.tableName = tableName;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span> @Override<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public Object run() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> Put p = new Put(TEST_ROW);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> p.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(0));<a name="line.94"></a>
+<span class="sourceLineNo">095</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.95"></a>
+<span class="sourceLineNo">096</span> Table t = conn.getTable(tableName)) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span> t.put(p);<a name="line.97"></a>
+<span class="sourceLineNo">098</span> }<a name="line.98"></a>
+<span class="sourceLineNo">099</span> return null;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> }<a name="line.100"></a>
+<span class="sourceLineNo">101</span> }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span> @BeforeClass<a name="line.103"></a>
+<span class="sourceLineNo">104</span> public static void setupBeforeClass() throws Exception {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> Configuration conf = TEST_UTIL.getConfiguration();<a name="line.105"></a>
+<span class="sourceLineNo">106</span> // Enable security<a name="line.106"></a>
+<span class="sourceLineNo">107</span> enableSecurity(conf);<a name="line.107"></a>
+<span class="sourceLineNo">108</span> conf.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, AccessController.class.getName());<a name="line.108"></a>
+<span class="sourceLineNo">109</span> // Verify enableSecurity sets up what we require<a name="line.109"></a>
+<span class="sourceLineNo">110</span> verifyConfiguration(conf);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> // Enable EXEC permission checking<a name="line.111"></a>
+<span class="sourceLineNo">112</span> conf.setBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span> TEST_UTIL.startMiniCluster();<a name="line.113"></a>
+<span class="sourceLineNo">114</span> TEST_UTIL.waitUntilAllRegionsAssigned(PermissionStorage.ACL_TABLE_NAME);<a name="line.114"></a>
+<span class="sourceLineNo">115</span> MasterCoprocessorHost cpHost =<a name="line.115"></a>
+<span class="sourceLineNo">116</span> TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterCoprocessorHost();<a name="line.116"></a>
+<span class="sourceLineNo">117</span> cpHost.load(AccessController.class, Coprocessor.PRIORITY_HIGHEST, conf);<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span> USER_OWNER = User.createUserForTesting(conf, "owner", new String[0]);<a name="line.119"></a>
+<span class="sourceLineNo">120</span> USER_RW = User.createUserForTesting(conf, "rwuser", new String[0]);<a name="line.120"></a>
+<span class="sourceLineNo">121</span> USER_RO = User.createUserForTesting(conf, "rouser", new String[0]);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> USER_NONE = User.createUserForTesting(conf, "usernone", new String[0]);<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> @Before<a name="line.125"></a>
+<span class="sourceLineNo">126</span> public void setUp() throws Exception {<a name="line.126"></a>
+<span class="sourceLineNo">127</span> TEST_UTIL.createTable(TableDescriptorBuilder.newBuilder(TEST_TABLE)<a name="line.127"></a>
+<span class="sourceLineNo">128</span> .setColumnFamily(<a name="line.128"></a>
+<span class="sourceLineNo">129</span> ColumnFamilyDescriptorBuilder.newBuilder(TEST_FAMILY).setMaxVersions(100).build())<a name="line.129"></a>
+<span class="sourceLineNo">130</span> .setOwner(USER_OWNER).build(), new byte[][] { Bytes.toBytes("s") });<a name="line.130"></a>
+<span class="sourceLineNo">131</span> TEST_UTIL.waitTableEnabled(TEST_TABLE);<a name="line.131"></a>
<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span> grantOnTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.133"></a>
-<span class="sourceLineNo">134</span> Permission.Action.READ);<a name="line.134"></a>
-<span class="sourceLineNo">135</span> }<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> private void loadData() throws IOException {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration())) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span> try (Table t = conn.getTable(TEST_TABLE)) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> for (int i = 0; i < ROW_COUNT; i++) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span> Put put = new Put(Bytes.toBytes(i));<a name="line.141"></a>
-<span class="sourceLineNo">142</span> put.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(i));<a name="line.142"></a>
-<span class="sourceLineNo">143</span> t.put(put);<a name="line.143"></a>
-<span class="sourceLineNo">144</span> }<a name="line.144"></a>
-<span class="sourceLineNo">145</span> }<a name="line.145"></a>
-<span class="sourceLineNo">146</span> }<a name="line.146"></a>
-<span class="sourceLineNo">147</span> }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span> @AfterClass<a name="line.149"></a>
-<span class="sourceLineNo">150</span> public static void tearDownAfterClass() throws Exception {<a name="line.150"></a>
-<span class="sourceLineNo">151</span> TEST_UTIL.shutdownMiniCluster();<a name="line.151"></a>
-<span class="sourceLineNo">152</span> }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span> private void verifyRows(TableName tableName) throws IOException {<a name="line.154"></a>
-<span class="sourceLineNo">155</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.155"></a>
-<span class="sourceLineNo">156</span> Table t = conn.getTable(tableName); ResultScanner scanner = t.getScanner(new Scan())) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Result result;<a name="line.157"></a>
-<span class="sourceLineNo">158</span> int rowCount = 0;<a name="line.158"></a>
-<span class="sourceLineNo">159</span> while ((result = scanner.next()) != null) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span> byte[] value = result.getValue(TEST_FAMILY, TEST_QUALIFIER);<a name="line.160"></a>
-<span class="sourceLineNo">161</span> Assert.assertArrayEquals(value, Bytes.toBytes(rowCount++));<a name="line.161"></a>
-<span class="sourceLineNo">162</span> }<a name="line.162"></a>
-<span class="sourceLineNo">163</span> Assert.assertEquals(ROW_COUNT, rowCount);<a name="line.163"></a>
-<span class="sourceLineNo">164</span> }<a name="line.164"></a>
-<span class="sourceLineNo">165</span> }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span> protected abstract void snapshot(String snapshotName, TableName tableName) throws Exception;<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span> protected abstract void cloneSnapshot(String snapshotName, TableName tableName,<a name="line.169"></a>
-<span class="sourceLineNo">170</span> boolean restoreAcl) throws Exception;<a name="line.170"></a>
+<span class="sourceLineNo">133</span> grantOnTable(TEST_UTIL, USER_RW.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.133"></a>
+<span class="sourceLineNo">134</span> Permission.Action.READ, Permission.Action.WRITE);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> grantOnTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.136"></a>
+<span class="sourceLineNo">137</span> Permission.Action.READ);<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> private void loadData() throws IOException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration())) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span> try (Table t = conn.getTable(TEST_TABLE)) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span> for (int i = 0; i < ROW_COUNT; i++) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> Put put = new Put(Bytes.toBytes(i));<a name="line.144"></a>
+<span class="sourceLineNo">145</span> put.addColumn(TEST_FAMILY, TEST_QUALIFIER, Bytes.toBytes(i));<a name="line.145"></a>
+<span class="sourceLineNo">146</span> t.put(put);<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> }<a name="line.148"></a>
+<span class="sourceLineNo">149</span> }<a name="line.149"></a>
+<span class="sourceLineNo">150</span> }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> @AfterClass<a name="line.152"></a>
+<span class="sourceLineNo">153</span> public static void tearDownAfterClass() throws Exception {<a name="line.153"></a>
+<span class="sourceLineNo">154</span> TEST_UTIL.shutdownMiniCluster();<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> private void verifyRows(TableName tableName) throws IOException {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.158"></a>
+<span class="sourceLineNo">159</span> Table t = conn.getTable(tableName); ResultScanner scanner = t.getScanner(new Scan())) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span> Result result;<a name="line.160"></a>
+<span class="sourceLineNo">161</span> int rowCount = 0;<a name="line.161"></a>
+<span class="sourceLineNo">162</span> while ((result = scanner.next()) != null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span> byte[] value = result.getValue(TEST_FAMILY, TEST_QUALIFIER);<a name="line.163"></a>
+<span class="sourceLineNo">164</span> Assert.assertArrayEquals(value, Bytes.toBytes(rowCount++));<a name="line.164"></a>
+<span class="sourceLineNo">165</span> }<a name="line.165"></a>
+<span class="sourceLineNo">166</span> Assert.assertEquals(ROW_COUNT, rowCount);<a name="line.166"></a>
+<span class="sourceLineNo">167</span> }<a name="line.167"></a>
+<span class="sourceLineNo">168</span> }<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span> protected abstract void snapshot(String snapshotName, TableName tableName) throws Exception;<a name="line.170"></a>
<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span> protected abstract void restoreSnapshot(String snapshotName, boolean restoreAcl) throws Exception;<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Test<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public void testRestoreSnapshot() throws Exception {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.178"></a>
-<span class="sourceLineNo">179</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span> loadData();<a name="line.181"></a>
-<span class="sourceLineNo">182</span> verifyRows(TEST_TABLE);<a name="line.182"></a>
+<span class="sourceLineNo">172</span> protected abstract void cloneSnapshot(String snapshotName, TableName tableName,<a name="line.172"></a>
+<span class="sourceLineNo">173</span> boolean restoreAcl) throws Exception;<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span> protected abstract void restoreSnapshot(String snapshotName, boolean restoreAcl) throws Exception;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span> @Test<a name="line.177"></a>
+<span class="sourceLineNo">178</span> public void testRestoreSnapshot() throws Exception {<a name="line.178"></a>
+<span class="sourceLineNo">179</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.179"></a>
+<span class="sourceLineNo">180</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.182"></a>
<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span> String snapshotName1 = TEST_UTIL.getRandomUUID().toString();<a name="line.184"></a>
-<span class="sourceLineNo">185</span> snapshot(snapshotName1, TEST_TABLE);<a name="line.185"></a>
+<span class="sourceLineNo">184</span> loadData();<a name="line.184"></a>
+<span class="sourceLineNo">185</span> verifyRows(TEST_TABLE);<a name="line.185"></a>
<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> // clone snapshot with restoreAcl true.<a name="line.187"></a>
-<span class="sourceLineNo">188</span> TableName tableName1 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.188"></a>
-<span class="sourceLineNo">189</span> cloneSnapshot(snapshotName1, tableName1, true);<a name="line.189"></a>
-<span class="sourceLineNo">190</span> verifyRows(tableName1);<a name="line.190"></a>
-<span class="sourceLineNo">191</span> verifyAllowed(new AccessReadAction(tableName1), USER_OWNER, USER_RO, USER_RW);<a name="line.191"></a>
-<span class="sourceLineNo">192</span> verifyDenied(new AccessReadAction(tableName1), USER_NONE);<a name="line.192"></a>
-<span class="sourceLineNo">193</span> verifyAllowed(new AccessWriteAction(tableName1), USER_OWNER, USER_RW);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> verifyDenied(new AccessWriteAction(tableName1), USER_RO, USER_NONE);<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span> // clone snapshot with restoreAcl false.<a name="line.196"></a>
-<span class="sourceLineNo">197</span> TableName tableName2 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.197"></a>
-<span class="sourceLineNo">198</span> cloneSnapshot(snapshotName1, tableName2, false);<a name="line.198"></a>
-<span class="sourceLineNo">199</span> verifyRows(tableName2);<a name="line.199"></a>
-<span class="sourceLineNo">200</span> verifyAllowed(new AccessReadAction(tableName2), USER_OWNER);<a name="line.200"></a>
-<span class="sourceLineNo">201</span> verifyDenied(new AccessReadAction(tableName2), USER_NONE, USER_RO, USER_RW);<a name="line.201"></a>
-<span class="sourceLineNo">202</span> verifyAllowed(new AccessWriteAction(tableName2), USER_OWNER);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> verifyDenied(new AccessWriteAction(tableName2), USER_RO, USER_RW, USER_NONE);<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span> // remove read permission for USER_RO.<a name="line.205"></a>
-<span class="sourceLineNo">206</span> revokeFromTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.206"></a>
-<span class="sourceLineNo">207</span> Permission.Action.READ);<a name="line.207"></a>
-<span class="sourceLineNo">208</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.209"></a>
-<span class="sourceLineNo">210</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.210"></a>
-<span class="sourceLineNo">211</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span> // restore snapshot with restoreAcl false.<a name="line.213"></a>
-<span class="sourceLineNo">214</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.214"></a>
-<span class="sourceLineNo">215</span> restoreSnapshot(snapshotName1, false);<a name="line.215"></a>
-<span class="sourceLineNo">216</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.216"></a>
-<span class="sourceLineNo">217</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.217"></a>
-<span class="sourceLineNo">218</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span> // restore snapshot with restoreAcl true.<a name="line.222"></a>
-<span class="sourceLineNo">223</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> restoreSnapshot(snapshotName1, true);<a name="line.224"></a>
-<span class="sourceLineNo">225</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.225"></a>
-<span class="sourceLineNo">226</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.226"></a>
-<span class="sourceLineNo">227</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.227"></a>
-<span class="sourceLineNo">228</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.228"></a>
-<span class="sourceLineNo">229</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.229"></a>
-<span class="sourceLineNo">230</span> }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>}<a name="line.231"></a>
+<span class="sourceLineNo">187</span> String snapshotName1 = TEST_UTIL.getRandomUUID().toString();<a name="line.187"></a>
+<span class="sourceLineNo">188</span> snapshot(snapshotName1, TEST_TABLE);<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span> // clone snapshot with restoreAcl true.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> TableName tableName1 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.191"></a>
+<span class="sourceLineNo">192</span> cloneSnapshot(snapshotName1, tableName1, true);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> verifyRows(tableName1);<a name="line.193"></a>
+<span class="sourceLineNo">194</span> verifyAllowed(new AccessReadAction(tableName1), USER_OWNER, USER_RO, USER_RW);<a name="line.194"></a>
+<span class="sourceLineNo">195</span> verifyDenied(new AccessReadAction(tableName1), USER_NONE);<a name="line.195"></a>
+<span class="sourceLineNo">196</span> verifyAllowed(new AccessWriteAction(tableName1), USER_OWNER, USER_RW);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> verifyDenied(new AccessWriteAction(tableName1), USER_RO, USER_NONE);<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span> // clone snapshot with restoreAcl false.<a name="line.199"></a>
+<span class="sourceLineNo">200</span> TableName tableName2 = TableName.valueOf(TEST_UTIL.getRandomUUID().toString());<a name="line.200"></a>
+<span class="sourceLineNo">201</span> cloneSnapshot(snapshotName1, tableName2, false);<a name="line.201"></a>
+<span class="sourceLineNo">202</span> verifyRows(tableName2);<a name="line.202"></a>
+<span class="sourceLineNo">203</span> verifyAllowed(new AccessReadAction(tableName2), USER_OWNER);<a name="line.203"></a>
+<span class="sourceLineNo">204</span> verifyDenied(new AccessReadAction(tableName2), USER_NONE, USER_RO, USER_RW);<a name="line.204"></a>
+<span class="sourceLineNo">205</span> verifyAllowed(new AccessWriteAction(tableName2), USER_OWNER);<a name="line.205"></a>
+<span class="sourceLineNo">206</span> verifyDenied(new AccessWriteAction(tableName2), USER_RO, USER_RW, USER_NONE);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span> // remove read permission for USER_RO.<a name="line.208"></a>
+<span class="sourceLineNo">209</span> revokeFromTable(TEST_UTIL, USER_RO.getShortName(), TEST_TABLE, TEST_FAMILY, null,<a name="line.209"></a>
+<span class="sourceLineNo">210</span> Permission.Action.READ);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.211"></a>
+<span class="sourceLineNo">212</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.212"></a>
+<span class="sourceLineNo">213</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.213"></a>
+<span class="sourceLineNo">214</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span> // restore snapshot with restoreAcl false.<a name="line.216"></a>
+<span class="sourceLineNo">217</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> restoreSnapshot(snapshotName1, false);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.221"></a>
+<span class="sourceLineNo">222</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> // restore snapshot with restoreAcl true.<a name="line.225"></a>
+<span class="sourceLineNo">226</span> TEST_UTIL.getAdmin().disableTable(TEST_TABLE);<a name="line.226"></a>
+<span class="sourceLineNo">227</span> restoreSnapshot(snapshotName1, true);<a name="line.227"></a>
+<span class="sourceLineNo">228</span> TEST_UTIL.getAdmin().enableTable(TEST_TABLE);<a name="line.228"></a>
+<span class="sourceLineNo">229</span> verifyAllowed(new AccessReadAction(TEST_TABLE), USER_OWNER, USER_RO, USER_RW);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> verifyDenied(new AccessReadAction(TEST_TABLE), USER_NONE);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> verifyAllowed(new AccessWriteAction(TEST_TABLE), USER_OWNER, USER_RW);<a name="line.231"></a>
+<span class="sourceLineNo">232</span> verifyDenied(new AccessWriteAction(TEST_TABLE), USER_RO, USER_NONE);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span> final class AccessSnapshotAction implements AccessTestAction {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> private String snapshotName;<a name="line.237"></a>
+<span class="sourceLineNo">238</span> private AccessSnapshotAction(String snapshotName) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> this.snapshotName = snapshotName;<a name="line.239"></a>
+<span class="sourceLineNo">240</span> }<a name="line.240"></a>
+<span class="sourceLineNo">241</span> @Override<a name="line.241"></a>
+<span class="sourceLineNo">242</span> public Object run() throws Exception {<a name="line.242"></a>
+<span class="sourceLineNo">243</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.243"></a>
+<span class="sourceLineNo">244</span> Admin admin = conn.getAdmin()) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.snapshot(this.snapshotName, TEST_TABLE);<a name="line.245"></a>
+<span class="sourceLineNo">246</span> }<a name="line.246"></a>
+<span class="sourceLineNo">247</span> return null;<a name="line.247"></a>
+<span class="sourceLineNo">248</span> }<a name="line.248"></a>
+<span class="sourceLineNo">249</span> }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span> @Test<a name="line.251"></a>
+<span class="sourceLineNo">252</span> public void testDeleteSnapshot() throws Exception {<a name="line.252"></a>
+<span class="sourceLineNo">253</span> String testSnapshotName = HBaseCommonTestingUtility.getRandomUUID().toString();<a name="line.253"></a>
+<span class="sourceLineNo">254</span> verifyAllowed(new AccessSnapshotAction(testSnapshotName), USER_OWNER);<a name="line.254"></a>
+<span class="sourceLineNo">255</span> verifyDenied(new AccessSnapshotAction(HBaseCommonTestingUtility.getRandomUUID().toString()),<a name="line.255"></a>
+<span class="sourceLineNo">256</span> USER_RO, USER_RW, USER_NONE);<a name="line.256"></a>
+<span class="sourceLineNo">257</span> List<SnapshotDescription> snapshotDescriptions = TEST_UTIL.getAdmin().listSnapshots(<a name="line.257"></a>
+<span class="sourceLineNo">258</span> Pattern.compile(testSnapshotName));<a name="line.258"></a>
+<span class="sourceLineNo">259</span> Assert.assertEquals(1, snapshotDescriptions.size());<a name="line.259"></a>
+<span class="sourceLineNo">260</span> Assert.assertEquals(USER_OWNER.getShortName(), snapshotDescriptions.get(0).getOwner());<a name="line.260"></a>
+<span class="sourceLineNo">261</span> AccessTestAction deleteSnapshotAction = () -> {<a name="line.261"></a>
+<span class="sourceLineNo">262</span> try (Connection conn = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.262"></a>
+<span class="sourceLineNo">263</span> Admin admin = conn.getAdmin()) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span> admin.deleteSnapshot(testSnapshotName);<a name="line.264"></a>
+<span class="sourceLineNo">265</span> }<a name="line.265"></a>
+<span class="sourceLineNo">266</span> return null;<a name="line.266"></a>
+<span class="sourceLineNo">267</span> };<a name="line.267"></a>
+<span class="sourceLineNo">268</span> verifyDenied(deleteSnapshotAction, USER_RO, USER_RW, USER_NONE);<a name="line.268"></a>
+<span class="sourceLineNo">269</span> verifyAllowed(deleteSnapshotAction, USER_OWNER);<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span> List<SnapshotDescription> snapshotsAfterDelete = TEST_UTIL.getAdmin().listSnapshots(<a name="line.271"></a>
+<span class="sourceLineNo">272</span> Pattern.compile(testSnapshotName));<a name="line.272"></a>
+<span class="sourceLineNo">273</span> Assert.assertEquals(0, snapshotsAfterDelete.size());<a name="line.273"></a>
+<span class="sourceLineNo">274</span> }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>}<a name="line.275"></a>