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 d3aa8dc6622 Published site at 0f6bbde6a8b8086b5140d2b5a55101121139c926.
d3aa8dc6622 is described below
commit d3aa8dc662227cfc801bd5c12920a6315b1d24fa
Author: jenkins <[email protected]>
AuthorDate: Mon Dec 15 14:53:53 2025 +0000
Published site at 0f6bbde6a8b8086b5140d2b5a55101121139c926.
---
apache_hbase_reference_guide.pdf | 4 +-
.../hadoop/hbase/quotas/DefaultOperationQuota.html | 45 ++---
book.html | 2 +-
checkstyle-aggregate.html | 4 +-
dependency-convergence.html | 4 +-
dependency-info.html | 4 +-
dependency-management.html | 4 +-
.../hadoop/hbase/quotas/DefaultOperationQuota.html | 4 +-
.../SerialReplicationSourceWALReader.html | 2 +-
.../hadoop/hbase/quotas/DefaultOperationQuota.html | 45 ++---
.../SerialReplicationSourceWALReader.html | 77 ++++----
hbase-website/dependency-convergence.html | 4 +-
hbase-website/dependency-info.html | 4 +-
hbase-website/dependency-management.html | 4 +-
hbase-website/index.html | 4 +-
hbase-website/issue-management.html | 4 +-
hbase-website/licenses.html | 4 +-
hbase-website/mailing-lists.html | 4 +-
hbase-website/plugin-management.html | 4 +-
hbase-website/plugins.html | 4 +-
hbase-website/project-info.html | 4 +-
hbase-website/scm.html | 4 +-
hbase-website/summary.html | 4 +-
hbase-website/team.html | 4 +-
issue-management.html | 4 +-
licenses.html | 4 +-
mailing-lists.html | 4 +-
plugin-management.html | 4 +-
plugins.html | 4 +-
project-info.html | 4 +-
project-reports.html | 4 +-
scm.html | 4 +-
summary.html | 4 +-
team.html | 4 +-
testapidocs/index-all.html | 2 -
testapidocs/member-search-index.js | 2 +-
.../hadoop/hbase/class-use/HBaseClassTestRule.html | 5 +-
.../hbase/quotas/TestThreadHandlerUsageQuota.html | 204 +++++++++++----------
.../hadoop/hbase/quotas/ThrottleQuotaTestUtil.html | 2 +-
testdevapidocs/constant-values.html | 3 -
testdevapidocs/index-all.html | 4 -
testdevapidocs/member-search-index.js | 2 +-
.../hadoop/hbase/class-use/HBaseClassTestRule.html | 5 +-
.../hbase/quotas/TestThreadHandlerUsageQuota.html | 71 +++----
.../hadoop/hbase/quotas/ThrottleQuotaTestUtil.html | 4 +-
.../hbase/quotas/TestThreadHandlerUsageQuota.html | 204 +++++++++++----------
.../hadoop/hbase/quotas/ThrottleQuotaTestUtil.html | 2 +-
47 files changed, 388 insertions(+), 409 deletions(-)
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 05a6122a54a..47dcdfb22f1 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
/Author (Apache HBase Team)
/Creator (Asciidoctor PDF 2.0.6, based on Prawn 2.4.0)
/Producer (Apache HBase Team)
-/ModDate (D:20251213143116+00'00')
-/CreationDate (D:20251213144655+00'00')
+/ModDate (D:20251215143143+00'00')
+/CreationDate (D:20251215144835+00'00')
>>
endobj
2 0 obj
diff --git
a/apidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
b/apidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
index 834c8f5f2f7..b0576532db2 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
@@ -323,27 +323,30 @@
<span class="source-line-no">310</span><span id="line-310"> return
calculateReadCapacityUnit(actualSize) -
calculateReadCapacityUnit(estimateSize);</span>
<span class="source-line-no">311</span><span id="line-311"> }</span>
<span class="source-line-no">312</span><span id="line-312"></span>
-<span class="source-line-no">313</span><span id="line-313"> private long
calculateHandlerUsageTimeEstimate(final double requestsPerSecond,</span>
-<span class="source-line-no">314</span><span id="line-314"> final int
numHandlerThreads) {</span>
-<span class="source-line-no">315</span><span id="line-315"> if
(requestsPerSecond <= numHandlerThreads) {</span>
-<span class="source-line-no">316</span><span id="line-316"> // If less
than 1 request per second per handler thread, then we use the number of
handler</span>
-<span class="source-line-no">317</span><span id="line-317"> // threads as
a baseline to avoid incorrect estimations when the number of requests is
very</span>
-<span class="source-line-no">318</span><span id="line-318"> // low.</span>
-<span class="source-line-no">319</span><span id="line-319"> return
numHandlerThreads;</span>
-<span class="source-line-no">320</span><span id="line-320"> } else {</span>
-<span class="source-line-no">321</span><span id="line-321"> double
requestsPerMillisecond = Math.ceil(requestsPerSecond / 1000);</span>
-<span class="source-line-no">322</span><span id="line-322"> // We don't
ever want zero here</span>
-<span class="source-line-no">323</span><span id="line-323"> return
Math.max((long) requestsPerMillisecond, 1L);</span>
-<span class="source-line-no">324</span><span id="line-324"> }</span>
-<span class="source-line-no">325</span><span id="line-325"> }</span>
-<span class="source-line-no">326</span><span id="line-326"></span>
-<span class="source-line-no">327</span><span id="line-327"> private long
calculateHandlerUsageMsDiff() {</span>
-<span class="source-line-no">328</span><span id="line-328"> long
currentTime = EnvironmentEdgeManager.currentTime();</span>
-<span class="source-line-no">329</span><span id="line-329"> long startTime
=
RpcServer.getCurrentCall().map(RpcCall::getStartTime).orElse(currentTime);</span>
-<span class="source-line-no">330</span><span id="line-330"> long
timeElapsed = currentTime - startTime;</span>
-<span class="source-line-no">331</span><span id="line-331"> return
handlerUsageTimeConsumed - timeElapsed;</span>
-<span class="source-line-no">332</span><span id="line-332"> }</span>
-<span class="source-line-no">333</span><span id="line-333">}</span>
+<span class="source-line-no">313</span><span id="line-313"> // TODO: the
implementation of this method seems incorrect, although finally we will correct
the</span>
+<span class="source-line-no">314</span><span id="line-314"> // usage when
closing</span>
+<span class="source-line-no">315</span><span id="line-315"> private long
calculateHandlerUsageTimeEstimate(final double requestsPerSecond,</span>
+<span class="source-line-no">316</span><span id="line-316"> final int
numHandlerThreads) {</span>
+<span class="source-line-no">317</span><span id="line-317"> if
(requestsPerSecond <= numHandlerThreads) {</span>
+<span class="source-line-no">318</span><span id="line-318"> // If less
than 1 request per second per handler thread, then we use the number of
handler</span>
+<span class="source-line-no">319</span><span id="line-319"> // threads as
a baseline to avoid incorrect estimations when the number of requests is
very</span>
+<span class="source-line-no">320</span><span id="line-320"> // low.</span>
+<span class="source-line-no">321</span><span id="line-321"> return
numHandlerThreads;</span>
+<span class="source-line-no">322</span><span id="line-322"> } else {</span>
+<span class="source-line-no">323</span><span id="line-323"> double
requestsPerMillisecond = Math.ceil(requestsPerSecond / 1000);</span>
+<span class="source-line-no">324</span><span id="line-324"> // We don't
ever want zero here</span>
+<span class="source-line-no">325</span><span id="line-325"> return
Math.max((long) requestsPerMillisecond, 1L);</span>
+<span class="source-line-no">326</span><span id="line-326"> }</span>
+<span class="source-line-no">327</span><span id="line-327"> }</span>
+<span class="source-line-no">328</span><span id="line-328"></span>
+<span class="source-line-no">329</span><span id="line-329"> private long
calculateHandlerUsageMsDiff() {</span>
+<span class="source-line-no">330</span><span id="line-330"> long
currentTime = EnvironmentEdgeManager.currentTime();</span>
+<span class="source-line-no">331</span><span id="line-331"> long startTime
=
RpcServer.getCurrentCall().map(RpcCall::getStartTime).orElse(currentTime);</span>
+<span class="source-line-no">332</span><span id="line-332"> long
timeElapsed = currentTime - startTime;</span>
+<span class="source-line-no">333</span><span id="line-333"> // actualTime -
estimateTime</span>
+<span class="source-line-no">334</span><span id="line-334"> return
timeElapsed - handlerUsageTimeConsumed;</span>
+<span class="source-line-no">335</span><span id="line-335"> }</span>
+<span class="source-line-no">336</span><span id="line-336">}</span>
diff --git a/book.html b/book.html
index 6a2ff09f3ad..661ffd3f9e6 100644
--- a/book.html
+++ b/book.html
@@ -50183,7 +50183,7 @@
org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
<div id="footer">
<div id="footer-text">
Version 4.0.0-alpha-1-SNAPSHOT<br>
-Last updated 2025-12-13 14:31:16 UTC
+Last updated 2025-12-15 14:31:43 UTC
</div>
</div>
<script type="text/x-mathjax-config">
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 4e1bec89eaf..765c4aa2b5c 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-checkstyle-plugin:3.6.0:checkstyle-aggregate at
2025-12-13
+ from
org.apache.maven.plugins:maven-checkstyle-plugin:3.6.0:checkstyle-aggregate at
2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 039032a95e9..e994ebe0ae5 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-convergence
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-convergence
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/dependency-info.html b/dependency-info.html
index 5a22b6416d8..f6c1f786c48 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-info
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-info
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/dependency-management.html b/dependency-management.html
index d1dc6ebdbf8..eff00e0f689 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-management
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-management
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git
a/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
b/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
index 24caa9138ec..810d9509327 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
@@ -732,14 +732,14 @@ implements <a href="OperationQuota.html" title="interface
in org.apache.hadoop.h
<li>
<section class="detail" id="calculateHandlerUsageTimeEstimate(double,int)">
<h3>calculateHandlerUsageTimeEstimate</h3>
-<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">long</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html#line-313">calculateHandlerUsageTimeEstimate</a></span><wbr><span
class="parameters">(double requestsPerSecond,
+<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">long</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html#line-315">calculateHandlerUsageTimeEstimate</a></span><wbr><span
class="parameters">(double requestsPerSecond,
int numHandlerThreads)</span></div>
</section>
</li>
<li>
<section class="detail" id="calculateHandlerUsageMsDiff()">
<h3>calculateHandlerUsageMsDiff</h3>
-<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">long</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html#line-327">calculateHandlerUsageMsDiff</a></span>()</div>
+<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">long</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html#line-329">calculateHandlerUsageMsDiff</a></span>()</div>
</section>
</li>
</ul>
diff --git
a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
index 96e7afdafc9..a304055db4d 100644
---
a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
+++
b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
@@ -253,7 +253,7 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail"
id="removeEntryFromStream(org.apache.hadoop.hbase.wal.WAL.Entry,org.apache.hadoop.hbase.replication.regionserver.WALEntryStream,org.apache.hadoop.hbase.replication.regionserver.WALEntryBatch)">
<h3>removeEntryFromStream</h3>
-<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html#line-125">removeEntryFromStream</a></span><wbr><span
class="parameters">(<a href="../../wal/WAL.Entry.html" title="class in
org.apache.hadoop.hbase.wal">WAL.Entry</a> entry,
+<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html#line-130">removeEntryFromStream</a></span><wbr><span
class="parameters">(<a href="../../wal/WAL.Entry.html" title="class in
org.apache.hadoop.hbase.wal">WAL.Entry</a> entry,
<a href="WALEntryStream.html" title="class in
org.apache.hadoop.hbase.replication.regionserver">WALEntryStream</a> entryStream,
<a href="WALEntryBatch.html" title="class in
org.apache.hadoop.hbase.replication.regionserver">WALEntryBatch</a> batch)</span></div>
</section>
diff --git
a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
index 834c8f5f2f7..b0576532db2 100644
---
a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
+++
b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
@@ -323,27 +323,30 @@
<span class="source-line-no">310</span><span id="line-310"> return
calculateReadCapacityUnit(actualSize) -
calculateReadCapacityUnit(estimateSize);</span>
<span class="source-line-no">311</span><span id="line-311"> }</span>
<span class="source-line-no">312</span><span id="line-312"></span>
-<span class="source-line-no">313</span><span id="line-313"> private long
calculateHandlerUsageTimeEstimate(final double requestsPerSecond,</span>
-<span class="source-line-no">314</span><span id="line-314"> final int
numHandlerThreads) {</span>
-<span class="source-line-no">315</span><span id="line-315"> if
(requestsPerSecond <= numHandlerThreads) {</span>
-<span class="source-line-no">316</span><span id="line-316"> // If less
than 1 request per second per handler thread, then we use the number of
handler</span>
-<span class="source-line-no">317</span><span id="line-317"> // threads as
a baseline to avoid incorrect estimations when the number of requests is
very</span>
-<span class="source-line-no">318</span><span id="line-318"> // low.</span>
-<span class="source-line-no">319</span><span id="line-319"> return
numHandlerThreads;</span>
-<span class="source-line-no">320</span><span id="line-320"> } else {</span>
-<span class="source-line-no">321</span><span id="line-321"> double
requestsPerMillisecond = Math.ceil(requestsPerSecond / 1000);</span>
-<span class="source-line-no">322</span><span id="line-322"> // We don't
ever want zero here</span>
-<span class="source-line-no">323</span><span id="line-323"> return
Math.max((long) requestsPerMillisecond, 1L);</span>
-<span class="source-line-no">324</span><span id="line-324"> }</span>
-<span class="source-line-no">325</span><span id="line-325"> }</span>
-<span class="source-line-no">326</span><span id="line-326"></span>
-<span class="source-line-no">327</span><span id="line-327"> private long
calculateHandlerUsageMsDiff() {</span>
-<span class="source-line-no">328</span><span id="line-328"> long
currentTime = EnvironmentEdgeManager.currentTime();</span>
-<span class="source-line-no">329</span><span id="line-329"> long startTime
=
RpcServer.getCurrentCall().map(RpcCall::getStartTime).orElse(currentTime);</span>
-<span class="source-line-no">330</span><span id="line-330"> long
timeElapsed = currentTime - startTime;</span>
-<span class="source-line-no">331</span><span id="line-331"> return
handlerUsageTimeConsumed - timeElapsed;</span>
-<span class="source-line-no">332</span><span id="line-332"> }</span>
-<span class="source-line-no">333</span><span id="line-333">}</span>
+<span class="source-line-no">313</span><span id="line-313"> // TODO: the
implementation of this method seems incorrect, although finally we will correct
the</span>
+<span class="source-line-no">314</span><span id="line-314"> // usage when
closing</span>
+<span class="source-line-no">315</span><span id="line-315"> private long
calculateHandlerUsageTimeEstimate(final double requestsPerSecond,</span>
+<span class="source-line-no">316</span><span id="line-316"> final int
numHandlerThreads) {</span>
+<span class="source-line-no">317</span><span id="line-317"> if
(requestsPerSecond <= numHandlerThreads) {</span>
+<span class="source-line-no">318</span><span id="line-318"> // If less
than 1 request per second per handler thread, then we use the number of
handler</span>
+<span class="source-line-no">319</span><span id="line-319"> // threads as
a baseline to avoid incorrect estimations when the number of requests is
very</span>
+<span class="source-line-no">320</span><span id="line-320"> // low.</span>
+<span class="source-line-no">321</span><span id="line-321"> return
numHandlerThreads;</span>
+<span class="source-line-no">322</span><span id="line-322"> } else {</span>
+<span class="source-line-no">323</span><span id="line-323"> double
requestsPerMillisecond = Math.ceil(requestsPerSecond / 1000);</span>
+<span class="source-line-no">324</span><span id="line-324"> // We don't
ever want zero here</span>
+<span class="source-line-no">325</span><span id="line-325"> return
Math.max((long) requestsPerMillisecond, 1L);</span>
+<span class="source-line-no">326</span><span id="line-326"> }</span>
+<span class="source-line-no">327</span><span id="line-327"> }</span>
+<span class="source-line-no">328</span><span id="line-328"></span>
+<span class="source-line-no">329</span><span id="line-329"> private long
calculateHandlerUsageMsDiff() {</span>
+<span class="source-line-no">330</span><span id="line-330"> long
currentTime = EnvironmentEdgeManager.currentTime();</span>
+<span class="source-line-no">331</span><span id="line-331"> long startTime
=
RpcServer.getCurrentCall().map(RpcCall::getStartTime).orElse(currentTime);</span>
+<span class="source-line-no">332</span><span id="line-332"> long
timeElapsed = currentTime - startTime;</span>
+<span class="source-line-no">333</span><span id="line-333"> // actualTime -
estimateTime</span>
+<span class="source-line-no">334</span><span id="line-334"> return
timeElapsed - handlerUsageTimeConsumed;</span>
+<span class="source-line-no">335</span><span id="line-335"> }</span>
+<span class="source-line-no">336</span><span id="line-336">}</span>
diff --git
a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
index f49a53b9e05..ceb935a891d 100644
---
a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
+++
b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html
@@ -109,43 +109,48 @@
<span class="source-line-no">096</span><span id="line-96">
break;</span>
<span class="source-line-no">097</span><span id="line-97"> }</span>
<span class="source-line-no">098</span><span id="line-98">
sleepMultiplier = sleep(sleepMultiplier);</span>
-<span class="source-line-no">099</span><span id="line-99"> }</span>
-<span class="source-line-no">100</span><span id="line-100"> // actually
remove the entry.</span>
-<span class="source-line-no">101</span><span id="line-101">
removeEntryFromStream(entry, entryStream, batch);</span>
-<span class="source-line-no">102</span><span id="line-102"> if
(addEntryToBatch(batch, entry)) {</span>
-<span class="source-line-no">103</span><span id="line-103">
break;</span>
+<span class="source-line-no">099</span><span id="line-99"> // Always
make sure to continue/break from the loop after handling the exception.</span>
+<span class="source-line-no">100</span><span id="line-100"> //
Otherwise we will drop down below into logic to push the entry,</span>
+<span class="source-line-no">101</span><span id="line-101"> // but
since we don't know if the entry can be pushed we may push</span>
+<span class="source-line-no">102</span><span id="line-102"> // the
entry out of order, breaking serial replication guarantees.</span>
+<span class="source-line-no">103</span><span id="line-103">
continue;</span>
<span class="source-line-no">104</span><span id="line-104"> }</span>
-<span class="source-line-no">105</span><span id="line-105"> } else
{</span>
-<span class="source-line-no">106</span><span id="line-106"> // actually
remove the entry.</span>
-<span class="source-line-no">107</span><span id="line-107">
removeEntryFromStream(null, entryStream, batch);</span>
-<span class="source-line-no">108</span><span id="line-108"> }</span>
-<span class="source-line-no">109</span><span id="line-109">
WALEntryStream.HasNext hasNext = entryStream.hasNext();</span>
-<span class="source-line-no">110</span><span id="line-110"> // always
return if we have switched to a new file.</span>
-<span class="source-line-no">111</span><span id="line-111"> if
(switched(entryStream, currentPath)) {</span>
-<span class="source-line-no">112</span><span id="line-112">
batch.setEndOfFile(true);</span>
-<span class="source-line-no">113</span><span id="line-113">
break;</span>
-<span class="source-line-no">114</span><span id="line-114"> }</span>
-<span class="source-line-no">115</span><span id="line-115"> if (hasNext
!= WALEntryStream.HasNext.YES) {</span>
-<span class="source-line-no">116</span><span id="line-116"> // For
hasNext other than YES, it is OK to just retry.</span>
-<span class="source-line-no">117</span><span id="line-117"> // As for
RETRY and RETRY_IMMEDIATELY, the correct action is to retry, and for NO, it
will</span>
-<span class="source-line-no">118</span><span id="line-118"> // return
NO again when you call the method next time, so it is OK to just return here
and</span>
-<span class="source-line-no">119</span><span id="line-119"> // let the
loop in the upper layer to call hasNext again.</span>
-<span class="source-line-no">120</span><span id="line-120">
break;</span>
-<span class="source-line-no">121</span><span id="line-121"> }</span>
-<span class="source-line-no">122</span><span id="line-122"> }</span>
-<span class="source-line-no">123</span><span id="line-123"> }</span>
-<span class="source-line-no">124</span><span id="line-124"></span>
-<span class="source-line-no">125</span><span id="line-125"> private void
removeEntryFromStream(Entry entry, WALEntryStream entryStream, WALEntryBatch
batch) {</span>
-<span class="source-line-no">126</span><span id="line-126">
entryStream.next();</span>
-<span class="source-line-no">127</span><span id="line-127">
batch.setLastWalPosition(entryStream.getPosition());</span>
-<span class="source-line-no">128</span><span id="line-128"> // record last
pushed sequence id if needed</span>
-<span class="source-line-no">129</span><span id="line-129"> if (entry !=
null) {</span>
-<span class="source-line-no">130</span><span id="line-130">
batch.setLastSeqId(Bytes.toString(entry.getKey().getEncodedRegionName()),</span>
-<span class="source-line-no">131</span><span id="line-131">
entry.getKey().getSequenceId());</span>
-<span class="source-line-no">132</span><span id="line-132"> }</span>
-<span class="source-line-no">133</span><span id="line-133">
firstCellInEntryBeforeFiltering = null;</span>
-<span class="source-line-no">134</span><span id="line-134"> }</span>
-<span class="source-line-no">135</span><span id="line-135">}</span>
+<span class="source-line-no">105</span><span id="line-105"> // actually
remove the entry.</span>
+<span class="source-line-no">106</span><span id="line-106">
removeEntryFromStream(entry, entryStream, batch);</span>
+<span class="source-line-no">107</span><span id="line-107"> if
(addEntryToBatch(batch, entry)) {</span>
+<span class="source-line-no">108</span><span id="line-108">
break;</span>
+<span class="source-line-no">109</span><span id="line-109"> }</span>
+<span class="source-line-no">110</span><span id="line-110"> } else
{</span>
+<span class="source-line-no">111</span><span id="line-111"> // actually
remove the entry.</span>
+<span class="source-line-no">112</span><span id="line-112">
removeEntryFromStream(null, entryStream, batch);</span>
+<span class="source-line-no">113</span><span id="line-113"> }</span>
+<span class="source-line-no">114</span><span id="line-114">
WALEntryStream.HasNext hasNext = entryStream.hasNext();</span>
+<span class="source-line-no">115</span><span id="line-115"> // always
return if we have switched to a new file.</span>
+<span class="source-line-no">116</span><span id="line-116"> if
(switched(entryStream, currentPath)) {</span>
+<span class="source-line-no">117</span><span id="line-117">
batch.setEndOfFile(true);</span>
+<span class="source-line-no">118</span><span id="line-118">
break;</span>
+<span class="source-line-no">119</span><span id="line-119"> }</span>
+<span class="source-line-no">120</span><span id="line-120"> if (hasNext
!= WALEntryStream.HasNext.YES) {</span>
+<span class="source-line-no">121</span><span id="line-121"> // For
hasNext other than YES, it is OK to just retry.</span>
+<span class="source-line-no">122</span><span id="line-122"> // As for
RETRY and RETRY_IMMEDIATELY, the correct action is to retry, and for NO, it
will</span>
+<span class="source-line-no">123</span><span id="line-123"> // return
NO again when you call the method next time, so it is OK to just return here
and</span>
+<span class="source-line-no">124</span><span id="line-124"> // let the
loop in the upper layer to call hasNext again.</span>
+<span class="source-line-no">125</span><span id="line-125">
break;</span>
+<span class="source-line-no">126</span><span id="line-126"> }</span>
+<span class="source-line-no">127</span><span id="line-127"> }</span>
+<span class="source-line-no">128</span><span id="line-128"> }</span>
+<span class="source-line-no">129</span><span id="line-129"></span>
+<span class="source-line-no">130</span><span id="line-130"> private void
removeEntryFromStream(Entry entry, WALEntryStream entryStream, WALEntryBatch
batch) {</span>
+<span class="source-line-no">131</span><span id="line-131">
entryStream.next();</span>
+<span class="source-line-no">132</span><span id="line-132">
batch.setLastWalPosition(entryStream.getPosition());</span>
+<span class="source-line-no">133</span><span id="line-133"> // record last
pushed sequence id if needed</span>
+<span class="source-line-no">134</span><span id="line-134"> if (entry !=
null) {</span>
+<span class="source-line-no">135</span><span id="line-135">
batch.setLastSeqId(Bytes.toString(entry.getKey().getEncodedRegionName()),</span>
+<span class="source-line-no">136</span><span id="line-136">
entry.getKey().getSequenceId());</span>
+<span class="source-line-no">137</span><span id="line-137"> }</span>
+<span class="source-line-no">138</span><span id="line-138">
firstCellInEntryBeforeFiltering = null;</span>
+<span class="source-line-no">139</span><span id="line-139"> }</span>
+<span class="source-line-no">140</span><span id="line-140">}</span>
diff --git a/hbase-website/dependency-convergence.html
b/hbase-website/dependency-convergence.html
index b434ca61d67..ca516216de7 100644
--- a/hbase-website/dependency-convergence.html
+++ b/hbase-website/dependency-convergence.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-convergence
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-convergence
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/dependency-info.html
b/hbase-website/dependency-info.html
index 14e793f7c65..9567c5792ba 100644
--- a/hbase-website/dependency-info.html
+++ b/hbase-website/dependency-info.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-info
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-info
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/dependency-management.html
b/hbase-website/dependency-management.html
index b5d3a98b739..41247987e09 100644
--- a/hbase-website/dependency-management.html
+++ b/hbase-website/dependency-management.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-management
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:dependency-management
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/index.html b/hbase-website/index.html
index 50372fdf585..637f95d5ee6 100644
--- a/hbase-website/index.html
+++ b/hbase-website/index.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:index
at 2025-12-13
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:index
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/issue-management.html
b/hbase-website/issue-management.html
index 655ec88b868..74973c7e8f1 100644
--- a/hbase-website/issue-management.html
+++ b/hbase-website/issue-management.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:issue-management
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:issue-management
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/licenses.html b/hbase-website/licenses.html
index da5aa8a894b..d7c1070c9f7 100644
--- a/hbase-website/licenses.html
+++ b/hbase-website/licenses.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:licenses at
2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:licenses at
2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/mailing-lists.html b/hbase-website/mailing-lists.html
index eeac3c5710b..1862fb7b890 100644
--- a/hbase-website/mailing-lists.html
+++ b/hbase-website/mailing-lists.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:mailing-lists
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:mailing-lists
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/plugin-management.html
b/hbase-website/plugin-management.html
index 0af24bc8192..520f6abaff7 100644
--- a/hbase-website/plugin-management.html
+++ b/hbase-website/plugin-management.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:plugin-management
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:plugin-management
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/plugins.html b/hbase-website/plugins.html
index 9a635868319..ac206220ecb 100644
--- a/hbase-website/plugins.html
+++ b/hbase-website/plugins.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:plugins
at 2025-12-13
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:plugins
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/project-info.html b/hbase-website/project-info.html
index c6ef0ba1cee..d8a8075544e 100644
--- a/hbase-website/project-info.html
+++ b/hbase-website/project-info.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
at 2025-12-13
+ from
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/scm.html b/hbase-website/scm.html
index ec96795ab62..f2ca5b288ce 100644
--- a/hbase-website/scm.html
+++ b/hbase-website/scm.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:scm at
2025-12-13
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:scm at
2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/summary.html b/hbase-website/summary.html
index ed4d438d2c6..cc428e619ea 100644
--- a/hbase-website/summary.html
+++ b/hbase-website/summary.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:summary
at 2025-12-13
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:summary
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/hbase-website/team.html b/hbase-website/team.html
index e79adc2bb8f..de611dce3ee 100644
--- a/hbase-website/team.html
+++ b/hbase-website/team.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:team at
2025-12-13
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:team at
2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase - Website
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/issue-management.html b/issue-management.html
index 8ab4bae1ef8..d07f4653a66 100644
--- a/issue-management.html
+++ b/issue-management.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:issue-management
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:issue-management
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/licenses.html b/licenses.html
index 803a28b2f9b..b13cfa15b8d 100644
--- a/licenses.html
+++ b/licenses.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:licenses at
2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:licenses at
2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/mailing-lists.html b/mailing-lists.html
index e414624fcef..e42dd3a2cb5 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:mailing-lists
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:mailing-lists
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/plugin-management.html b/plugin-management.html
index cfa490c1520..b501b1be31a 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:plugin-management
at 2025-12-13
+ from
org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:plugin-management
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/plugins.html b/plugins.html
index 0a8c85188e7..6ee8dd24a4d 100644
--- a/plugins.html
+++ b/plugins.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:plugins
at 2025-12-13
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:plugins
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/project-info.html b/project-info.html
index 66474e5006e..a53a5167a71 100644
--- a/project-info.html
+++ b/project-info.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
at 2025-12-13
+ from
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/project-reports.html b/project-reports.html
index 68c135a58b4..e1ad556f24f 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
at 2025-12-13
+ from
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/scm.html b/scm.html
index 7c4300a4662..5d0848d6ace 100644
--- a/scm.html
+++ b/scm.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:scm at
2025-12-13
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:scm at
2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/summary.html b/summary.html
index c16f1f050af..e2aee697d59 100644
--- a/summary.html
+++ b/summary.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:summary
at 2025-12-13
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:summary
at 2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/team.html b/team.html
index aae9df64b13..47d159ee527 100644
--- a/team.html
+++ b/team.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:team at
2025-12-13
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.1.2:team at
2025-12-15
| Rendered using Apache Maven Default Skin
-->
@@ -45,7 +45,7 @@ Apache HBase
<div class="xleft">
- <span id="publishDate">Last Published: 2025-12-13</span>
+ <span id="publishDate">Last Published: 2025-12-15</span>
| <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
diff --git a/testapidocs/index-all.html b/testapidocs/index-all.html
index aaa928e9827..356c854ff24 100644
--- a/testapidocs/index-all.html
+++ b/testapidocs/index-all.html
@@ -3669,8 +3669,6 @@ loadScripts(document, 'script');</script>
<dd> </dd>
<dt><a
href="../apidocs/org/apache/hadoop/hbase/quotas/TestTablesWithQuotas.html#CLASS_RULE"
class="member-name-link external-link" title="class or interface in
org.apache.hadoop.hbase.quotas">CLASS_RULE</a> - Static variable in class
org.apache.hadoop.hbase.quotas.<a
href="../apidocs/org/apache/hadoop/hbase/quotas/TestTablesWithQuotas.html"
title="class or interface in org.apache.hadoop.hbase.quotas"
class="external-link">TestTablesWithQuotas</a></dt>
<dd> </dd>
-<dt><a
href="../apidocs/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#CLASS_RULE"
class="member-name-link external-link" title="class or interface in
org.apache.hadoop.hbase.quotas">CLASS_RULE</a> - Static variable in class
org.apache.hadoop.hbase.quotas.<a
href="../apidocs/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html"
title="class or interface in org.apache.hadoop.hbase.quotas"
class="external-link">TestThreadHandlerUsageQuota</a></dt>
-<dd> </dd>
<dt><a
href="../apidocs/org/apache/hadoop/hbase/quotas/TestThrottleSettings.html#CLASS_RULE"
class="member-name-link external-link" title="class or interface in
org.apache.hadoop.hbase.quotas">CLASS_RULE</a> - Static variable in class
org.apache.hadoop.hbase.quotas.<a
href="../apidocs/org/apache/hadoop/hbase/quotas/TestThrottleSettings.html"
title="class or interface in org.apache.hadoop.hbase.quotas"
class="external-link">TestThrottleSettings</a></dt>
<dd> </dd>
<dt><a
href="../apidocs/org/apache/hadoop/hbase/regionserver/http/TestRSStatusPage.html#CLASS_RULE"
class="member-name-link external-link" title="class or interface in
org.apache.hadoop.hbase.regionserver.http">CLASS_RULE</a> - Static variable in
class org.apache.hadoop.hbase.regionserver.http.<a
href="../apidocs/org/apache/hadoop/hbase/regionserver/http/TestRSStatusPage.html"
title="class or interface in org.apache.hadoop.hbase.regionserver.http"
class="external-link">TestRSStatusPage</a></dt>
diff --git a/testapidocs/member-search-index.js
b/testapidocs/member-search-index.js
index a38922bbdcf..67d53398b09 100644
--- a/testapidocs/member-search-index.js
+++ b/testapidocs/member-search-index.js
@@ -1 +1 @@
-memberSearchIndex =
[{"p":"org.apache.hadoop.hbase.backup","c":"TestSystemTableSnapshot","l":"_testBackupRestoreSystemTable()"},{"p":"org.apache.hadoop.hbase.coprocessor","c":"TestRegionObserverInterface","l":"A"},{"p":"org.apache.hadoop.hbase.client","c":"TestGetProcedureResult.DummyProcedure","l":"abort(MasterProcedureEnv)","u":"abort(org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv)"},{"p":"org.apache.hadoop.hbase.master","c":"TestMigrateNamespaceTable.SuspendProcedure","l"
[...]
\ No newline at end of file
+memberSearchIndex =
[{"p":"org.apache.hadoop.hbase.backup","c":"TestSystemTableSnapshot","l":"_testBackupRestoreSystemTable()"},{"p":"org.apache.hadoop.hbase.coprocessor","c":"TestRegionObserverInterface","l":"A"},{"p":"org.apache.hadoop.hbase.client","c":"TestGetProcedureResult.DummyProcedure","l":"abort(MasterProcedureEnv)","u":"abort(org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv)"},{"p":"org.apache.hadoop.hbase.master","c":"TestMigrateNamespaceTable.SuspendProcedure","l"
[...]
\ No newline at end of file
diff --git
a/testapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
b/testapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
index 6224c4ddb59..b42684c381e 100644
--- a/testapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
+++ b/testapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
@@ -3361,11 +3361,8 @@ loadScripts(document, 'script');</script>
<div class="col-second odd-row-color"><span
class="type-name-label">TestTablesWithQuotas.</span><code><a
href="../../../../../../apidocs/org/apache/hadoop/hbase/quotas/TestTablesWithQuotas.html#CLASS_RULE"
class="member-name-link external-link" title="class or interface in
org.apache.hadoop.hbase.quotas">CLASS_RULE</a></code></div>
<div class="col-last odd-row-color"> </div>
<div class="col-first even-row-color"><code>static final <a
href="../../../../../../apidocs/org/apache/hadoop/hbase/HBaseClassTestRule.html"
title="class or interface in org.apache.hadoop.hbase"
class="external-link">HBaseClassTestRule</a></code></div>
-<div class="col-second even-row-color"><span
class="type-name-label">TestThreadHandlerUsageQuota.</span><code><a
href="../../../../../../apidocs/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#CLASS_RULE"
class="member-name-link external-link" title="class or interface in
org.apache.hadoop.hbase.quotas">CLASS_RULE</a></code></div>
+<div class="col-second even-row-color"><span
class="type-name-label">TestThrottleSettings.</span><code><a
href="../../../../../../apidocs/org/apache/hadoop/hbase/quotas/TestThrottleSettings.html#CLASS_RULE"
class="member-name-link external-link" title="class or interface in
org.apache.hadoop.hbase.quotas">CLASS_RULE</a></code></div>
<div class="col-last even-row-color"> </div>
-<div class="col-first odd-row-color"><code>static final <a
href="../../../../../../apidocs/org/apache/hadoop/hbase/HBaseClassTestRule.html"
title="class or interface in org.apache.hadoop.hbase"
class="external-link">HBaseClassTestRule</a></code></div>
-<div class="col-second odd-row-color"><span
class="type-name-label">TestThrottleSettings.</span><code><a
href="../../../../../../apidocs/org/apache/hadoop/hbase/quotas/TestThrottleSettings.html#CLASS_RULE"
class="member-name-link external-link" title="class or interface in
org.apache.hadoop.hbase.quotas">CLASS_RULE</a></code></div>
-<div class="col-last odd-row-color"> </div>
</div>
</section>
</li>
diff --git
a/testapidocs/src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
b/testapidocs/src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
index 175f5fc0ee1..b1395603029 100644
---
a/testapidocs/src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
+++
b/testapidocs/src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
@@ -31,12 +31,12 @@
<span class="source-line-no">018</span><span id="line-18">package
org.apache.hadoop.hbase.quotas;</span>
<span class="source-line-no">019</span><span id="line-19"></span>
<span class="source-line-no">020</span><span id="line-20">import static
org.apache.hadoop.hbase.quotas.ThrottleQuotaTestUtil.triggerUserCacheRefresh;</span>
-<span class="source-line-no">021</span><span id="line-21">import static
org.junit.Assert.assertTrue;</span>
-<span class="source-line-no">022</span><span id="line-22"></span>
-<span class="source-line-no">023</span><span id="line-23">import
java.io.IOException;</span>
-<span class="source-line-no">024</span><span id="line-24">import
java.util.UUID;</span>
-<span class="source-line-no">025</span><span id="line-25">import
java.util.concurrent.TimeUnit;</span>
-<span class="source-line-no">026</span><span id="line-26">import
org.apache.hadoop.hbase.HBaseClassTestRule;</span>
+<span class="source-line-no">021</span><span id="line-21">import static
org.hamcrest.MatcherAssert.assertThat;</span>
+<span class="source-line-no">022</span><span id="line-22">import static
org.hamcrest.Matchers.lessThan;</span>
+<span class="source-line-no">023</span><span id="line-23"></span>
+<span class="source-line-no">024</span><span id="line-24">import
java.io.IOException;</span>
+<span class="source-line-no">025</span><span id="line-25">import
java.util.UUID;</span>
+<span class="source-line-no">026</span><span id="line-26">import
java.util.concurrent.TimeUnit;</span>
<span class="source-line-no">027</span><span id="line-27">import
org.apache.hadoop.hbase.HBaseTestingUtil;</span>
<span class="source-line-no">028</span><span id="line-28">import
org.apache.hadoop.hbase.HConstants;</span>
<span class="source-line-no">029</span><span id="line-29">import
org.apache.hadoop.hbase.TableName;</span>
@@ -47,103 +47,105 @@
<span class="source-line-no">034</span><span id="line-34">import
org.apache.hadoop.hbase.testclassification.RegionServerTests;</span>
<span class="source-line-no">035</span><span id="line-35">import
org.apache.hadoop.hbase.util.Bytes;</span>
<span class="source-line-no">036</span><span id="line-36">import
org.apache.hadoop.hbase.util.EnvironmentEdgeManager;</span>
-<span class="source-line-no">037</span><span id="line-37">import
org.junit.AfterClass;</span>
-<span class="source-line-no">038</span><span id="line-38">import
org.junit.BeforeClass;</span>
-<span class="source-line-no">039</span><span id="line-39">import
org.junit.ClassRule;</span>
-<span class="source-line-no">040</span><span id="line-40">import
org.junit.Test;</span>
-<span class="source-line-no">041</span><span id="line-41">import
org.junit.experimental.categories.Category;</span>
-<span class="source-line-no">042</span><span id="line-42"></span>
-<span class="source-line-no">043</span><span id="line-43">@Category({
RegionServerTests.class, MediumTests.class })</span>
+<span class="source-line-no">037</span><span id="line-37">import
org.junit.jupiter.api.AfterAll;</span>
+<span class="source-line-no">038</span><span id="line-38">import
org.junit.jupiter.api.BeforeAll;</span>
+<span class="source-line-no">039</span><span id="line-39">import
org.junit.jupiter.api.Tag;</span>
+<span class="source-line-no">040</span><span id="line-40">import
org.junit.jupiter.api.Test;</span>
+<span class="source-line-no">041</span><span id="line-41"></span>
+<span class="source-line-no">042</span><span
id="line-42">@Tag(RegionServerTests.TAG)</span>
+<span class="source-line-no">043</span><span
id="line-43">@Tag(MediumTests.TAG)</span>
<span class="source-line-no">044</span><span id="line-44">public class
TestThreadHandlerUsageQuota {</span>
-<span class="source-line-no">045</span><span id="line-45"> @ClassRule</span>
-<span class="source-line-no">046</span><span id="line-46"> public static
final HBaseClassTestRule CLASS_RULE =</span>
-<span class="source-line-no">047</span><span id="line-47">
HBaseClassTestRule.forClass(TestThreadHandlerUsageQuota.class);</span>
-<span class="source-line-no">048</span><span id="line-48"> private static
final HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();</span>
-<span class="source-line-no">049</span><span id="line-49"> private static
final TableName TABLE_NAME =
TableName.valueOf(UUID.randomUUID().toString());</span>
-<span class="source-line-no">050</span><span id="line-50"> private static
final int REFRESH_TIME = 5;</span>
-<span class="source-line-no">051</span><span id="line-51"> private static
final byte[] FAMILY = Bytes.toBytes("cf");</span>
-<span class="source-line-no">052</span><span id="line-52"> private static
final byte[] QUALIFIER = Bytes.toBytes("q");</span>
-<span class="source-line-no">053</span><span id="line-53"> private static
final int MAX_OPS = 1000;</span>
-<span class="source-line-no">054</span><span id="line-54"></span>
-<span class="source-line-no">055</span><span id="line-55"> @AfterClass</span>
-<span class="source-line-no">056</span><span id="line-56"> public static void
tearDown() throws Exception {</span>
-<span class="source-line-no">057</span><span id="line-57">
ThrottleQuotaTestUtil.clearQuotaCache(TEST_UTIL);</span>
-<span class="source-line-no">058</span><span id="line-58">
EnvironmentEdgeManager.reset();</span>
-<span class="source-line-no">059</span><span id="line-59">
TEST_UTIL.deleteTable(TABLE_NAME);</span>
-<span class="source-line-no">060</span><span id="line-60">
TEST_UTIL.shutdownMiniCluster();</span>
-<span class="source-line-no">061</span><span id="line-61"> }</span>
-<span class="source-line-no">062</span><span id="line-62"></span>
-<span class="source-line-no">063</span><span id="line-63"> @BeforeClass</span>
-<span class="source-line-no">064</span><span id="line-64"> public static void
setUpBeforeClass() throws Exception {</span>
-<span class="source-line-no">065</span><span id="line-65"> // Enable
quotas</span>
-<span class="source-line-no">066</span><span id="line-66">
TEST_UTIL.getConfiguration().setBoolean(QuotaUtil.QUOTA_CONF_KEY, true);</span>
-<span class="source-line-no">067</span><span id="line-67">
TEST_UTIL.getConfiguration().setInt(QuotaCache.REFRESH_CONF_KEY,
REFRESH_TIME);</span>
-<span class="source-line-no">068</span><span id="line-68"></span>
-<span class="source-line-no">069</span><span id="line-69"> // Don't cache
blocks to make IO predictable</span>
-<span class="source-line-no">070</span><span id="line-70">
TEST_UTIL.getConfiguration().setFloat(HConstants.HFILE_BLOCK_CACHE_SIZE_KEY,
0.0f);</span>
-<span class="source-line-no">071</span><span id="line-71"></span>
-<span class="source-line-no">072</span><span id="line-72">
TEST_UTIL.startMiniCluster(1);</span>
-<span class="source-line-no">073</span><span id="line-73">
TEST_UTIL.waitTableAvailable(QuotaTableUtil.QUOTA_TABLE_NAME);</span>
-<span class="source-line-no">074</span><span id="line-74"></span>
-<span class="source-line-no">075</span><span id="line-75">
TEST_UTIL.createTable(TABLE_NAME, FAMILY);</span>
+<span class="source-line-no">045</span><span id="line-45"></span>
+<span class="source-line-no">046</span><span id="line-46"> private static
final HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();</span>
+<span class="source-line-no">047</span><span id="line-47"> private static
final TableName TABLE_NAME =
TableName.valueOf(UUID.randomUUID().toString());</span>
+<span class="source-line-no">048</span><span id="line-48"> private static
final byte[] FAMILY = Bytes.toBytes("cf");</span>
+<span class="source-line-no">049</span><span id="line-49"> private static
final byte[] QUALIFIER = Bytes.toBytes("q");</span>
+<span class="source-line-no">050</span><span id="line-50"> private static
final int MAX_OPS = 1000;</span>
+<span class="source-line-no">051</span><span id="line-51"></span>
+<span class="source-line-no">052</span><span id="line-52"> @AfterAll</span>
+<span class="source-line-no">053</span><span id="line-53"> public static void
tearDown() throws Exception {</span>
+<span class="source-line-no">054</span><span id="line-54">
ThrottleQuotaTestUtil.clearQuotaCache(TEST_UTIL);</span>
+<span class="source-line-no">055</span><span id="line-55">
EnvironmentEdgeManager.reset();</span>
+<span class="source-line-no">056</span><span id="line-56">
TEST_UTIL.deleteTable(TABLE_NAME);</span>
+<span class="source-line-no">057</span><span id="line-57">
TEST_UTIL.shutdownMiniCluster();</span>
+<span class="source-line-no">058</span><span id="line-58"> }</span>
+<span class="source-line-no">059</span><span id="line-59"></span>
+<span class="source-line-no">060</span><span id="line-60"> @BeforeAll</span>
+<span class="source-line-no">061</span><span id="line-61"> public static void
setUpBeforeClass() throws Exception {</span>
+<span class="source-line-no">062</span><span id="line-62"> // Enable
quotas</span>
+<span class="source-line-no">063</span><span id="line-63">
TEST_UTIL.getConfiguration().setBoolean(QuotaUtil.QUOTA_CONF_KEY, true);</span>
+<span class="source-line-no">064</span><span id="line-64"></span>
+<span class="source-line-no">065</span><span id="line-65"> // Don't cache
blocks to make IO predictable</span>
+<span class="source-line-no">066</span><span id="line-66">
TEST_UTIL.getConfiguration().setFloat(HConstants.HFILE_BLOCK_CACHE_SIZE_KEY,
0.0f);</span>
+<span class="source-line-no">067</span><span id="line-67"></span>
+<span class="source-line-no">068</span><span id="line-68">
TEST_UTIL.startMiniCluster(1);</span>
+<span class="source-line-no">069</span><span id="line-69">
TEST_UTIL.waitTableAvailable(QuotaTableUtil.QUOTA_TABLE_NAME);</span>
+<span class="source-line-no">070</span><span id="line-70"></span>
+<span class="source-line-no">071</span><span id="line-71">
TEST_UTIL.createTable(TABLE_NAME, FAMILY);</span>
+<span class="source-line-no">072</span><span id="line-72"></span>
+<span class="source-line-no">073</span><span id="line-73">
TEST_UTIL.waitTableAvailable(TABLE_NAME);</span>
+<span class="source-line-no">074</span><span id="line-74">
TEST_UTIL.flush(TABLE_NAME);</span>
+<span class="source-line-no">075</span><span id="line-75"> }</span>
<span class="source-line-no">076</span><span id="line-76"></span>
-<span class="source-line-no">077</span><span id="line-77">
TEST_UTIL.waitTableAvailable(TABLE_NAME);</span>
-<span class="source-line-no">078</span><span id="line-78">
TEST_UTIL.flush(TABLE_NAME);</span>
-<span class="source-line-no">079</span><span id="line-79"> }</span>
-<span class="source-line-no">080</span><span id="line-80"></span>
-<span class="source-line-no">081</span><span id="line-81"> @Test</span>
-<span class="source-line-no">082</span><span id="line-82"> public void
testHandlerUsageThrottleForReads() throws Exception {</span>
-<span class="source-line-no">083</span><span id="line-83"> try (Table table
= getTable()) {</span>
-<span class="source-line-no">084</span><span id="line-84">
unthrottleUser();</span>
-<span class="source-line-no">085</span><span id="line-85"> long
unthrottledAttempts = ThrottleQuotaTestUtil.doGets(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
-<span class="source-line-no">086</span><span id="line-86"></span>
-<span class="source-line-no">087</span><span id="line-87">
configureThrottle();</span>
-<span class="source-line-no">088</span><span id="line-88"> long
throttledAttempts = ThrottleQuotaTestUtil.doGets(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
-<span class="source-line-no">089</span><span id="line-89">
assertTrue("Throttled attempts should be less than unthrottled attempts",</span>
-<span class="source-line-no">090</span><span id="line-90">
throttledAttempts < unthrottledAttempts);</span>
-<span class="source-line-no">091</span><span id="line-91"> }</span>
-<span class="source-line-no">092</span><span id="line-92"> }</span>
-<span class="source-line-no">093</span><span id="line-93"></span>
-<span class="source-line-no">094</span><span id="line-94"> @Test</span>
-<span class="source-line-no">095</span><span id="line-95"> public void
testHandlerUsageThrottleForWrites() throws Exception {</span>
-<span class="source-line-no">096</span><span id="line-96"> try (Table table
= getTable()) {</span>
-<span class="source-line-no">097</span><span id="line-97">
unthrottleUser();</span>
-<span class="source-line-no">098</span><span id="line-98"> long
unthrottledAttempts = ThrottleQuotaTestUtil.doPuts(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
-<span class="source-line-no">099</span><span id="line-99"></span>
-<span class="source-line-no">100</span><span id="line-100">
configureThrottle();</span>
-<span class="source-line-no">101</span><span id="line-101"> long
throttledAttempts = ThrottleQuotaTestUtil.doPuts(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
-<span class="source-line-no">102</span><span id="line-102">
assertTrue("Throttled attempts should be less than unthrottled attempts",</span>
-<span class="source-line-no">103</span><span id="line-103">
throttledAttempts < unthrottledAttempts);</span>
-<span class="source-line-no">104</span><span id="line-104"> }</span>
-<span class="source-line-no">105</span><span id="line-105"> }</span>
-<span class="source-line-no">106</span><span id="line-106"></span>
-<span class="source-line-no">107</span><span id="line-107"> private void
configureThrottle() throws Exception {</span>
-<span class="source-line-no">108</span><span id="line-108"> try (Admin
admin = TEST_UTIL.getAdmin()) {</span>
-<span class="source-line-no">109</span><span id="line-109">
admin.setQuota(QuotaSettingsFactory.throttleUser(getUserName(),</span>
-<span class="source-line-no">110</span><span id="line-110">
ThrottleType.REQUEST_HANDLER_USAGE_MS, 1, TimeUnit.SECONDS));</span>
-<span class="source-line-no">111</span><span id="line-111"> }</span>
-<span class="source-line-no">112</span><span id="line-112">
triggerUserCacheRefresh(TEST_UTIL, false, TABLE_NAME);</span>
-<span class="source-line-no">113</span><span id="line-113"> }</span>
-<span class="source-line-no">114</span><span id="line-114"></span>
-<span class="source-line-no">115</span><span id="line-115"> private void
unthrottleUser() throws Exception {</span>
-<span class="source-line-no">116</span><span id="line-116"> try (Admin
admin = TEST_UTIL.getAdmin()) {</span>
-<span class="source-line-no">117</span><span id="line-117">
admin.setQuota(QuotaSettingsFactory.unthrottleUserByThrottleType(getUserName(),</span>
-<span class="source-line-no">118</span><span id="line-118">
ThrottleType.REQUEST_HANDLER_USAGE_MS));</span>
-<span class="source-line-no">119</span><span id="line-119"> }</span>
-<span class="source-line-no">120</span><span id="line-120">
triggerUserCacheRefresh(TEST_UTIL, true, TABLE_NAME);</span>
-<span class="source-line-no">121</span><span id="line-121"> }</span>
-<span class="source-line-no">122</span><span id="line-122"></span>
-<span class="source-line-no">123</span><span id="line-123"> private static
String getUserName() throws IOException {</span>
-<span class="source-line-no">124</span><span id="line-124"> return
User.getCurrent().getShortName();</span>
-<span class="source-line-no">125</span><span id="line-125"> }</span>
-<span class="source-line-no">126</span><span id="line-126"></span>
-<span class="source-line-no">127</span><span id="line-127"> private Table
getTable() throws IOException {</span>
-<span class="source-line-no">128</span><span id="line-128">
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 100);</span>
-<span class="source-line-no">129</span><span id="line-129">
TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,
1);</span>
-<span class="source-line-no">130</span><span id="line-130"> return
TEST_UTIL.getConnection().getTableBuilder(TABLE_NAME,
null).setOperationTimeout(250)</span>
-<span class="source-line-no">131</span><span id="line-131">
.build();</span>
-<span class="source-line-no">132</span><span id="line-132"> }</span>
-<span class="source-line-no">133</span><span id="line-133">}</span>
+<span class="source-line-no">077</span><span id="line-77"> @Test</span>
+<span class="source-line-no">078</span><span id="line-78"> public void
testHandlerUsageThrottleForReads() throws Exception {</span>
+<span class="source-line-no">079</span><span id="line-79"> try (Table table
= getTable()) {</span>
+<span class="source-line-no">080</span><span id="line-80">
unthrottleUser();</span>
+<span class="source-line-no">081</span><span id="line-81"> long
unthrottledAttempts = ThrottleQuotaTestUtil.doGets(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
+<span class="source-line-no">082</span><span id="line-82"></span>
+<span class="source-line-no">083</span><span id="line-83">
configureThrottle();</span>
+<span class="source-line-no">084</span><span id="line-84"> long
throttledAttempts = ThrottleQuotaTestUtil.doGets(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
+<span class="source-line-no">085</span><span id="line-85">
assertThat("Throttled attempts should be less than unthrottled attempts",
throttledAttempts,</span>
+<span class="source-line-no">086</span><span id="line-86">
lessThan(unthrottledAttempts));</span>
+<span class="source-line-no">087</span><span id="line-87"> }</span>
+<span class="source-line-no">088</span><span id="line-88"> }</span>
+<span class="source-line-no">089</span><span id="line-89"></span>
+<span class="source-line-no">090</span><span id="line-90"> @Test</span>
+<span class="source-line-no">091</span><span id="line-91"> public void
testHandlerUsageThrottleForWrites() throws Exception {</span>
+<span class="source-line-no">092</span><span id="line-92"> try (Table table
= getTable()) {</span>
+<span class="source-line-no">093</span><span id="line-93">
unthrottleUser();</span>
+<span class="source-line-no">094</span><span id="line-94"> long
unthrottledAttempts = ThrottleQuotaTestUtil.doPuts(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
+<span class="source-line-no">095</span><span id="line-95"></span>
+<span class="source-line-no">096</span><span id="line-96">
configureThrottle();</span>
+<span class="source-line-no">097</span><span id="line-97"> long
throttledAttempts = ThrottleQuotaTestUtil.doPuts(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
+<span class="source-line-no">098</span><span id="line-98">
assertThat("Throttled attempts should be less than unthrottled attempts",
throttledAttempts,</span>
+<span class="source-line-no">099</span><span id="line-99">
lessThan(unthrottledAttempts));</span>
+<span class="source-line-no">100</span><span id="line-100"> }</span>
+<span class="source-line-no">101</span><span id="line-101"> }</span>
+<span class="source-line-no">102</span><span id="line-102"></span>
+<span class="source-line-no">103</span><span id="line-103"> private void
configureThrottle() throws Exception {</span>
+<span class="source-line-no">104</span><span id="line-104"> try (Admin
admin = TEST_UTIL.getAdmin()) {</span>
+<span class="source-line-no">105</span><span id="line-105">
admin.setQuota(QuotaSettingsFactory.throttleUser(getUserName(),</span>
+<span class="source-line-no">106</span><span id="line-106">
ThrottleType.REQUEST_HANDLER_USAGE_MS, 1, TimeUnit.SECONDS));</span>
+<span class="source-line-no">107</span><span id="line-107"> }</span>
+<span class="source-line-no">108</span><span id="line-108">
triggerUserCacheRefresh(TEST_UTIL, false, TABLE_NAME);</span>
+<span class="source-line-no">109</span><span id="line-109"> // increase the
tick so we can calculate a positive rpc request time, and then consume all
the</span>
+<span class="source-line-no">110</span><span id="line-110"> // available
quota and make request fail next time</span>
+<span class="source-line-no">111</span><span id="line-111">
ThrottleQuotaTestUtil.envEdge.setValue(System.currentTimeMillis() +
10000);</span>
+<span class="source-line-no">112</span><span id="line-112"> }</span>
+<span class="source-line-no">113</span><span id="line-113"></span>
+<span class="source-line-no">114</span><span id="line-114"> private void
unthrottleUser() throws Exception {</span>
+<span class="source-line-no">115</span><span id="line-115"> try (Admin
admin = TEST_UTIL.getAdmin()) {</span>
+<span class="source-line-no">116</span><span id="line-116">
admin.setQuota(QuotaSettingsFactory.unthrottleUserByThrottleType(getUserName(),</span>
+<span class="source-line-no">117</span><span id="line-117">
ThrottleType.REQUEST_HANDLER_USAGE_MS));</span>
+<span class="source-line-no">118</span><span id="line-118"> }</span>
+<span class="source-line-no">119</span><span id="line-119">
triggerUserCacheRefresh(TEST_UTIL, true, TABLE_NAME);</span>
+<span class="source-line-no">120</span><span id="line-120"> // increase the
tick here too to make sure that we truly skip the quota check, not because
we</span>
+<span class="source-line-no">121</span><span id="line-121"> // pass the
quota check</span>
+<span class="source-line-no">122</span><span id="line-122">
ThrottleQuotaTestUtil.envEdge.setValue(System.currentTimeMillis() +
10000);</span>
+<span class="source-line-no">123</span><span id="line-123"> }</span>
+<span class="source-line-no">124</span><span id="line-124"></span>
+<span class="source-line-no">125</span><span id="line-125"> private static
String getUserName() throws IOException {</span>
+<span class="source-line-no">126</span><span id="line-126"> return
User.getCurrent().getShortName();</span>
+<span class="source-line-no">127</span><span id="line-127"> }</span>
+<span class="source-line-no">128</span><span id="line-128"></span>
+<span class="source-line-no">129</span><span id="line-129"> private Table
getTable() throws IOException {</span>
+<span class="source-line-no">130</span><span id="line-130">
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 100);</span>
+<span class="source-line-no">131</span><span id="line-131">
TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,
1);</span>
+<span class="source-line-no">132</span><span id="line-132"> return
TEST_UTIL.getConnection().getTableBuilder(TABLE_NAME,
null).setOperationTimeout(250)</span>
+<span class="source-line-no">133</span><span id="line-133">
.build();</span>
+<span class="source-line-no">134</span><span id="line-134"> }</span>
+<span class="source-line-no">135</span><span id="line-135">}</span>
diff --git
a/testapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
b/testapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
index 80209035938..c58768273b8 100644
---
a/testapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
+++
b/testapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
@@ -60,7 +60,7 @@
<span class="source-line-no">047</span><span id="line-47">public final class
ThrottleQuotaTestUtil {</span>
<span class="source-line-no">048</span><span id="line-48"></span>
<span class="source-line-no">049</span><span id="line-49"> private final
static Logger LOG = LoggerFactory.getLogger(ThrottleQuotaTestUtil.class);</span>
-<span class="source-line-no">050</span><span id="line-50"> private static
ManualEnvironmentEdge envEdge = new ManualEnvironmentEdge();</span>
+<span class="source-line-no">050</span><span id="line-50"> static
ManualEnvironmentEdge envEdge = new ManualEnvironmentEdge();</span>
<span class="source-line-no">051</span><span id="line-51"> private final
static int REFRESH_TIME = 30 * 60000;</span>
<span class="source-line-no">052</span><span id="line-52"> static {</span>
<span class="source-line-no">053</span><span id="line-53">
envEdge.setValue(EnvironmentEdgeManager.currentTime());</span>
diff --git a/testdevapidocs/constant-values.html
b/testdevapidocs/constant-values.html
index b65635c6aab..fcf1d0fe7cb 100644
--- a/testdevapidocs/constant-values.html
+++ b/testdevapidocs/constant-values.html
@@ -6148,9 +6148,6 @@ loadScripts(document, 'script');</script>
<div class="col-first even-row-color"><code
id="org.apache.hadoop.hbase.quotas.TestThreadHandlerUsageQuota.MAX_OPS">private static final int</code></div>
<div class="col-second even-row-color"><code><a
href="org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#MAX_OPS">MAX_OPS</a></code></div>
<div class="col-last even-row-color"><code>1000</code></div>
-<div class="col-first odd-row-color"><code
id="org.apache.hadoop.hbase.quotas.TestThreadHandlerUsageQuota.REFRESH_TIME">private static final int</code></div>
-<div class="col-second odd-row-color"><code><a
href="org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#REFRESH_TIME">REFRESH_TIME</a></code></div>
-<div class="col-last odd-row-color"><code>5</code></div>
</div>
</li>
<li>
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 1274512cf1a..33c435190b7 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -7957,8 +7957,6 @@ loadScripts(document, 'script');</script>
<dd> </dd>
<dt><a
href="org/apache/hadoop/hbase/quotas/TestTablesWithQuotas.html#CLASS_RULE"
class="member-name-link">CLASS_RULE</a> - Static variable in class
org.apache.hadoop.hbase.quotas.<a
href="org/apache/hadoop/hbase/quotas/TestTablesWithQuotas.html" title="class in
org.apache.hadoop.hbase.quotas">TestTablesWithQuotas</a></dt>
<dd> </dd>
-<dt><a
href="org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#CLASS_RULE"
class="member-name-link">CLASS_RULE</a> - Static variable in class
org.apache.hadoop.hbase.quotas.<a
href="org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html"
title="class in
org.apache.hadoop.hbase.quotas">TestThreadHandlerUsageQuota</a></dt>
-<dd> </dd>
<dt><a
href="org/apache/hadoop/hbase/quotas/TestThrottleSettings.html#CLASS_RULE"
class="member-name-link">CLASS_RULE</a> - Static variable in class
org.apache.hadoop.hbase.quotas.<a
href="org/apache/hadoop/hbase/quotas/TestThrottleSettings.html" title="class in
org.apache.hadoop.hbase.quotas">TestThrottleSettings</a></dt>
<dd> </dd>
<dt><a
href="org/apache/hadoop/hbase/regionserver/compactions/PerfTestCompactionPolicies.html#CLASS_RULE"
class="member-name-link">CLASS_RULE</a> - Static variable in class
org.apache.hadoop.hbase.regionserver.compactions.<a
href="org/apache/hadoop/hbase/regionserver/compactions/PerfTestCompactionPolicies.html"
title="class in
org.apache.hadoop.hbase.regionserver.compactions">PerfTestCompactionPolicies</a></dt>
@@ -43703,8 +43701,6 @@ loadScripts(document, 'script');</script>
<dd> </dd>
<dt><a
href="org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html#REFRESH_TIME"
class="member-name-link">REFRESH_TIME</a> - Static variable in class
org.apache.hadoop.hbase.quotas.<a
href="org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html" title="class in
org.apache.hadoop.hbase.quotas">TestQuotaThrottle</a></dt>
<dd> </dd>
-<dt><a
href="org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#REFRESH_TIME"
class="member-name-link">REFRESH_TIME</a> - Static variable in class
org.apache.hadoop.hbase.quotas.<a
href="org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html"
title="class in
org.apache.hadoop.hbase.quotas">TestThreadHandlerUsageQuota</a></dt>
-<dd> </dd>
<dt><a
href="org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html#REFRESH_TIME"
class="member-name-link">REFRESH_TIME</a> - Static variable in class
org.apache.hadoop.hbase.quotas.<a
href="org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html" title="class
in org.apache.hadoop.hbase.quotas">ThrottleQuotaTestUtil</a></dt>
<dd> </dd>
<dt><a
href="org/apache/hadoop/hbase/quotas/TestQuotaCache.html#REFRESH_TIME_MS"
class="member-name-link">REFRESH_TIME_MS</a> - Static variable in class
org.apache.hadoop.hbase.quotas.<a
href="org/apache/hadoop/hbase/quotas/TestQuotaCache.html" title="class in
org.apache.hadoop.hbase.quotas">TestQuotaCache</a></dt>
diff --git a/testdevapidocs/member-search-index.js
b/testdevapidocs/member-search-index.js
index 9b892aae5b4..633b26bb91e 100644
--- a/testdevapidocs/member-search-index.js
+++ b/testdevapidocs/member-search-index.js
@@ -1 +1 @@
-memberSearchIndex =
[{"p":"org.apache.hadoop.hbase.master.janitor","c":"TestMetaFixerNoCluster","l":"_ARI"},{"p":"org.apache.hadoop.hbase.io","c":"TestHalfStoreFileReader","l":"_b(String)","u":"_b(java.lang.String)"},{"p":"org.apache.hadoop.hbase.master.janitor","c":"TestMetaFixerNoCluster","l":"_BRI"},{"p":"org.apache.hadoop.hbase.backup","c":"TestSystemTableSnapshot","l":"_testBackupRestoreSystemTable()"},{"p":"org.apache.hadoop.hbase.regionserver","c":"TestBlocksScanned","l":"_testBlo
[...]
\ No newline at end of file
+memberSearchIndex =
[{"p":"org.apache.hadoop.hbase.master.janitor","c":"TestMetaFixerNoCluster","l":"_ARI"},{"p":"org.apache.hadoop.hbase.io","c":"TestHalfStoreFileReader","l":"_b(String)","u":"_b(java.lang.String)"},{"p":"org.apache.hadoop.hbase.master.janitor","c":"TestMetaFixerNoCluster","l":"_BRI"},{"p":"org.apache.hadoop.hbase.backup","c":"TestSystemTableSnapshot","l":"_testBackupRestoreSystemTable()"},{"p":"org.apache.hadoop.hbase.regionserver","c":"TestBlocksScanned","l":"_testBlo
[...]
\ No newline at end of file
diff --git
a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
index 7913a3a1ea1..5f7376f717c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
@@ -4802,11 +4802,8 @@ loadScripts(document, 'script');</script>
<div class="col-second odd-row-color"><span
class="type-name-label">TestTablesWithQuotas.</span><code><a
href="../quotas/TestTablesWithQuotas.html#CLASS_RULE"
class="member-name-link">CLASS_RULE</a></code></div>
<div class="col-last odd-row-color"> </div>
<div class="col-first even-row-color"><code>static final <a
href="../HBaseClassTestRule.html" title="class in
org.apache.hadoop.hbase">HBaseClassTestRule</a></code></div>
-<div class="col-second even-row-color"><span
class="type-name-label">TestThreadHandlerUsageQuota.</span><code><a
href="../quotas/TestThreadHandlerUsageQuota.html#CLASS_RULE"
class="member-name-link">CLASS_RULE</a></code></div>
+<div class="col-second even-row-color"><span
class="type-name-label">TestThrottleSettings.</span><code><a
href="../quotas/TestThrottleSettings.html#CLASS_RULE"
class="member-name-link">CLASS_RULE</a></code></div>
<div class="col-last even-row-color"> </div>
-<div class="col-first odd-row-color"><code>static final <a
href="../HBaseClassTestRule.html" title="class in
org.apache.hadoop.hbase">HBaseClassTestRule</a></code></div>
-<div class="col-second odd-row-color"><span
class="type-name-label">TestThrottleSettings.</span><code><a
href="../quotas/TestThrottleSettings.html#CLASS_RULE"
class="member-name-link">CLASS_RULE</a></code></div>
-<div class="col-last odd-row-color"> </div>
</div>
</section>
</li>
diff --git
a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
index 92765e3de52..82f2a86e574 100644
---
a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
+++
b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
@@ -77,7 +77,8 @@ loadScripts(document, 'script');</script>
</div>
<section class="class-description" id="class-description">
<hr>
-<div class="type-signature"><span class="modifiers">public class </span><span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-43">TestThreadHandlerUsageQuota</a></span>
+<div class="type-signature"><span
class="annotations">@Tag("org.apache.hadoop.hbase.testclassification.RegionServerTests")
@Tag("org.apache.hadoop.hbase.testclassification.MediumTests")
+</span><span class="modifiers">public class </span><span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-42">TestThreadHandlerUsageQuota</a></span>
<span class="extends-implements">extends <a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html"
title="class or interface in java.lang"
class="external-link">Object</a></span></div>
</section>
<section class="summary">
@@ -91,20 +92,14 @@ loadScripts(document, 'script');</script>
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
-<div class="col-first even-row-color"><code>static final <a
href="../HBaseClassTestRule.html" title="class in
org.apache.hadoop.hbase">HBaseClassTestRule</a></code></div>
-<div class="col-second even-row-color"><code><a href="#CLASS_RULE"
class="member-name-link">CLASS_RULE</a></code></div>
+<div class="col-first even-row-color"><code>private static final
byte[]</code></div>
+<div class="col-second even-row-color"><code><a href="#FAMILY"
class="member-name-link">FAMILY</a></code></div>
<div class="col-last even-row-color"> </div>
-<div class="col-first odd-row-color"><code>private static final
byte[]</code></div>
-<div class="col-second odd-row-color"><code><a href="#FAMILY"
class="member-name-link">FAMILY</a></code></div>
+<div class="col-first odd-row-color"><code>private static final
int</code></div>
+<div class="col-second odd-row-color"><code><a href="#MAX_OPS"
class="member-name-link">MAX_OPS</a></code></div>
<div class="col-last odd-row-color"> </div>
-<div class="col-first even-row-color"><code>private static final
int</code></div>
-<div class="col-second even-row-color"><code><a href="#MAX_OPS"
class="member-name-link">MAX_OPS</a></code></div>
-<div class="col-last even-row-color"> </div>
-<div class="col-first odd-row-color"><code>private static final
byte[]</code></div>
-<div class="col-second odd-row-color"><code><a href="#QUALIFIER"
class="member-name-link">QUALIFIER</a></code></div>
-<div class="col-last odd-row-color"> </div>
-<div class="col-first even-row-color"><code>private static final
int</code></div>
-<div class="col-second even-row-color"><code><a href="#REFRESH_TIME"
class="member-name-link">REFRESH_TIME</a></code></div>
+<div class="col-first even-row-color"><code>private static final
byte[]</code></div>
+<div class="col-second even-row-color"><code><a href="#QUALIFIER"
class="member-name-link">QUALIFIER</a></code></div>
<div class="col-last even-row-color"> </div>
<div class="col-first odd-row-color"><code>private static final
org.apache.hadoop.hbase.TableName</code></div>
<div class="col-second odd-row-color"><code><a href="#TABLE_NAME"
class="member-name-link">TABLE_NAME</a></code></div>
@@ -181,53 +176,33 @@ loadScripts(document, 'script');</script>
<h2>Field Details</h2>
<ul class="member-list">
<li>
-<section class="detail" id="CLASS_RULE">
-<h3>CLASS_RULE</h3>
-<div class="member-signature"><span class="modifiers">public static
final</span> <span class="return-type"><a
href="../HBaseClassTestRule.html" title="class in
org.apache.hadoop.hbase">HBaseClassTestRule</a></span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-45">CLASS_RULE</a></span></div>
-</section>
-</li>
-<li>
<section class="detail" id="TEST_UTIL">
<h3>TEST_UTIL</h3>
-<div class="member-signature"><span class="modifiers">private static
final</span> <span class="return-type"><a href="../HBaseTestingUtil.html"
title="class in org.apache.hadoop.hbase">HBaseTestingUtil</a></span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-48">TEST_UTIL</a></span></div>
+<div class="member-signature"><span class="modifiers">private static
final</span> <span class="return-type"><a href="../HBaseTestingUtil.html"
title="class in org.apache.hadoop.hbase">HBaseTestingUtil</a></span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-46">TEST_UTIL</a></span></div>
</section>
</li>
<li>
<section class="detail" id="TABLE_NAME">
<h3>TABLE_NAME</h3>
-<div class="member-signature"><span class="modifiers">private static
final</span> <span
class="return-type">org.apache.hadoop.hbase.TableName</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-49">TABLE_NAME</a></span></div>
-</section>
-</li>
-<li>
-<section class="detail" id="REFRESH_TIME">
-<h3>REFRESH_TIME</h3>
-<div class="member-signature"><span class="modifiers">private static
final</span> <span class="return-type">int</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-50">REFRESH_TIME</a></span></div>
-<dl class="notes">
-<dt>See Also:</dt>
-<dd>
-<ul class="see-list">
-<li><a
href="../../../../../constant-values.html#org.apache.hadoop.hbase.quotas.TestThreadHandlerUsageQuota.REFRESH_TIME">Constant
Field Values</a></li>
-</ul>
-</dd>
-</dl>
+<div class="member-signature"><span class="modifiers">private static
final</span> <span
class="return-type">org.apache.hadoop.hbase.TableName</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-47">TABLE_NAME</a></span></div>
</section>
</li>
<li>
<section class="detail" id="FAMILY">
<h3>FAMILY</h3>
-<div class="member-signature"><span class="modifiers">private static
final</span> <span class="return-type">byte[]</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-51">FAMILY</a></span></div>
+<div class="member-signature"><span class="modifiers">private static
final</span> <span class="return-type">byte[]</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-48">FAMILY</a></span></div>
</section>
</li>
<li>
<section class="detail" id="QUALIFIER">
<h3>QUALIFIER</h3>
-<div class="member-signature"><span class="modifiers">private static
final</span> <span class="return-type">byte[]</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-52">QUALIFIER</a></span></div>
+<div class="member-signature"><span class="modifiers">private static
final</span> <span class="return-type">byte[]</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-49">QUALIFIER</a></span></div>
</section>
</li>
<li>
<section class="detail" id="MAX_OPS">
<h3>MAX_OPS</h3>
-<div class="member-signature"><span class="modifiers">private static
final</span> <span class="return-type">int</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-53">MAX_OPS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static
final</span> <span class="return-type">int</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-50">MAX_OPS</a></span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
@@ -263,7 +238,8 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="tearDown()">
<h3>tearDown</h3>
-<div class="member-signature"><span class="modifiers">public
static</span> <span class="return-type">void</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-55">tearDown</a></span>()
+<div class="member-signature"><span class="annotations">@AfterAll
+</span><span class="modifiers">public static</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-52">tearDown</a></span>()
throws <span class="exceptions"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html"
title="class or interface in java.lang"
class="external-link">Exception</a></span></div>
<dl class="notes">
<dt>Throws:</dt>
@@ -274,7 +250,8 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="setUpBeforeClass()">
<h3>setUpBeforeClass</h3>
-<div class="member-signature"><span class="modifiers">public
static</span> <span class="return-type">void</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-63">setUpBeforeClass</a></span>()
+<div class="member-signature"><span class="annotations">@BeforeAll
+</span><span class="modifiers">public static</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-60">setUpBeforeClass</a></span>()
throws <span class="exceptions"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html"
title="class or interface in java.lang"
class="external-link">Exception</a></span></div>
<dl class="notes">
<dt>Throws:</dt>
@@ -285,7 +262,8 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="testHandlerUsageThrottleForReads()">
<h3>testHandlerUsageThrottleForReads</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-81">testHandlerUsageThrottleForReads</a></span>()
+<div class="member-signature"><span class="annotations">@Test
+</span><span class="modifiers">public</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-77">testHandlerUsageThrottleForReads</a></span>()
throws <span class="exceptions"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html"
title="class or interface in java.lang"
class="external-link">Exception</a></span></div>
<dl class="notes">
<dt>Throws:</dt>
@@ -296,7 +274,8 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="testHandlerUsageThrottleForWrites()">
<h3>testHandlerUsageThrottleForWrites</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-94">testHandlerUsageThrottleForWrites</a></span>()
+<div class="member-signature"><span class="annotations">@Test
+</span><span class="modifiers">public</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-90">testHandlerUsageThrottleForWrites</a></span>()
throws <span class="exceptions"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html"
title="class or interface in java.lang"
class="external-link">Exception</a></span></div>
<dl class="notes">
<dt>Throws:</dt>
@@ -307,7 +286,7 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="configureThrottle()">
<h3>configureThrottle</h3>
-<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-107">configureThrottle</a></span>()
+<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-103">configureThrottle</a></span>()
throws <span class="exceptions"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html"
title="class or interface in java.lang"
class="external-link">Exception</a></span></div>
<dl class="notes">
<dt>Throws:</dt>
@@ -318,7 +297,7 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="unthrottleUser()">
<h3>unthrottleUser</h3>
-<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-115">unthrottleUser</a></span>()
+<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">void</span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-114">unthrottleUser</a></span>()
throws <span class="exceptions"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html"
title="class or interface in java.lang"
class="external-link">Exception</a></span></div>
<dl class="notes">
<dt>Throws:</dt>
@@ -329,7 +308,7 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="getUserName()">
<h3>getUserName</h3>
-<div class="member-signature"><span class="modifiers">private
static</span> <span class="return-type"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"
title="class or interface in java.lang"
class="external-link">String</a></span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-123">getUserName</a></span>()
+<div class="member-signature"><span class="modifiers">private
static</span> <span class="return-type"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html"
title="class or interface in java.lang"
class="external-link">String</a></span> <span class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-125">getUserName</a></span>()
throws <span class="exceptions"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html"
title="class or interface in java.io"
class="external-link">IOException</a></span></div>
<dl class="notes">
<dt>Throws:</dt>
@@ -340,7 +319,7 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="getTable()">
<h3>getTable</h3>
-<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">org.apache.hadoop.hbase.client.Table</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-127">getTable</a></span>()
+<div class="member-signature"><span
class="modifiers">private</span> <span
class="return-type">org.apache.hadoop.hbase.client.Table</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html#line-129">getTable</a></span>()
throws <span
class="exceptions"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html"
title="class or interface in java.io"
class="external-link">IOException</a></span></div>
<dl class="notes">
<dt>Throws:</dt>
diff --git
a/testdevapidocs/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
b/testdevapidocs/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
index f18216caede..0f44a8edb94 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
@@ -92,7 +92,7 @@ loadScripts(document, 'script');</script>
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
-<div class="col-first even-row-color"><code>private static
org.apache.hadoop.hbase.util.ManualEnvironmentEdge</code></div>
+<div class="col-first even-row-color"><code>(package private) static
org.apache.hadoop.hbase.util.ManualEnvironmentEdge</code></div>
<div class="col-second even-row-color"><code><a href="#envEdge"
class="member-name-link">envEdge</a></code></div>
<div class="col-last even-row-color"> </div>
<div class="col-first odd-row-color"><code>private static final
org.slf4j.Logger</code></div>
@@ -243,7 +243,7 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="envEdge">
<h3>envEdge</h3>
-<div class="member-signature"><span class="modifiers">private
static</span> <span
class="return-type">org.apache.hadoop.hbase.util.ManualEnvironmentEdge</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html#line-50">envEdge</a></span></div>
+<div class="member-signature"><span class="modifiers">static</span> <span
class="return-type">org.apache.hadoop.hbase.util.ManualEnvironmentEdge</span> <span
class="element-name"><a
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html#line-50">envEdge</a></span></div>
</section>
</li>
<li>
diff --git
a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
index 175f5fc0ee1..b1395603029 100644
---
a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
+++
b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestThreadHandlerUsageQuota.html
@@ -31,12 +31,12 @@
<span class="source-line-no">018</span><span id="line-18">package
org.apache.hadoop.hbase.quotas;</span>
<span class="source-line-no">019</span><span id="line-19"></span>
<span class="source-line-no">020</span><span id="line-20">import static
org.apache.hadoop.hbase.quotas.ThrottleQuotaTestUtil.triggerUserCacheRefresh;</span>
-<span class="source-line-no">021</span><span id="line-21">import static
org.junit.Assert.assertTrue;</span>
-<span class="source-line-no">022</span><span id="line-22"></span>
-<span class="source-line-no">023</span><span id="line-23">import
java.io.IOException;</span>
-<span class="source-line-no">024</span><span id="line-24">import
java.util.UUID;</span>
-<span class="source-line-no">025</span><span id="line-25">import
java.util.concurrent.TimeUnit;</span>
-<span class="source-line-no">026</span><span id="line-26">import
org.apache.hadoop.hbase.HBaseClassTestRule;</span>
+<span class="source-line-no">021</span><span id="line-21">import static
org.hamcrest.MatcherAssert.assertThat;</span>
+<span class="source-line-no">022</span><span id="line-22">import static
org.hamcrest.Matchers.lessThan;</span>
+<span class="source-line-no">023</span><span id="line-23"></span>
+<span class="source-line-no">024</span><span id="line-24">import
java.io.IOException;</span>
+<span class="source-line-no">025</span><span id="line-25">import
java.util.UUID;</span>
+<span class="source-line-no">026</span><span id="line-26">import
java.util.concurrent.TimeUnit;</span>
<span class="source-line-no">027</span><span id="line-27">import
org.apache.hadoop.hbase.HBaseTestingUtil;</span>
<span class="source-line-no">028</span><span id="line-28">import
org.apache.hadoop.hbase.HConstants;</span>
<span class="source-line-no">029</span><span id="line-29">import
org.apache.hadoop.hbase.TableName;</span>
@@ -47,103 +47,105 @@
<span class="source-line-no">034</span><span id="line-34">import
org.apache.hadoop.hbase.testclassification.RegionServerTests;</span>
<span class="source-line-no">035</span><span id="line-35">import
org.apache.hadoop.hbase.util.Bytes;</span>
<span class="source-line-no">036</span><span id="line-36">import
org.apache.hadoop.hbase.util.EnvironmentEdgeManager;</span>
-<span class="source-line-no">037</span><span id="line-37">import
org.junit.AfterClass;</span>
-<span class="source-line-no">038</span><span id="line-38">import
org.junit.BeforeClass;</span>
-<span class="source-line-no">039</span><span id="line-39">import
org.junit.ClassRule;</span>
-<span class="source-line-no">040</span><span id="line-40">import
org.junit.Test;</span>
-<span class="source-line-no">041</span><span id="line-41">import
org.junit.experimental.categories.Category;</span>
-<span class="source-line-no">042</span><span id="line-42"></span>
-<span class="source-line-no">043</span><span id="line-43">@Category({
RegionServerTests.class, MediumTests.class })</span>
+<span class="source-line-no">037</span><span id="line-37">import
org.junit.jupiter.api.AfterAll;</span>
+<span class="source-line-no">038</span><span id="line-38">import
org.junit.jupiter.api.BeforeAll;</span>
+<span class="source-line-no">039</span><span id="line-39">import
org.junit.jupiter.api.Tag;</span>
+<span class="source-line-no">040</span><span id="line-40">import
org.junit.jupiter.api.Test;</span>
+<span class="source-line-no">041</span><span id="line-41"></span>
+<span class="source-line-no">042</span><span
id="line-42">@Tag(RegionServerTests.TAG)</span>
+<span class="source-line-no">043</span><span
id="line-43">@Tag(MediumTests.TAG)</span>
<span class="source-line-no">044</span><span id="line-44">public class
TestThreadHandlerUsageQuota {</span>
-<span class="source-line-no">045</span><span id="line-45"> @ClassRule</span>
-<span class="source-line-no">046</span><span id="line-46"> public static
final HBaseClassTestRule CLASS_RULE =</span>
-<span class="source-line-no">047</span><span id="line-47">
HBaseClassTestRule.forClass(TestThreadHandlerUsageQuota.class);</span>
-<span class="source-line-no">048</span><span id="line-48"> private static
final HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();</span>
-<span class="source-line-no">049</span><span id="line-49"> private static
final TableName TABLE_NAME =
TableName.valueOf(UUID.randomUUID().toString());</span>
-<span class="source-line-no">050</span><span id="line-50"> private static
final int REFRESH_TIME = 5;</span>
-<span class="source-line-no">051</span><span id="line-51"> private static
final byte[] FAMILY = Bytes.toBytes("cf");</span>
-<span class="source-line-no">052</span><span id="line-52"> private static
final byte[] QUALIFIER = Bytes.toBytes("q");</span>
-<span class="source-line-no">053</span><span id="line-53"> private static
final int MAX_OPS = 1000;</span>
-<span class="source-line-no">054</span><span id="line-54"></span>
-<span class="source-line-no">055</span><span id="line-55"> @AfterClass</span>
-<span class="source-line-no">056</span><span id="line-56"> public static void
tearDown() throws Exception {</span>
-<span class="source-line-no">057</span><span id="line-57">
ThrottleQuotaTestUtil.clearQuotaCache(TEST_UTIL);</span>
-<span class="source-line-no">058</span><span id="line-58">
EnvironmentEdgeManager.reset();</span>
-<span class="source-line-no">059</span><span id="line-59">
TEST_UTIL.deleteTable(TABLE_NAME);</span>
-<span class="source-line-no">060</span><span id="line-60">
TEST_UTIL.shutdownMiniCluster();</span>
-<span class="source-line-no">061</span><span id="line-61"> }</span>
-<span class="source-line-no">062</span><span id="line-62"></span>
-<span class="source-line-no">063</span><span id="line-63"> @BeforeClass</span>
-<span class="source-line-no">064</span><span id="line-64"> public static void
setUpBeforeClass() throws Exception {</span>
-<span class="source-line-no">065</span><span id="line-65"> // Enable
quotas</span>
-<span class="source-line-no">066</span><span id="line-66">
TEST_UTIL.getConfiguration().setBoolean(QuotaUtil.QUOTA_CONF_KEY, true);</span>
-<span class="source-line-no">067</span><span id="line-67">
TEST_UTIL.getConfiguration().setInt(QuotaCache.REFRESH_CONF_KEY,
REFRESH_TIME);</span>
-<span class="source-line-no">068</span><span id="line-68"></span>
-<span class="source-line-no">069</span><span id="line-69"> // Don't cache
blocks to make IO predictable</span>
-<span class="source-line-no">070</span><span id="line-70">
TEST_UTIL.getConfiguration().setFloat(HConstants.HFILE_BLOCK_CACHE_SIZE_KEY,
0.0f);</span>
-<span class="source-line-no">071</span><span id="line-71"></span>
-<span class="source-line-no">072</span><span id="line-72">
TEST_UTIL.startMiniCluster(1);</span>
-<span class="source-line-no">073</span><span id="line-73">
TEST_UTIL.waitTableAvailable(QuotaTableUtil.QUOTA_TABLE_NAME);</span>
-<span class="source-line-no">074</span><span id="line-74"></span>
-<span class="source-line-no">075</span><span id="line-75">
TEST_UTIL.createTable(TABLE_NAME, FAMILY);</span>
+<span class="source-line-no">045</span><span id="line-45"></span>
+<span class="source-line-no">046</span><span id="line-46"> private static
final HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();</span>
+<span class="source-line-no">047</span><span id="line-47"> private static
final TableName TABLE_NAME =
TableName.valueOf(UUID.randomUUID().toString());</span>
+<span class="source-line-no">048</span><span id="line-48"> private static
final byte[] FAMILY = Bytes.toBytes("cf");</span>
+<span class="source-line-no">049</span><span id="line-49"> private static
final byte[] QUALIFIER = Bytes.toBytes("q");</span>
+<span class="source-line-no">050</span><span id="line-50"> private static
final int MAX_OPS = 1000;</span>
+<span class="source-line-no">051</span><span id="line-51"></span>
+<span class="source-line-no">052</span><span id="line-52"> @AfterAll</span>
+<span class="source-line-no">053</span><span id="line-53"> public static void
tearDown() throws Exception {</span>
+<span class="source-line-no">054</span><span id="line-54">
ThrottleQuotaTestUtil.clearQuotaCache(TEST_UTIL);</span>
+<span class="source-line-no">055</span><span id="line-55">
EnvironmentEdgeManager.reset();</span>
+<span class="source-line-no">056</span><span id="line-56">
TEST_UTIL.deleteTable(TABLE_NAME);</span>
+<span class="source-line-no">057</span><span id="line-57">
TEST_UTIL.shutdownMiniCluster();</span>
+<span class="source-line-no">058</span><span id="line-58"> }</span>
+<span class="source-line-no">059</span><span id="line-59"></span>
+<span class="source-line-no">060</span><span id="line-60"> @BeforeAll</span>
+<span class="source-line-no">061</span><span id="line-61"> public static void
setUpBeforeClass() throws Exception {</span>
+<span class="source-line-no">062</span><span id="line-62"> // Enable
quotas</span>
+<span class="source-line-no">063</span><span id="line-63">
TEST_UTIL.getConfiguration().setBoolean(QuotaUtil.QUOTA_CONF_KEY, true);</span>
+<span class="source-line-no">064</span><span id="line-64"></span>
+<span class="source-line-no">065</span><span id="line-65"> // Don't cache
blocks to make IO predictable</span>
+<span class="source-line-no">066</span><span id="line-66">
TEST_UTIL.getConfiguration().setFloat(HConstants.HFILE_BLOCK_CACHE_SIZE_KEY,
0.0f);</span>
+<span class="source-line-no">067</span><span id="line-67"></span>
+<span class="source-line-no">068</span><span id="line-68">
TEST_UTIL.startMiniCluster(1);</span>
+<span class="source-line-no">069</span><span id="line-69">
TEST_UTIL.waitTableAvailable(QuotaTableUtil.QUOTA_TABLE_NAME);</span>
+<span class="source-line-no">070</span><span id="line-70"></span>
+<span class="source-line-no">071</span><span id="line-71">
TEST_UTIL.createTable(TABLE_NAME, FAMILY);</span>
+<span class="source-line-no">072</span><span id="line-72"></span>
+<span class="source-line-no">073</span><span id="line-73">
TEST_UTIL.waitTableAvailable(TABLE_NAME);</span>
+<span class="source-line-no">074</span><span id="line-74">
TEST_UTIL.flush(TABLE_NAME);</span>
+<span class="source-line-no">075</span><span id="line-75"> }</span>
<span class="source-line-no">076</span><span id="line-76"></span>
-<span class="source-line-no">077</span><span id="line-77">
TEST_UTIL.waitTableAvailable(TABLE_NAME);</span>
-<span class="source-line-no">078</span><span id="line-78">
TEST_UTIL.flush(TABLE_NAME);</span>
-<span class="source-line-no">079</span><span id="line-79"> }</span>
-<span class="source-line-no">080</span><span id="line-80"></span>
-<span class="source-line-no">081</span><span id="line-81"> @Test</span>
-<span class="source-line-no">082</span><span id="line-82"> public void
testHandlerUsageThrottleForReads() throws Exception {</span>
-<span class="source-line-no">083</span><span id="line-83"> try (Table table
= getTable()) {</span>
-<span class="source-line-no">084</span><span id="line-84">
unthrottleUser();</span>
-<span class="source-line-no">085</span><span id="line-85"> long
unthrottledAttempts = ThrottleQuotaTestUtil.doGets(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
-<span class="source-line-no">086</span><span id="line-86"></span>
-<span class="source-line-no">087</span><span id="line-87">
configureThrottle();</span>
-<span class="source-line-no">088</span><span id="line-88"> long
throttledAttempts = ThrottleQuotaTestUtil.doGets(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
-<span class="source-line-no">089</span><span id="line-89">
assertTrue("Throttled attempts should be less than unthrottled attempts",</span>
-<span class="source-line-no">090</span><span id="line-90">
throttledAttempts < unthrottledAttempts);</span>
-<span class="source-line-no">091</span><span id="line-91"> }</span>
-<span class="source-line-no">092</span><span id="line-92"> }</span>
-<span class="source-line-no">093</span><span id="line-93"></span>
-<span class="source-line-no">094</span><span id="line-94"> @Test</span>
-<span class="source-line-no">095</span><span id="line-95"> public void
testHandlerUsageThrottleForWrites() throws Exception {</span>
-<span class="source-line-no">096</span><span id="line-96"> try (Table table
= getTable()) {</span>
-<span class="source-line-no">097</span><span id="line-97">
unthrottleUser();</span>
-<span class="source-line-no">098</span><span id="line-98"> long
unthrottledAttempts = ThrottleQuotaTestUtil.doPuts(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
-<span class="source-line-no">099</span><span id="line-99"></span>
-<span class="source-line-no">100</span><span id="line-100">
configureThrottle();</span>
-<span class="source-line-no">101</span><span id="line-101"> long
throttledAttempts = ThrottleQuotaTestUtil.doPuts(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
-<span class="source-line-no">102</span><span id="line-102">
assertTrue("Throttled attempts should be less than unthrottled attempts",</span>
-<span class="source-line-no">103</span><span id="line-103">
throttledAttempts < unthrottledAttempts);</span>
-<span class="source-line-no">104</span><span id="line-104"> }</span>
-<span class="source-line-no">105</span><span id="line-105"> }</span>
-<span class="source-line-no">106</span><span id="line-106"></span>
-<span class="source-line-no">107</span><span id="line-107"> private void
configureThrottle() throws Exception {</span>
-<span class="source-line-no">108</span><span id="line-108"> try (Admin
admin = TEST_UTIL.getAdmin()) {</span>
-<span class="source-line-no">109</span><span id="line-109">
admin.setQuota(QuotaSettingsFactory.throttleUser(getUserName(),</span>
-<span class="source-line-no">110</span><span id="line-110">
ThrottleType.REQUEST_HANDLER_USAGE_MS, 1, TimeUnit.SECONDS));</span>
-<span class="source-line-no">111</span><span id="line-111"> }</span>
-<span class="source-line-no">112</span><span id="line-112">
triggerUserCacheRefresh(TEST_UTIL, false, TABLE_NAME);</span>
-<span class="source-line-no">113</span><span id="line-113"> }</span>
-<span class="source-line-no">114</span><span id="line-114"></span>
-<span class="source-line-no">115</span><span id="line-115"> private void
unthrottleUser() throws Exception {</span>
-<span class="source-line-no">116</span><span id="line-116"> try (Admin
admin = TEST_UTIL.getAdmin()) {</span>
-<span class="source-line-no">117</span><span id="line-117">
admin.setQuota(QuotaSettingsFactory.unthrottleUserByThrottleType(getUserName(),</span>
-<span class="source-line-no">118</span><span id="line-118">
ThrottleType.REQUEST_HANDLER_USAGE_MS));</span>
-<span class="source-line-no">119</span><span id="line-119"> }</span>
-<span class="source-line-no">120</span><span id="line-120">
triggerUserCacheRefresh(TEST_UTIL, true, TABLE_NAME);</span>
-<span class="source-line-no">121</span><span id="line-121"> }</span>
-<span class="source-line-no">122</span><span id="line-122"></span>
-<span class="source-line-no">123</span><span id="line-123"> private static
String getUserName() throws IOException {</span>
-<span class="source-line-no">124</span><span id="line-124"> return
User.getCurrent().getShortName();</span>
-<span class="source-line-no">125</span><span id="line-125"> }</span>
-<span class="source-line-no">126</span><span id="line-126"></span>
-<span class="source-line-no">127</span><span id="line-127"> private Table
getTable() throws IOException {</span>
-<span class="source-line-no">128</span><span id="line-128">
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 100);</span>
-<span class="source-line-no">129</span><span id="line-129">
TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,
1);</span>
-<span class="source-line-no">130</span><span id="line-130"> return
TEST_UTIL.getConnection().getTableBuilder(TABLE_NAME,
null).setOperationTimeout(250)</span>
-<span class="source-line-no">131</span><span id="line-131">
.build();</span>
-<span class="source-line-no">132</span><span id="line-132"> }</span>
-<span class="source-line-no">133</span><span id="line-133">}</span>
+<span class="source-line-no">077</span><span id="line-77"> @Test</span>
+<span class="source-line-no">078</span><span id="line-78"> public void
testHandlerUsageThrottleForReads() throws Exception {</span>
+<span class="source-line-no">079</span><span id="line-79"> try (Table table
= getTable()) {</span>
+<span class="source-line-no">080</span><span id="line-80">
unthrottleUser();</span>
+<span class="source-line-no">081</span><span id="line-81"> long
unthrottledAttempts = ThrottleQuotaTestUtil.doGets(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
+<span class="source-line-no">082</span><span id="line-82"></span>
+<span class="source-line-no">083</span><span id="line-83">
configureThrottle();</span>
+<span class="source-line-no">084</span><span id="line-84"> long
throttledAttempts = ThrottleQuotaTestUtil.doGets(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
+<span class="source-line-no">085</span><span id="line-85">
assertThat("Throttled attempts should be less than unthrottled attempts",
throttledAttempts,</span>
+<span class="source-line-no">086</span><span id="line-86">
lessThan(unthrottledAttempts));</span>
+<span class="source-line-no">087</span><span id="line-87"> }</span>
+<span class="source-line-no">088</span><span id="line-88"> }</span>
+<span class="source-line-no">089</span><span id="line-89"></span>
+<span class="source-line-no">090</span><span id="line-90"> @Test</span>
+<span class="source-line-no">091</span><span id="line-91"> public void
testHandlerUsageThrottleForWrites() throws Exception {</span>
+<span class="source-line-no">092</span><span id="line-92"> try (Table table
= getTable()) {</span>
+<span class="source-line-no">093</span><span id="line-93">
unthrottleUser();</span>
+<span class="source-line-no">094</span><span id="line-94"> long
unthrottledAttempts = ThrottleQuotaTestUtil.doPuts(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
+<span class="source-line-no">095</span><span id="line-95"></span>
+<span class="source-line-no">096</span><span id="line-96">
configureThrottle();</span>
+<span class="source-line-no">097</span><span id="line-97"> long
throttledAttempts = ThrottleQuotaTestUtil.doPuts(MAX_OPS, FAMILY, QUALIFIER,
table);</span>
+<span class="source-line-no">098</span><span id="line-98">
assertThat("Throttled attempts should be less than unthrottled attempts",
throttledAttempts,</span>
+<span class="source-line-no">099</span><span id="line-99">
lessThan(unthrottledAttempts));</span>
+<span class="source-line-no">100</span><span id="line-100"> }</span>
+<span class="source-line-no">101</span><span id="line-101"> }</span>
+<span class="source-line-no">102</span><span id="line-102"></span>
+<span class="source-line-no">103</span><span id="line-103"> private void
configureThrottle() throws Exception {</span>
+<span class="source-line-no">104</span><span id="line-104"> try (Admin
admin = TEST_UTIL.getAdmin()) {</span>
+<span class="source-line-no">105</span><span id="line-105">
admin.setQuota(QuotaSettingsFactory.throttleUser(getUserName(),</span>
+<span class="source-line-no">106</span><span id="line-106">
ThrottleType.REQUEST_HANDLER_USAGE_MS, 1, TimeUnit.SECONDS));</span>
+<span class="source-line-no">107</span><span id="line-107"> }</span>
+<span class="source-line-no">108</span><span id="line-108">
triggerUserCacheRefresh(TEST_UTIL, false, TABLE_NAME);</span>
+<span class="source-line-no">109</span><span id="line-109"> // increase the
tick so we can calculate a positive rpc request time, and then consume all
the</span>
+<span class="source-line-no">110</span><span id="line-110"> // available
quota and make request fail next time</span>
+<span class="source-line-no">111</span><span id="line-111">
ThrottleQuotaTestUtil.envEdge.setValue(System.currentTimeMillis() +
10000);</span>
+<span class="source-line-no">112</span><span id="line-112"> }</span>
+<span class="source-line-no">113</span><span id="line-113"></span>
+<span class="source-line-no">114</span><span id="line-114"> private void
unthrottleUser() throws Exception {</span>
+<span class="source-line-no">115</span><span id="line-115"> try (Admin
admin = TEST_UTIL.getAdmin()) {</span>
+<span class="source-line-no">116</span><span id="line-116">
admin.setQuota(QuotaSettingsFactory.unthrottleUserByThrottleType(getUserName(),</span>
+<span class="source-line-no">117</span><span id="line-117">
ThrottleType.REQUEST_HANDLER_USAGE_MS));</span>
+<span class="source-line-no">118</span><span id="line-118"> }</span>
+<span class="source-line-no">119</span><span id="line-119">
triggerUserCacheRefresh(TEST_UTIL, true, TABLE_NAME);</span>
+<span class="source-line-no">120</span><span id="line-120"> // increase the
tick here too to make sure that we truly skip the quota check, not because
we</span>
+<span class="source-line-no">121</span><span id="line-121"> // pass the
quota check</span>
+<span class="source-line-no">122</span><span id="line-122">
ThrottleQuotaTestUtil.envEdge.setValue(System.currentTimeMillis() +
10000);</span>
+<span class="source-line-no">123</span><span id="line-123"> }</span>
+<span class="source-line-no">124</span><span id="line-124"></span>
+<span class="source-line-no">125</span><span id="line-125"> private static
String getUserName() throws IOException {</span>
+<span class="source-line-no">126</span><span id="line-126"> return
User.getCurrent().getShortName();</span>
+<span class="source-line-no">127</span><span id="line-127"> }</span>
+<span class="source-line-no">128</span><span id="line-128"></span>
+<span class="source-line-no">129</span><span id="line-129"> private Table
getTable() throws IOException {</span>
+<span class="source-line-no">130</span><span id="line-130">
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 100);</span>
+<span class="source-line-no">131</span><span id="line-131">
TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,
1);</span>
+<span class="source-line-no">132</span><span id="line-132"> return
TEST_UTIL.getConnection().getTableBuilder(TABLE_NAME,
null).setOperationTimeout(250)</span>
+<span class="source-line-no">133</span><span id="line-133">
.build();</span>
+<span class="source-line-no">134</span><span id="line-134"> }</span>
+<span class="source-line-no">135</span><span id="line-135">}</span>
diff --git
a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
index 80209035938..c58768273b8 100644
---
a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
+++
b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottleQuotaTestUtil.html
@@ -60,7 +60,7 @@
<span class="source-line-no">047</span><span id="line-47">public final class
ThrottleQuotaTestUtil {</span>
<span class="source-line-no">048</span><span id="line-48"></span>
<span class="source-line-no">049</span><span id="line-49"> private final
static Logger LOG = LoggerFactory.getLogger(ThrottleQuotaTestUtil.class);</span>
-<span class="source-line-no">050</span><span id="line-50"> private static
ManualEnvironmentEdge envEdge = new ManualEnvironmentEdge();</span>
+<span class="source-line-no">050</span><span id="line-50"> static
ManualEnvironmentEdge envEdge = new ManualEnvironmentEdge();</span>
<span class="source-line-no">051</span><span id="line-51"> private final
static int REFRESH_TIME = 30 * 60000;</span>
<span class="source-line-no">052</span><span id="line-52"> static {</span>
<span class="source-line-no">053</span><span id="line-53">
envEdge.setValue(EnvironmentEdgeManager.currentTime());</span>