You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2026/08/26 23:56:03 UTC
(hbase-site) branch asf-site updated: Published site at 8f59ec267b891047902286df4093dc5decde7ff2.
This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits 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 e6d1b7602ee Published site at 8f59ec267b891047902286df4093dc5decde7ff2.
e6d1b7602ee is described below
commit e6d1b7602ee85c310bcd65c2a6f7f94b331cf6df
Author: HBase <de...@hbase.apache.org>
AuthorDate: Wed Aug 26 23:51:25 2026 +0000
Published site at 8f59ec267b891047902286df4093dc5decde7ff2.
---
.../hbase/client/ConnectionConfiguration.html | 315 +++++++++++----------
books/apache-hbase-reference-guide-dark-mode.pdf | Bin 38775819 -> 38775819 bytes
books/apache-hbase-reference-guide.pdf | Bin 38665189 -> 38665190 bytes
checkstyle-aggregate.html | 2 +-
dependency-convergence.html | 2 +-
dependency-info.html | 2 +-
dependency-management.html | 2 +-
devapidocs/index-all.html | 2 +
devapidocs/member-search-index.js | 2 +-
.../hbase/client/ConnectionConfiguration.html | 91 +++---
.../hbase/client/ConnectionConfiguration.html | 315 +++++++++++----------
hbase-website/dependency-convergence.html | 2 +-
hbase-website/dependency-info.html | 2 +-
hbase-website/dependency-management.html | 2 +-
hbase-website/index.html | 2 +-
hbase-website/issue-management.html | 2 +-
hbase-website/licenses.html | 2 +-
hbase-website/mailing-lists.html | 2 +-
hbase-website/plugin-management.html | 2 +-
hbase-website/plugins.html | 2 +-
hbase-website/project-info.html | 2 +-
hbase-website/scm.html | 2 +-
hbase-website/summary.html | 2 +-
hbase-website/team.html | 2 +-
issue-management.html | 2 +-
licenses.html | 2 +-
mailing-lists.html | 2 +-
plugin-management.html | 2 +-
plugins.html | 2 +-
project-info.html | 2 +-
project-reports.html | 2 +-
scm.html | 2 +-
summary.html | 2 +-
team.html | 2 +-
testapidocs/index-all.html | 4 +
testapidocs/member-search-index.js | 2 +-
.../hbase/client/TestConnectionConfiguration.html | 103 +++++--
testdevapidocs/index-all.html | 4 +
testdevapidocs/member-search-index.js | 2 +-
.../hbase/client/TestConnectionConfiguration.html | 26 +-
.../hbase/client/TestConnectionConfiguration.html | 103 +++++--
41 files changed, 591 insertions(+), 432 deletions(-)
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html b/apidocs/src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html
index b23cda16871..16d16669949 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html
@@ -93,163 +93,172 @@
<span class="source-line-no">080</span><span id="line-80"> // toggle for async/sync prefetch</span>
<span class="source-line-no">081</span><span id="line-81"> private final boolean clientScannerAsyncPrefetch;</span>
<span class="source-line-no">082</span><span id="line-82"></span>
-<span class="source-line-no">083</span><span id="line-83"> /**</span>
-<span class="source-line-no">084</span><span id="line-84"> * Constructor</span>
-<span class="source-line-no">085</span><span id="line-85"> * @param conf Configuration object</span>
-<span class="source-line-no">086</span><span id="line-86"> */</span>
-<span class="source-line-no">087</span><span id="line-87"> ConnectionConfiguration(Configuration conf) {</span>
-<span class="source-line-no">088</span><span id="line-88"> this.writeBufferSize = conf.getLong(WRITE_BUFFER_SIZE_KEY, WRITE_BUFFER_SIZE_DEFAULT);</span>
-<span class="source-line-no">089</span><span id="line-89"></span>
-<span class="source-line-no">090</span><span id="line-90"> this.writeBufferPeriodicFlushTimeoutMs = conf.getLong(WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS,</span>
-<span class="source-line-no">091</span><span id="line-91"> WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS_DEFAULT);</span>
-<span class="source-line-no">092</span><span id="line-92"></span>
-<span class="source-line-no">093</span><span id="line-93"> this.writeBufferPeriodicFlushTimerTickMs = conf.getLong(</span>
-<span class="source-line-no">094</span><span id="line-94"> WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS, WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS_DEFAULT);</span>
-<span class="source-line-no">095</span><span id="line-95"></span>
-<span class="source-line-no">096</span><span id="line-96"> this.metaOperationTimeout = conf.getInt(HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT,</span>
-<span class="source-line-no">097</span><span id="line-97"> conf.getInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,</span>
-<span class="source-line-no">098</span><span id="line-98"> HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT));</span>
-<span class="source-line-no">099</span><span id="line-99"></span>
-<span class="source-line-no">100</span><span id="line-100"> this.operationTimeout = conf.getInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,</span>
-<span class="source-line-no">101</span><span id="line-101"> HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);</span>
-<span class="source-line-no">102</span><span id="line-102"></span>
-<span class="source-line-no">103</span><span id="line-103"> this.scannerCaching = conf.getInt(HConstants.HBASE_CLIENT_SCANNER_CACHING,</span>
-<span class="source-line-no">104</span><span id="line-104"> HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING);</span>
-<span class="source-line-no">105</span><span id="line-105"></span>
-<span class="source-line-no">106</span><span id="line-106"> this.scannerMaxResultSize = conf.getLong(HConstants.HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE_KEY,</span>
-<span class="source-line-no">107</span><span id="line-107"> HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE);</span>
-<span class="source-line-no">108</span><span id="line-108"></span>
-<span class="source-line-no">109</span><span id="line-109"> this.primaryCallTimeoutMicroSecond =</span>
-<span class="source-line-no">110</span><span id="line-110"> conf.getInt(PRIMARY_CALL_TIMEOUT_MICROSECOND, PRIMARY_CALL_TIMEOUT_MICROSECOND_DEFAULT);</span>
-<span class="source-line-no">111</span><span id="line-111"></span>
-<span class="source-line-no">112</span><span id="line-112"> this.replicaCallTimeoutMicroSecondScan =</span>
-<span class="source-line-no">113</span><span id="line-113"> conf.getInt(PRIMARY_SCAN_TIMEOUT_MICROSECOND, PRIMARY_SCAN_TIMEOUT_MICROSECOND_DEFAULT);</span>
-<span class="source-line-no">114</span><span id="line-114"></span>
-<span class="source-line-no">115</span><span id="line-115"> this.metaReplicaCallTimeoutMicroSecondScan =</span>
-<span class="source-line-no">116</span><span id="line-116"> conf.getInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,</span>
-<span class="source-line-no">117</span><span id="line-117"> HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT_DEFAULT);</span>
-<span class="source-line-no">118</span><span id="line-118"></span>
-<span class="source-line-no">119</span><span id="line-119"> this.retries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,</span>
-<span class="source-line-no">120</span><span id="line-120"> HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);</span>
-<span class="source-line-no">121</span><span id="line-121"></span>
-<span class="source-line-no">122</span><span id="line-122"> this.clientScannerAsyncPrefetch = conf.getBoolean(Scan.HBASE_CLIENT_SCANNER_ASYNC_PREFETCH,</span>
-<span class="source-line-no">123</span><span id="line-123"> Scan.DEFAULT_HBASE_CLIENT_SCANNER_ASYNC_PREFETCH);</span>
-<span class="source-line-no">124</span><span id="line-124"></span>
-<span class="source-line-no">125</span><span id="line-125"> this.maxKeyValueSize = conf.getInt(MAX_KEYVALUE_SIZE_KEY, MAX_KEYVALUE_SIZE_DEFAULT);</span>
+<span class="source-line-no">083</span><span id="line-83"> private static int getNonNegativeInt(Configuration conf, String key, int defaultValue) {</span>
+<span class="source-line-no">084</span><span id="line-84"> int value = conf.getInt(key, defaultValue);</span>
+<span class="source-line-no">085</span><span id="line-85"> if (value < 0) {</span>
+<span class="source-line-no">086</span><span id="line-86"> throw new IllegalArgumentException(</span>
+<span class="source-line-no">087</span><span id="line-87"> "The " + key + " must be non-negative, current value is " + value);</span>
+<span class="source-line-no">088</span><span id="line-88"> }</span>
+<span class="source-line-no">089</span><span id="line-89"> return value;</span>
+<span class="source-line-no">090</span><span id="line-90"> }</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"> * Constructor</span>
+<span class="source-line-no">094</span><span id="line-94"> * @param conf Configuration object</span>
+<span class="source-line-no">095</span><span id="line-95"> */</span>
+<span class="source-line-no">096</span><span id="line-96"> ConnectionConfiguration(Configuration conf) {</span>
+<span class="source-line-no">097</span><span id="line-97"> this.writeBufferSize = conf.getLong(WRITE_BUFFER_SIZE_KEY, WRITE_BUFFER_SIZE_DEFAULT);</span>
+<span class="source-line-no">098</span><span id="line-98"></span>
+<span class="source-line-no">099</span><span id="line-99"> this.writeBufferPeriodicFlushTimeoutMs = conf.getLong(WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS,</span>
+<span class="source-line-no">100</span><span id="line-100"> WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS_DEFAULT);</span>
+<span class="source-line-no">101</span><span id="line-101"></span>
+<span class="source-line-no">102</span><span id="line-102"> this.writeBufferPeriodicFlushTimerTickMs = conf.getLong(</span>
+<span class="source-line-no">103</span><span id="line-103"> WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS, WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS_DEFAULT);</span>
+<span class="source-line-no">104</span><span id="line-104"></span>
+<span class="source-line-no">105</span><span id="line-105"> this.operationTimeout = getNonNegativeInt(conf, HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,</span>
+<span class="source-line-no">106</span><span id="line-106"> HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);</span>
+<span class="source-line-no">107</span><span id="line-107"></span>
+<span class="source-line-no">108</span><span id="line-108"> this.metaOperationTimeout =</span>
+<span class="source-line-no">109</span><span id="line-109"> getNonNegativeInt(conf, HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT, operationTimeout);</span>
+<span class="source-line-no">110</span><span id="line-110"></span>
+<span class="source-line-no">111</span><span id="line-111"> this.scannerCaching = conf.getInt(HConstants.HBASE_CLIENT_SCANNER_CACHING,</span>
+<span class="source-line-no">112</span><span id="line-112"> HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING);</span>
+<span class="source-line-no">113</span><span id="line-113"></span>
+<span class="source-line-no">114</span><span id="line-114"> this.scannerMaxResultSize = conf.getLong(HConstants.HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE_KEY,</span>
+<span class="source-line-no">115</span><span id="line-115"> HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE);</span>
+<span class="source-line-no">116</span><span id="line-116"></span>
+<span class="source-line-no">117</span><span id="line-117"> this.primaryCallTimeoutMicroSecond = getNonNegativeInt(conf, PRIMARY_CALL_TIMEOUT_MICROSECOND,</span>
+<span class="source-line-no">118</span><span id="line-118"> PRIMARY_CALL_TIMEOUT_MICROSECOND_DEFAULT);</span>
+<span class="source-line-no">119</span><span id="line-119"></span>
+<span class="source-line-no">120</span><span id="line-120"> this.replicaCallTimeoutMicroSecondScan = getNonNegativeInt(conf,</span>
+<span class="source-line-no">121</span><span id="line-121"> PRIMARY_SCAN_TIMEOUT_MICROSECOND, PRIMARY_SCAN_TIMEOUT_MICROSECOND_DEFAULT);</span>
+<span class="source-line-no">122</span><span id="line-122"></span>
+<span class="source-line-no">123</span><span id="line-123"> this.metaReplicaCallTimeoutMicroSecondScan =</span>
+<span class="source-line-no">124</span><span id="line-124"> getNonNegativeInt(conf, HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,</span>
+<span class="source-line-no">125</span><span id="line-125"> HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT_DEFAULT);</span>
<span class="source-line-no">126</span><span id="line-126"></span>
-<span class="source-line-no">127</span><span id="line-127"> this.bufferedMutatorMaxMutations =</span>
-<span class="source-line-no">128</span><span id="line-128"> conf.getInt(BUFFERED_MUTATOR_MAX_MUTATIONS_KEY, BUFFERED_MUTATOR_MAX_MUTATIONS_DEFAULT);</span>
+<span class="source-line-no">127</span><span id="line-127"> this.retries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,</span>
+<span class="source-line-no">128</span><span id="line-128"> HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);</span>
<span class="source-line-no">129</span><span id="line-129"></span>
-<span class="source-line-no">130</span><span id="line-130"> this.rpcTimeout =</span>
-<span class="source-line-no">131</span><span id="line-131"> conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY, HConstants.DEFAULT_HBASE_RPC_TIMEOUT);</span>
+<span class="source-line-no">130</span><span id="line-130"> this.clientScannerAsyncPrefetch = conf.getBoolean(Scan.HBASE_CLIENT_SCANNER_ASYNC_PREFETCH,</span>
+<span class="source-line-no">131</span><span id="line-131"> Scan.DEFAULT_HBASE_CLIENT_SCANNER_ASYNC_PREFETCH);</span>
<span class="source-line-no">132</span><span id="line-132"></span>
-<span class="source-line-no">133</span><span id="line-133"> this.readRpcTimeout = conf.getInt(HConstants.HBASE_RPC_READ_TIMEOUT_KEY,</span>
-<span class="source-line-no">134</span><span id="line-134"> conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY, HConstants.DEFAULT_HBASE_RPC_TIMEOUT));</span>
-<span class="source-line-no">135</span><span id="line-135"></span>
-<span class="source-line-no">136</span><span id="line-136"> this.metaReadRpcTimeout = conf.getInt(HBASE_CLIENT_META_READ_RPC_TIMEOUT_KEY, readRpcTimeout);</span>
+<span class="source-line-no">133</span><span id="line-133"> this.maxKeyValueSize = conf.getInt(MAX_KEYVALUE_SIZE_KEY, MAX_KEYVALUE_SIZE_DEFAULT);</span>
+<span class="source-line-no">134</span><span id="line-134"></span>
+<span class="source-line-no">135</span><span id="line-135"> this.bufferedMutatorMaxMutations =</span>
+<span class="source-line-no">136</span><span id="line-136"> conf.getInt(BUFFERED_MUTATOR_MAX_MUTATIONS_KEY, BUFFERED_MUTATOR_MAX_MUTATIONS_DEFAULT);</span>
<span class="source-line-no">137</span><span id="line-137"></span>
-<span class="source-line-no">138</span><span id="line-138"> this.writeRpcTimeout = conf.getInt(HConstants.HBASE_RPC_WRITE_TIMEOUT_KEY,</span>
-<span class="source-line-no">139</span><span id="line-139"> conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY, HConstants.DEFAULT_HBASE_RPC_TIMEOUT));</span>
-<span class="source-line-no">140</span><span id="line-140"> }</span>
-<span class="source-line-no">141</span><span id="line-141"></span>
-<span class="source-line-no">142</span><span id="line-142"> /**</span>
-<span class="source-line-no">143</span><span id="line-143"> * Constructor This is for internal testing purpose (using the default value). In real usage, we</span>
-<span class="source-line-no">144</span><span id="line-144"> * should read the configuration from the Configuration object.</span>
-<span class="source-line-no">145</span><span id="line-145"> */</span>
-<span class="source-line-no">146</span><span id="line-146"> protected ConnectionConfiguration() {</span>
-<span class="source-line-no">147</span><span id="line-147"> this.writeBufferSize = WRITE_BUFFER_SIZE_DEFAULT;</span>
-<span class="source-line-no">148</span><span id="line-148"> this.writeBufferPeriodicFlushTimeoutMs = WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS_DEFAULT;</span>
-<span class="source-line-no">149</span><span id="line-149"> this.writeBufferPeriodicFlushTimerTickMs = WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS_DEFAULT;</span>
-<span class="source-line-no">150</span><span id="line-150"> this.metaOperationTimeout = HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT;</span>
-<span class="source-line-no">151</span><span id="line-151"> this.operationTimeout = HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT;</span>
-<span class="source-line-no">152</span><span id="line-152"> this.scannerCaching = HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING;</span>
-<span class="source-line-no">153</span><span id="line-153"> this.scannerMaxResultSize = HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE;</span>
-<span class="source-line-no">154</span><span id="line-154"> this.primaryCallTimeoutMicroSecond = 10000;</span>
-<span class="source-line-no">155</span><span id="line-155"> this.replicaCallTimeoutMicroSecondScan = 1000000;</span>
-<span class="source-line-no">156</span><span id="line-156"> this.metaReplicaCallTimeoutMicroSecondScan =</span>
-<span class="source-line-no">157</span><span id="line-157"> HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT_DEFAULT;</span>
-<span class="source-line-no">158</span><span id="line-158"> this.retries = HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER;</span>
-<span class="source-line-no">159</span><span id="line-159"> this.clientScannerAsyncPrefetch = Scan.DEFAULT_HBASE_CLIENT_SCANNER_ASYNC_PREFETCH;</span>
-<span class="source-line-no">160</span><span id="line-160"> this.maxKeyValueSize = MAX_KEYVALUE_SIZE_DEFAULT;</span>
-<span class="source-line-no">161</span><span id="line-161"> this.bufferedMutatorMaxMutations = BUFFERED_MUTATOR_MAX_MUTATIONS_DEFAULT;</span>
-<span class="source-line-no">162</span><span id="line-162"> this.readRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
-<span class="source-line-no">163</span><span id="line-163"> this.metaReadRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
-<span class="source-line-no">164</span><span id="line-164"> this.writeRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
-<span class="source-line-no">165</span><span id="line-165"> this.rpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
-<span class="source-line-no">166</span><span id="line-166"> }</span>
-<span class="source-line-no">167</span><span id="line-167"></span>
-<span class="source-line-no">168</span><span id="line-168"> public int getReadRpcTimeout() {</span>
-<span class="source-line-no">169</span><span id="line-169"> return readRpcTimeout;</span>
-<span class="source-line-no">170</span><span id="line-170"> }</span>
-<span class="source-line-no">171</span><span id="line-171"></span>
-<span class="source-line-no">172</span><span id="line-172"> public int getMetaReadRpcTimeout() {</span>
-<span class="source-line-no">173</span><span id="line-173"> return metaReadRpcTimeout;</span>
-<span class="source-line-no">174</span><span id="line-174"> }</span>
-<span class="source-line-no">175</span><span id="line-175"></span>
-<span class="source-line-no">176</span><span id="line-176"> public int getWriteRpcTimeout() {</span>
-<span class="source-line-no">177</span><span id="line-177"> return writeRpcTimeout;</span>
-<span class="source-line-no">178</span><span id="line-178"> }</span>
-<span class="source-line-no">179</span><span id="line-179"></span>
-<span class="source-line-no">180</span><span id="line-180"> public long getWriteBufferSize() {</span>
-<span class="source-line-no">181</span><span id="line-181"> return writeBufferSize;</span>
-<span class="source-line-no">182</span><span id="line-182"> }</span>
-<span class="source-line-no">183</span><span id="line-183"></span>
-<span class="source-line-no">184</span><span id="line-184"> public long getWriteBufferPeriodicFlushTimeoutMs() {</span>
-<span class="source-line-no">185</span><span id="line-185"> return writeBufferPeriodicFlushTimeoutMs;</span>
-<span class="source-line-no">186</span><span id="line-186"> }</span>
-<span class="source-line-no">187</span><span id="line-187"></span>
-<span class="source-line-no">188</span><span id="line-188"> public long getWriteBufferPeriodicFlushTimerTickMs() {</span>
-<span class="source-line-no">189</span><span id="line-189"> return writeBufferPeriodicFlushTimerTickMs;</span>
-<span class="source-line-no">190</span><span id="line-190"> }</span>
-<span class="source-line-no">191</span><span id="line-191"></span>
-<span class="source-line-no">192</span><span id="line-192"> public int getMetaOperationTimeout() {</span>
-<span class="source-line-no">193</span><span id="line-193"> return metaOperationTimeout;</span>
-<span class="source-line-no">194</span><span id="line-194"> }</span>
-<span class="source-line-no">195</span><span id="line-195"></span>
-<span class="source-line-no">196</span><span id="line-196"> public int getOperationTimeout() {</span>
-<span class="source-line-no">197</span><span id="line-197"> return operationTimeout;</span>
-<span class="source-line-no">198</span><span id="line-198"> }</span>
-<span class="source-line-no">199</span><span id="line-199"></span>
-<span class="source-line-no">200</span><span id="line-200"> public int getScannerCaching() {</span>
-<span class="source-line-no">201</span><span id="line-201"> return scannerCaching;</span>
-<span class="source-line-no">202</span><span id="line-202"> }</span>
-<span class="source-line-no">203</span><span id="line-203"></span>
-<span class="source-line-no">204</span><span id="line-204"> public int getPrimaryCallTimeoutMicroSecond() {</span>
-<span class="source-line-no">205</span><span id="line-205"> return primaryCallTimeoutMicroSecond;</span>
-<span class="source-line-no">206</span><span id="line-206"> }</span>
-<span class="source-line-no">207</span><span id="line-207"></span>
-<span class="source-line-no">208</span><span id="line-208"> public int getReplicaCallTimeoutMicroSecondScan() {</span>
-<span class="source-line-no">209</span><span id="line-209"> return replicaCallTimeoutMicroSecondScan;</span>
-<span class="source-line-no">210</span><span id="line-210"> }</span>
-<span class="source-line-no">211</span><span id="line-211"></span>
-<span class="source-line-no">212</span><span id="line-212"> public int getMetaReplicaCallTimeoutMicroSecondScan() {</span>
-<span class="source-line-no">213</span><span id="line-213"> return metaReplicaCallTimeoutMicroSecondScan;</span>
-<span class="source-line-no">214</span><span id="line-214"> }</span>
-<span class="source-line-no">215</span><span id="line-215"></span>
-<span class="source-line-no">216</span><span id="line-216"> public int getRetriesNumber() {</span>
-<span class="source-line-no">217</span><span id="line-217"> return retries;</span>
-<span class="source-line-no">218</span><span id="line-218"> }</span>
-<span class="source-line-no">219</span><span id="line-219"></span>
-<span class="source-line-no">220</span><span id="line-220"> public int getMaxKeyValueSize() {</span>
-<span class="source-line-no">221</span><span id="line-221"> return maxKeyValueSize;</span>
-<span class="source-line-no">222</span><span id="line-222"> }</span>
-<span class="source-line-no">223</span><span id="line-223"></span>
-<span class="source-line-no">224</span><span id="line-224"> public int getBufferedMutatorMaxMutations() {</span>
-<span class="source-line-no">225</span><span id="line-225"> return bufferedMutatorMaxMutations;</span>
-<span class="source-line-no">226</span><span id="line-226"> }</span>
-<span class="source-line-no">227</span><span id="line-227"></span>
-<span class="source-line-no">228</span><span id="line-228"> public long getScannerMaxResultSize() {</span>
-<span class="source-line-no">229</span><span id="line-229"> return scannerMaxResultSize;</span>
-<span class="source-line-no">230</span><span id="line-230"> }</span>
-<span class="source-line-no">231</span><span id="line-231"></span>
-<span class="source-line-no">232</span><span id="line-232"> public boolean isClientScannerAsyncPrefetch() {</span>
-<span class="source-line-no">233</span><span id="line-233"> return clientScannerAsyncPrefetch;</span>
-<span class="source-line-no">234</span><span id="line-234"> }</span>
-<span class="source-line-no">235</span><span id="line-235"></span>
-<span class="source-line-no">236</span><span id="line-236"> public int getRpcTimeout() {</span>
-<span class="source-line-no">237</span><span id="line-237"> return rpcTimeout;</span>
-<span class="source-line-no">238</span><span id="line-238"> }</span>
-<span class="source-line-no">239</span><span id="line-239">}</span>
+<span class="source-line-no">138</span><span id="line-138"> this.rpcTimeout = getNonNegativeInt(conf, HConstants.HBASE_RPC_TIMEOUT_KEY,</span>
+<span class="source-line-no">139</span><span id="line-139"> HConstants.DEFAULT_HBASE_RPC_TIMEOUT);</span>
+<span class="source-line-no">140</span><span id="line-140"></span>
+<span class="source-line-no">141</span><span id="line-141"> this.readRpcTimeout =</span>
+<span class="source-line-no">142</span><span id="line-142"> getNonNegativeInt(conf, HConstants.HBASE_RPC_READ_TIMEOUT_KEY, rpcTimeout);</span>
+<span class="source-line-no">143</span><span id="line-143"></span>
+<span class="source-line-no">144</span><span id="line-144"> this.metaReadRpcTimeout =</span>
+<span class="source-line-no">145</span><span id="line-145"> getNonNegativeInt(conf, HBASE_CLIENT_META_READ_RPC_TIMEOUT_KEY, readRpcTimeout);</span>
+<span class="source-line-no">146</span><span id="line-146"></span>
+<span class="source-line-no">147</span><span id="line-147"> this.writeRpcTimeout =</span>
+<span class="source-line-no">148</span><span id="line-148"> getNonNegativeInt(conf, HConstants.HBASE_RPC_WRITE_TIMEOUT_KEY, rpcTimeout);</span>
+<span class="source-line-no">149</span><span id="line-149"> }</span>
+<span class="source-line-no">150</span><span id="line-150"></span>
+<span class="source-line-no">151</span><span id="line-151"> /**</span>
+<span class="source-line-no">152</span><span id="line-152"> * Constructor This is for internal testing purpose (using the default value). In real usage, we</span>
+<span class="source-line-no">153</span><span id="line-153"> * should read the configuration from the Configuration object.</span>
+<span class="source-line-no">154</span><span id="line-154"> */</span>
+<span class="source-line-no">155</span><span id="line-155"> protected ConnectionConfiguration() {</span>
+<span class="source-line-no">156</span><span id="line-156"> this.writeBufferSize = WRITE_BUFFER_SIZE_DEFAULT;</span>
+<span class="source-line-no">157</span><span id="line-157"> this.writeBufferPeriodicFlushTimeoutMs = WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS_DEFAULT;</span>
+<span class="source-line-no">158</span><span id="line-158"> this.writeBufferPeriodicFlushTimerTickMs = WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS_DEFAULT;</span>
+<span class="source-line-no">159</span><span id="line-159"> this.metaOperationTimeout = HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT;</span>
+<span class="source-line-no">160</span><span id="line-160"> this.operationTimeout = HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT;</span>
+<span class="source-line-no">161</span><span id="line-161"> this.scannerCaching = HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING;</span>
+<span class="source-line-no">162</span><span id="line-162"> this.scannerMaxResultSize = HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE;</span>
+<span class="source-line-no">163</span><span id="line-163"> this.primaryCallTimeoutMicroSecond = 10000;</span>
+<span class="source-line-no">164</span><span id="line-164"> this.replicaCallTimeoutMicroSecondScan = 1000000;</span>
+<span class="source-line-no">165</span><span id="line-165"> this.metaReplicaCallTimeoutMicroSecondScan =</span>
+<span class="source-line-no">166</span><span id="line-166"> HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT_DEFAULT;</span>
+<span class="source-line-no">167</span><span id="line-167"> this.retries = HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER;</span>
+<span class="source-line-no">168</span><span id="line-168"> this.clientScannerAsyncPrefetch = Scan.DEFAULT_HBASE_CLIENT_SCANNER_ASYNC_PREFETCH;</span>
+<span class="source-line-no">169</span><span id="line-169"> this.maxKeyValueSize = MAX_KEYVALUE_SIZE_DEFAULT;</span>
+<span class="source-line-no">170</span><span id="line-170"> this.bufferedMutatorMaxMutations = BUFFERED_MUTATOR_MAX_MUTATIONS_DEFAULT;</span>
+<span class="source-line-no">171</span><span id="line-171"> this.readRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
+<span class="source-line-no">172</span><span id="line-172"> this.metaReadRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
+<span class="source-line-no">173</span><span id="line-173"> this.writeRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
+<span class="source-line-no">174</span><span id="line-174"> this.rpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
+<span class="source-line-no">175</span><span id="line-175"> }</span>
+<span class="source-line-no">176</span><span id="line-176"></span>
+<span class="source-line-no">177</span><span id="line-177"> public int getReadRpcTimeout() {</span>
+<span class="source-line-no">178</span><span id="line-178"> return readRpcTimeout;</span>
+<span class="source-line-no">179</span><span id="line-179"> }</span>
+<span class="source-line-no">180</span><span id="line-180"></span>
+<span class="source-line-no">181</span><span id="line-181"> public int getMetaReadRpcTimeout() {</span>
+<span class="source-line-no">182</span><span id="line-182"> return metaReadRpcTimeout;</span>
+<span class="source-line-no">183</span><span id="line-183"> }</span>
+<span class="source-line-no">184</span><span id="line-184"></span>
+<span class="source-line-no">185</span><span id="line-185"> public int getWriteRpcTimeout() {</span>
+<span class="source-line-no">186</span><span id="line-186"> return writeRpcTimeout;</span>
+<span class="source-line-no">187</span><span id="line-187"> }</span>
+<span class="source-line-no">188</span><span id="line-188"></span>
+<span class="source-line-no">189</span><span id="line-189"> public long getWriteBufferSize() {</span>
+<span class="source-line-no">190</span><span id="line-190"> return writeBufferSize;</span>
+<span class="source-line-no">191</span><span id="line-191"> }</span>
+<span class="source-line-no">192</span><span id="line-192"></span>
+<span class="source-line-no">193</span><span id="line-193"> public long getWriteBufferPeriodicFlushTimeoutMs() {</span>
+<span class="source-line-no">194</span><span id="line-194"> return writeBufferPeriodicFlushTimeoutMs;</span>
+<span class="source-line-no">195</span><span id="line-195"> }</span>
+<span class="source-line-no">196</span><span id="line-196"></span>
+<span class="source-line-no">197</span><span id="line-197"> public long getWriteBufferPeriodicFlushTimerTickMs() {</span>
+<span class="source-line-no">198</span><span id="line-198"> return writeBufferPeriodicFlushTimerTickMs;</span>
+<span class="source-line-no">199</span><span id="line-199"> }</span>
+<span class="source-line-no">200</span><span id="line-200"></span>
+<span class="source-line-no">201</span><span id="line-201"> public int getMetaOperationTimeout() {</span>
+<span class="source-line-no">202</span><span id="line-202"> return metaOperationTimeout;</span>
+<span class="source-line-no">203</span><span id="line-203"> }</span>
+<span class="source-line-no">204</span><span id="line-204"></span>
+<span class="source-line-no">205</span><span id="line-205"> public int getOperationTimeout() {</span>
+<span class="source-line-no">206</span><span id="line-206"> return operationTimeout;</span>
+<span class="source-line-no">207</span><span id="line-207"> }</span>
+<span class="source-line-no">208</span><span id="line-208"></span>
+<span class="source-line-no">209</span><span id="line-209"> public int getScannerCaching() {</span>
+<span class="source-line-no">210</span><span id="line-210"> return scannerCaching;</span>
+<span class="source-line-no">211</span><span id="line-211"> }</span>
+<span class="source-line-no">212</span><span id="line-212"></span>
+<span class="source-line-no">213</span><span id="line-213"> public int getPrimaryCallTimeoutMicroSecond() {</span>
+<span class="source-line-no">214</span><span id="line-214"> return primaryCallTimeoutMicroSecond;</span>
+<span class="source-line-no">215</span><span id="line-215"> }</span>
+<span class="source-line-no">216</span><span id="line-216"></span>
+<span class="source-line-no">217</span><span id="line-217"> public int getReplicaCallTimeoutMicroSecondScan() {</span>
+<span class="source-line-no">218</span><span id="line-218"> return replicaCallTimeoutMicroSecondScan;</span>
+<span class="source-line-no">219</span><span id="line-219"> }</span>
+<span class="source-line-no">220</span><span id="line-220"></span>
+<span class="source-line-no">221</span><span id="line-221"> public int getMetaReplicaCallTimeoutMicroSecondScan() {</span>
+<span class="source-line-no">222</span><span id="line-222"> return metaReplicaCallTimeoutMicroSecondScan;</span>
+<span class="source-line-no">223</span><span id="line-223"> }</span>
+<span class="source-line-no">224</span><span id="line-224"></span>
+<span class="source-line-no">225</span><span id="line-225"> public int getRetriesNumber() {</span>
+<span class="source-line-no">226</span><span id="line-226"> return retries;</span>
+<span class="source-line-no">227</span><span id="line-227"> }</span>
+<span class="source-line-no">228</span><span id="line-228"></span>
+<span class="source-line-no">229</span><span id="line-229"> public int getMaxKeyValueSize() {</span>
+<span class="source-line-no">230</span><span id="line-230"> return maxKeyValueSize;</span>
+<span class="source-line-no">231</span><span id="line-231"> }</span>
+<span class="source-line-no">232</span><span id="line-232"></span>
+<span class="source-line-no">233</span><span id="line-233"> public int getBufferedMutatorMaxMutations() {</span>
+<span class="source-line-no">234</span><span id="line-234"> return bufferedMutatorMaxMutations;</span>
+<span class="source-line-no">235</span><span id="line-235"> }</span>
+<span class="source-line-no">236</span><span id="line-236"></span>
+<span class="source-line-no">237</span><span id="line-237"> public long getScannerMaxResultSize() {</span>
+<span class="source-line-no">238</span><span id="line-238"> return scannerMaxResultSize;</span>
+<span class="source-line-no">239</span><span id="line-239"> }</span>
+<span class="source-line-no">240</span><span id="line-240"></span>
+<span class="source-line-no">241</span><span id="line-241"> public boolean isClientScannerAsyncPrefetch() {</span>
+<span class="source-line-no">242</span><span id="line-242"> return clientScannerAsyncPrefetch;</span>
+<span class="source-line-no">243</span><span id="line-243"> }</span>
+<span class="source-line-no">244</span><span id="line-244"></span>
+<span class="source-line-no">245</span><span id="line-245"> public int getRpcTimeout() {</span>
+<span class="source-line-no">246</span><span id="line-246"> return rpcTimeout;</span>
+<span class="source-line-no">247</span><span id="line-247"> }</span>
+<span class="source-line-no">248</span><span id="line-248">}</span>
diff --git a/books/apache-hbase-reference-guide-dark-mode.pdf b/books/apache-hbase-reference-guide-dark-mode.pdf
index a559085218e..a447fd245c0 100644
Binary files a/books/apache-hbase-reference-guide-dark-mode.pdf and b/books/apache-hbase-reference-guide-dark-mode.pdf differ
diff --git a/books/apache-hbase-reference-guide.pdf b/books/apache-hbase-reference-guide.pdf
index d5037190988..a3fd132c7ee 100644
Binary files a/books/apache-hbase-reference-guide.pdf and b/books/apache-hbase-reference-guide.pdf differ
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 2a2cff2304c..ee1fb34f114 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-checkstyle-plugin:3.6.0:checkstyle-aggregate at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-checkstyle-plugin:3.6.0:checkstyle-aggregate at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 9dffba95142..2e75aa447d6 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-convergence at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-convergence at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/dependency-info.html b/dependency-info.html
index 3e8669c463f..d9c4449b857 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-info at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-info at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/dependency-management.html b/dependency-management.html
index 4ea5b15ca25..ccd88cdcf95 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-management at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-management at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 0d0399fbacb..de98f2a1faf 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -57190,6 +57190,8 @@ loadScripts(document, 'script');</script>
<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/util/RegionMover.html#getNonMetaRegionsMovePlan()" class="member-name-link">getNonMetaRegionsMovePlan()</a> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/RegionMover.html" title="class in org.apache.hadoop.hbase.util">RegionMover</a></dt>
<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/client/ConnectionConfiguration.html#getNonNegativeInt(org.apache.hadoop.conf.Configuration,java.lang.String,int)" class="member-name-link">getNonNegativeInt(Configuration, String, int)</a> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ConnectionConfiguration.html" title="class in org.apache.hadoop.hbase.client">ConnectionConfiguration</a></dt>
+<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html#getNonRootIndexedKey(org.apache.hadoop.hbase.nio.ByteBuff,int)" class="member-name-link">getNonRootIndexedKey(ByteBuff, int)</a> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexReader</a></dt>
<dd>
<div class="block">The indexed key at the ith position in the nonRootIndex.</div>
diff --git a/devapidocs/member-search-index.js b/devapidocs/member-search-index.js
index 4036cf1fcd9..d133b1009fe 100644
--- a/devapidocs/member-search-index.js
+++ b/devapidocs/member-search-index.js
@@ -1 +1 @@
-memberSearchIndex = [{"p":"org.apache.hadoop.hbase.rest.model","c":"ColumnSchemaModel","l":"__getBlockcache()"},{"p":"org.apache.hadoop.hbase.rest.model","c":"ColumnSchemaModel","l":"__getBlocksize()"},{"p":"org.apache.hadoop.hbase.rest.model","c":"ColumnSchemaModel","l":"__getBloomfilter()"},{"p":"org.apache.hadoop.hbase.rest.model","c":"ColumnSchemaModel","l":"__getCompression()"},{"p":"org.apache.hadoop.hbase.rest.model","c":"ColumnSchemaModel","l":"__getInMemory()"},{"p":"org.apache. [...]
\ No newline at end of file
+memberSearchIndex = [{"p":"org.apache.hadoop.hbase.rest.model","c":"ColumnSchemaModel","l":"__getBlockcache()"},{"p":"org.apache.hadoop.hbase.rest.model","c":"ColumnSchemaModel","l":"__getBlocksize()"},{"p":"org.apache.hadoop.hbase.rest.model","c":"ColumnSchemaModel","l":"__getBloomfilter()"},{"p":"org.apache.hadoop.hbase.rest.model","c":"ColumnSchemaModel","l":"__getCompression()"},{"p":"org.apache.hadoop.hbase.rest.model","c":"ColumnSchemaModel","l":"__getInMemory()"},{"p":"org.apache. [...]
\ No newline at end of file
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionConfiguration.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionConfiguration.html
index 2a0d9562963..1e3beb5d9a7 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionConfiguration.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionConfiguration.html
@@ -235,7 +235,7 @@ loadScripts(document, 'script');</script>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
-<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab( [...]
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab( [...]
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
@@ -256,45 +256,50 @@ loadScripts(document, 'script');</script>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMetaReplicaCallTimeoutMicroSecondScan()" class="member-name-link">getMetaReplicaCallTimeoutMicroSecondScan</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getOperationTimeout()" class="member-name-link">getOperationTimeout</a>()</code></div>
-<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>private static int</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getNonNegativeInt(org.apache.hadoop.conf.Configuration,java.lang.String,int)" class="member-name-link">getNonNegativeInt</a><wbr>(org.apache.hadoop.conf.Configuration conf,
+ <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> key,
+ int defaultValue)</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> </div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPrimaryCallTimeoutMicroSecond()" class="member-name-link">getPrimaryCallTimeoutMicroSecond</a>()</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getOperationTimeout()" class="member-name-link">getOperationTimeout</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getReadRpcTimeout()" class="member-name-link">getReadRpcTimeout</a>()</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPrimaryCallTimeoutMicroSecond()" class="member-name-link">getPrimaryCallTimeoutMicroSecond</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getReplicaCallTimeoutMicroSecondScan()" class="member-name-link">getReplicaCallTimeoutMicroSecondScan</a>()</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getReadRpcTimeout()" class="member-name-link">getReadRpcTimeout</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getRetriesNumber()" class="member-name-link">getRetriesNumber</a>()</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getReplicaCallTimeoutMicroSecondScan()" class="member-name-link">getReplicaCallTimeoutMicroSecondScan</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getRpcTimeout()" class="member-name-link">getRpcTimeout</a>()</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getRetriesNumber()" class="member-name-link">getRetriesNumber</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getScannerCaching()" class="member-name-link">getScannerCaching</a>()</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getRpcTimeout()" class="member-name-link">getRpcTimeout</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getScannerMaxResultSize()" class="member-name-link">getScannerMaxResultSize</a>()</code></div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getScannerCaching()" class="member-name-link">getScannerCaching</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWriteBufferPeriodicFlushTimeoutMs()" class="member-name-link">getWriteBufferPeriodicFlushTimeoutMs</a>()</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getScannerMaxResultSize()" class="member-name-link">getScannerMaxResultSize</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWriteBufferPeriodicFlushTimerTickMs()" class="member-name-link">getWriteBufferPeriodicFlushTimerTickMs</a>()</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWriteBufferPeriodicFlushTimeoutMs()" class="member-name-link">getWriteBufferPeriodicFlushTimeoutMs</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWriteBufferSize()" class="member-name-link">getWriteBufferSize</a>()</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWriteBufferPeriodicFlushTimerTickMs()" class="member-name-link">getWriteBufferPeriodicFlushTimerTickMs</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
-<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
-<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWriteRpcTimeout()" class="member-name-link">getWriteRpcTimeout</a>()</code></div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWriteBufferSize()" class="member-name-link">getWriteBufferSize</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
-<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
-<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isClientScannerAsyncPrefetch()" class="member-name-link">isClientScannerAsyncPrefetch</a>()</code></div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWriteRpcTimeout()" class="member-name-link">getWriteRpcTimeout</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isClientScannerAsyncPrefetch()" class="member-name-link">isClientScannerAsyncPrefetch</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
</div>
</div>
</div>
@@ -683,7 +688,7 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="<init>(org.apache.hadoop.conf.Configuration)">
<h3>ConnectionConfiguration</h3>
-<div class="member-signature"><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-87">ConnectionConfiguration</a></span><wbr><span class="parameters">(org.apache.hadoop.conf.Configuration conf)</span></div>
+<div class="member-signature"><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-96">ConnectionConfiguration</a></span><wbr><span class="parameters">(org.apache.hadoop.conf.Configuration conf)</span></div>
<div class="block">Constructor</div>
<dl class="notes">
<dt>Parameters:</dt>
@@ -694,7 +699,7 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="<init>()">
<h3>ConnectionConfiguration</h3>
-<div class="member-signature"><span class="modifiers">protected</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-146">ConnectionConfiguration</a></span>()</div>
+<div class="member-signature"><span class="modifiers">protected</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-155">ConnectionConfiguration</a></span>()</div>
<div class="block">Constructor This is for internal testing purpose (using the default value). In real usage, we
should read the configuration from the Configuration object.</div>
</section>
@@ -708,111 +713,119 @@ loadScripts(document, 'script');</script>
<h2>Method Details</h2>
<ul class="member-list">
<li>
+<section class="detail" id="getNonNegativeInt(org.apache.hadoop.conf.Configuration,java.lang.String,int)">
+<h3>getNonNegativeInt</h3>
+<div class="member-signature"><span class="modifiers">private static</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-83">getNonNegativeInt</a></span><wbr><span class="parameters">(org.apache.hadoop.conf.Configuration conf,
+ <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> key,
+ int defaultValue)</span></div>
+</section>
+</li>
+<li>
<section class="detail" id="getReadRpcTimeout()">
<h3>getReadRpcTimeout</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-168">getReadRpcTimeout</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-177">getReadRpcTimeout</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getMetaReadRpcTimeout()">
<h3>getMetaReadRpcTimeout</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-172">getMetaReadRpcTimeout</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-181">getMetaReadRpcTimeout</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getWriteRpcTimeout()">
<h3>getWriteRpcTimeout</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-176">getWriteRpcTimeout</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-185">getWriteRpcTimeout</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getWriteBufferSize()">
<h3>getWriteBufferSize</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-180">getWriteBufferSize</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-189">getWriteBufferSize</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getWriteBufferPeriodicFlushTimeoutMs()">
<h3>getWriteBufferPeriodicFlushTimeoutMs</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-184">getWriteBufferPeriodicFlushTimeoutMs</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-193">getWriteBufferPeriodicFlushTimeoutMs</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getWriteBufferPeriodicFlushTimerTickMs()">
<h3>getWriteBufferPeriodicFlushTimerTickMs</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-188">getWriteBufferPeriodicFlushTimerTickMs</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-197">getWriteBufferPeriodicFlushTimerTickMs</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getMetaOperationTimeout()">
<h3>getMetaOperationTimeout</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-192">getMetaOperationTimeout</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-201">getMetaOperationTimeout</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getOperationTimeout()">
<h3>getOperationTimeout</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-196">getOperationTimeout</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-205">getOperationTimeout</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getScannerCaching()">
<h3>getScannerCaching</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-200">getScannerCaching</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-209">getScannerCaching</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getPrimaryCallTimeoutMicroSecond()">
<h3>getPrimaryCallTimeoutMicroSecond</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-204">getPrimaryCallTimeoutMicroSecond</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-213">getPrimaryCallTimeoutMicroSecond</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getReplicaCallTimeoutMicroSecondScan()">
<h3>getReplicaCallTimeoutMicroSecondScan</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-208">getReplicaCallTimeoutMicroSecondScan</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-217">getReplicaCallTimeoutMicroSecondScan</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getMetaReplicaCallTimeoutMicroSecondScan()">
<h3>getMetaReplicaCallTimeoutMicroSecondScan</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-212">getMetaReplicaCallTimeoutMicroSecondScan</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-221">getMetaReplicaCallTimeoutMicroSecondScan</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getRetriesNumber()">
<h3>getRetriesNumber</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-216">getRetriesNumber</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-225">getRetriesNumber</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getMaxKeyValueSize()">
<h3>getMaxKeyValueSize</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-220">getMaxKeyValueSize</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-229">getMaxKeyValueSize</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getBufferedMutatorMaxMutations()">
<h3>getBufferedMutatorMaxMutations</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-224">getBufferedMutatorMaxMutations</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-233">getBufferedMutatorMaxMutations</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getScannerMaxResultSize()">
<h3>getScannerMaxResultSize</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-228">getScannerMaxResultSize</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-237">getScannerMaxResultSize</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="isClientScannerAsyncPrefetch()">
<h3>isClientScannerAsyncPrefetch</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-232">isClientScannerAsyncPrefetch</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-241">isClientScannerAsyncPrefetch</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getRpcTimeout()">
<h3>getRpcTimeout</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-236">getRpcTimeout</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html#line-245">getRpcTimeout</a></span>()</div>
</section>
</li>
</ul>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html
index b23cda16871..16d16669949 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionConfiguration.html
@@ -93,163 +93,172 @@
<span class="source-line-no">080</span><span id="line-80"> // toggle for async/sync prefetch</span>
<span class="source-line-no">081</span><span id="line-81"> private final boolean clientScannerAsyncPrefetch;</span>
<span class="source-line-no">082</span><span id="line-82"></span>
-<span class="source-line-no">083</span><span id="line-83"> /**</span>
-<span class="source-line-no">084</span><span id="line-84"> * Constructor</span>
-<span class="source-line-no">085</span><span id="line-85"> * @param conf Configuration object</span>
-<span class="source-line-no">086</span><span id="line-86"> */</span>
-<span class="source-line-no">087</span><span id="line-87"> ConnectionConfiguration(Configuration conf) {</span>
-<span class="source-line-no">088</span><span id="line-88"> this.writeBufferSize = conf.getLong(WRITE_BUFFER_SIZE_KEY, WRITE_BUFFER_SIZE_DEFAULT);</span>
-<span class="source-line-no">089</span><span id="line-89"></span>
-<span class="source-line-no">090</span><span id="line-90"> this.writeBufferPeriodicFlushTimeoutMs = conf.getLong(WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS,</span>
-<span class="source-line-no">091</span><span id="line-91"> WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS_DEFAULT);</span>
-<span class="source-line-no">092</span><span id="line-92"></span>
-<span class="source-line-no">093</span><span id="line-93"> this.writeBufferPeriodicFlushTimerTickMs = conf.getLong(</span>
-<span class="source-line-no">094</span><span id="line-94"> WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS, WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS_DEFAULT);</span>
-<span class="source-line-no">095</span><span id="line-95"></span>
-<span class="source-line-no">096</span><span id="line-96"> this.metaOperationTimeout = conf.getInt(HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT,</span>
-<span class="source-line-no">097</span><span id="line-97"> conf.getInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,</span>
-<span class="source-line-no">098</span><span id="line-98"> HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT));</span>
-<span class="source-line-no">099</span><span id="line-99"></span>
-<span class="source-line-no">100</span><span id="line-100"> this.operationTimeout = conf.getInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,</span>
-<span class="source-line-no">101</span><span id="line-101"> HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);</span>
-<span class="source-line-no">102</span><span id="line-102"></span>
-<span class="source-line-no">103</span><span id="line-103"> this.scannerCaching = conf.getInt(HConstants.HBASE_CLIENT_SCANNER_CACHING,</span>
-<span class="source-line-no">104</span><span id="line-104"> HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING);</span>
-<span class="source-line-no">105</span><span id="line-105"></span>
-<span class="source-line-no">106</span><span id="line-106"> this.scannerMaxResultSize = conf.getLong(HConstants.HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE_KEY,</span>
-<span class="source-line-no">107</span><span id="line-107"> HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE);</span>
-<span class="source-line-no">108</span><span id="line-108"></span>
-<span class="source-line-no">109</span><span id="line-109"> this.primaryCallTimeoutMicroSecond =</span>
-<span class="source-line-no">110</span><span id="line-110"> conf.getInt(PRIMARY_CALL_TIMEOUT_MICROSECOND, PRIMARY_CALL_TIMEOUT_MICROSECOND_DEFAULT);</span>
-<span class="source-line-no">111</span><span id="line-111"></span>
-<span class="source-line-no">112</span><span id="line-112"> this.replicaCallTimeoutMicroSecondScan =</span>
-<span class="source-line-no">113</span><span id="line-113"> conf.getInt(PRIMARY_SCAN_TIMEOUT_MICROSECOND, PRIMARY_SCAN_TIMEOUT_MICROSECOND_DEFAULT);</span>
-<span class="source-line-no">114</span><span id="line-114"></span>
-<span class="source-line-no">115</span><span id="line-115"> this.metaReplicaCallTimeoutMicroSecondScan =</span>
-<span class="source-line-no">116</span><span id="line-116"> conf.getInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,</span>
-<span class="source-line-no">117</span><span id="line-117"> HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT_DEFAULT);</span>
-<span class="source-line-no">118</span><span id="line-118"></span>
-<span class="source-line-no">119</span><span id="line-119"> this.retries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,</span>
-<span class="source-line-no">120</span><span id="line-120"> HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);</span>
-<span class="source-line-no">121</span><span id="line-121"></span>
-<span class="source-line-no">122</span><span id="line-122"> this.clientScannerAsyncPrefetch = conf.getBoolean(Scan.HBASE_CLIENT_SCANNER_ASYNC_PREFETCH,</span>
-<span class="source-line-no">123</span><span id="line-123"> Scan.DEFAULT_HBASE_CLIENT_SCANNER_ASYNC_PREFETCH);</span>
-<span class="source-line-no">124</span><span id="line-124"></span>
-<span class="source-line-no">125</span><span id="line-125"> this.maxKeyValueSize = conf.getInt(MAX_KEYVALUE_SIZE_KEY, MAX_KEYVALUE_SIZE_DEFAULT);</span>
+<span class="source-line-no">083</span><span id="line-83"> private static int getNonNegativeInt(Configuration conf, String key, int defaultValue) {</span>
+<span class="source-line-no">084</span><span id="line-84"> int value = conf.getInt(key, defaultValue);</span>
+<span class="source-line-no">085</span><span id="line-85"> if (value < 0) {</span>
+<span class="source-line-no">086</span><span id="line-86"> throw new IllegalArgumentException(</span>
+<span class="source-line-no">087</span><span id="line-87"> "The " + key + " must be non-negative, current value is " + value);</span>
+<span class="source-line-no">088</span><span id="line-88"> }</span>
+<span class="source-line-no">089</span><span id="line-89"> return value;</span>
+<span class="source-line-no">090</span><span id="line-90"> }</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"> * Constructor</span>
+<span class="source-line-no">094</span><span id="line-94"> * @param conf Configuration object</span>
+<span class="source-line-no">095</span><span id="line-95"> */</span>
+<span class="source-line-no">096</span><span id="line-96"> ConnectionConfiguration(Configuration conf) {</span>
+<span class="source-line-no">097</span><span id="line-97"> this.writeBufferSize = conf.getLong(WRITE_BUFFER_SIZE_KEY, WRITE_BUFFER_SIZE_DEFAULT);</span>
+<span class="source-line-no">098</span><span id="line-98"></span>
+<span class="source-line-no">099</span><span id="line-99"> this.writeBufferPeriodicFlushTimeoutMs = conf.getLong(WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS,</span>
+<span class="source-line-no">100</span><span id="line-100"> WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS_DEFAULT);</span>
+<span class="source-line-no">101</span><span id="line-101"></span>
+<span class="source-line-no">102</span><span id="line-102"> this.writeBufferPeriodicFlushTimerTickMs = conf.getLong(</span>
+<span class="source-line-no">103</span><span id="line-103"> WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS, WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS_DEFAULT);</span>
+<span class="source-line-no">104</span><span id="line-104"></span>
+<span class="source-line-no">105</span><span id="line-105"> this.operationTimeout = getNonNegativeInt(conf, HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,</span>
+<span class="source-line-no">106</span><span id="line-106"> HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);</span>
+<span class="source-line-no">107</span><span id="line-107"></span>
+<span class="source-line-no">108</span><span id="line-108"> this.metaOperationTimeout =</span>
+<span class="source-line-no">109</span><span id="line-109"> getNonNegativeInt(conf, HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT, operationTimeout);</span>
+<span class="source-line-no">110</span><span id="line-110"></span>
+<span class="source-line-no">111</span><span id="line-111"> this.scannerCaching = conf.getInt(HConstants.HBASE_CLIENT_SCANNER_CACHING,</span>
+<span class="source-line-no">112</span><span id="line-112"> HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING);</span>
+<span class="source-line-no">113</span><span id="line-113"></span>
+<span class="source-line-no">114</span><span id="line-114"> this.scannerMaxResultSize = conf.getLong(HConstants.HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE_KEY,</span>
+<span class="source-line-no">115</span><span id="line-115"> HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE);</span>
+<span class="source-line-no">116</span><span id="line-116"></span>
+<span class="source-line-no">117</span><span id="line-117"> this.primaryCallTimeoutMicroSecond = getNonNegativeInt(conf, PRIMARY_CALL_TIMEOUT_MICROSECOND,</span>
+<span class="source-line-no">118</span><span id="line-118"> PRIMARY_CALL_TIMEOUT_MICROSECOND_DEFAULT);</span>
+<span class="source-line-no">119</span><span id="line-119"></span>
+<span class="source-line-no">120</span><span id="line-120"> this.replicaCallTimeoutMicroSecondScan = getNonNegativeInt(conf,</span>
+<span class="source-line-no">121</span><span id="line-121"> PRIMARY_SCAN_TIMEOUT_MICROSECOND, PRIMARY_SCAN_TIMEOUT_MICROSECOND_DEFAULT);</span>
+<span class="source-line-no">122</span><span id="line-122"></span>
+<span class="source-line-no">123</span><span id="line-123"> this.metaReplicaCallTimeoutMicroSecondScan =</span>
+<span class="source-line-no">124</span><span id="line-124"> getNonNegativeInt(conf, HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,</span>
+<span class="source-line-no">125</span><span id="line-125"> HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT_DEFAULT);</span>
<span class="source-line-no">126</span><span id="line-126"></span>
-<span class="source-line-no">127</span><span id="line-127"> this.bufferedMutatorMaxMutations =</span>
-<span class="source-line-no">128</span><span id="line-128"> conf.getInt(BUFFERED_MUTATOR_MAX_MUTATIONS_KEY, BUFFERED_MUTATOR_MAX_MUTATIONS_DEFAULT);</span>
+<span class="source-line-no">127</span><span id="line-127"> this.retries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,</span>
+<span class="source-line-no">128</span><span id="line-128"> HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);</span>
<span class="source-line-no">129</span><span id="line-129"></span>
-<span class="source-line-no">130</span><span id="line-130"> this.rpcTimeout =</span>
-<span class="source-line-no">131</span><span id="line-131"> conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY, HConstants.DEFAULT_HBASE_RPC_TIMEOUT);</span>
+<span class="source-line-no">130</span><span id="line-130"> this.clientScannerAsyncPrefetch = conf.getBoolean(Scan.HBASE_CLIENT_SCANNER_ASYNC_PREFETCH,</span>
+<span class="source-line-no">131</span><span id="line-131"> Scan.DEFAULT_HBASE_CLIENT_SCANNER_ASYNC_PREFETCH);</span>
<span class="source-line-no">132</span><span id="line-132"></span>
-<span class="source-line-no">133</span><span id="line-133"> this.readRpcTimeout = conf.getInt(HConstants.HBASE_RPC_READ_TIMEOUT_KEY,</span>
-<span class="source-line-no">134</span><span id="line-134"> conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY, HConstants.DEFAULT_HBASE_RPC_TIMEOUT));</span>
-<span class="source-line-no">135</span><span id="line-135"></span>
-<span class="source-line-no">136</span><span id="line-136"> this.metaReadRpcTimeout = conf.getInt(HBASE_CLIENT_META_READ_RPC_TIMEOUT_KEY, readRpcTimeout);</span>
+<span class="source-line-no">133</span><span id="line-133"> this.maxKeyValueSize = conf.getInt(MAX_KEYVALUE_SIZE_KEY, MAX_KEYVALUE_SIZE_DEFAULT);</span>
+<span class="source-line-no">134</span><span id="line-134"></span>
+<span class="source-line-no">135</span><span id="line-135"> this.bufferedMutatorMaxMutations =</span>
+<span class="source-line-no">136</span><span id="line-136"> conf.getInt(BUFFERED_MUTATOR_MAX_MUTATIONS_KEY, BUFFERED_MUTATOR_MAX_MUTATIONS_DEFAULT);</span>
<span class="source-line-no">137</span><span id="line-137"></span>
-<span class="source-line-no">138</span><span id="line-138"> this.writeRpcTimeout = conf.getInt(HConstants.HBASE_RPC_WRITE_TIMEOUT_KEY,</span>
-<span class="source-line-no">139</span><span id="line-139"> conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY, HConstants.DEFAULT_HBASE_RPC_TIMEOUT));</span>
-<span class="source-line-no">140</span><span id="line-140"> }</span>
-<span class="source-line-no">141</span><span id="line-141"></span>
-<span class="source-line-no">142</span><span id="line-142"> /**</span>
-<span class="source-line-no">143</span><span id="line-143"> * Constructor This is for internal testing purpose (using the default value). In real usage, we</span>
-<span class="source-line-no">144</span><span id="line-144"> * should read the configuration from the Configuration object.</span>
-<span class="source-line-no">145</span><span id="line-145"> */</span>
-<span class="source-line-no">146</span><span id="line-146"> protected ConnectionConfiguration() {</span>
-<span class="source-line-no">147</span><span id="line-147"> this.writeBufferSize = WRITE_BUFFER_SIZE_DEFAULT;</span>
-<span class="source-line-no">148</span><span id="line-148"> this.writeBufferPeriodicFlushTimeoutMs = WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS_DEFAULT;</span>
-<span class="source-line-no">149</span><span id="line-149"> this.writeBufferPeriodicFlushTimerTickMs = WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS_DEFAULT;</span>
-<span class="source-line-no">150</span><span id="line-150"> this.metaOperationTimeout = HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT;</span>
-<span class="source-line-no">151</span><span id="line-151"> this.operationTimeout = HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT;</span>
-<span class="source-line-no">152</span><span id="line-152"> this.scannerCaching = HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING;</span>
-<span class="source-line-no">153</span><span id="line-153"> this.scannerMaxResultSize = HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE;</span>
-<span class="source-line-no">154</span><span id="line-154"> this.primaryCallTimeoutMicroSecond = 10000;</span>
-<span class="source-line-no">155</span><span id="line-155"> this.replicaCallTimeoutMicroSecondScan = 1000000;</span>
-<span class="source-line-no">156</span><span id="line-156"> this.metaReplicaCallTimeoutMicroSecondScan =</span>
-<span class="source-line-no">157</span><span id="line-157"> HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT_DEFAULT;</span>
-<span class="source-line-no">158</span><span id="line-158"> this.retries = HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER;</span>
-<span class="source-line-no">159</span><span id="line-159"> this.clientScannerAsyncPrefetch = Scan.DEFAULT_HBASE_CLIENT_SCANNER_ASYNC_PREFETCH;</span>
-<span class="source-line-no">160</span><span id="line-160"> this.maxKeyValueSize = MAX_KEYVALUE_SIZE_DEFAULT;</span>
-<span class="source-line-no">161</span><span id="line-161"> this.bufferedMutatorMaxMutations = BUFFERED_MUTATOR_MAX_MUTATIONS_DEFAULT;</span>
-<span class="source-line-no">162</span><span id="line-162"> this.readRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
-<span class="source-line-no">163</span><span id="line-163"> this.metaReadRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
-<span class="source-line-no">164</span><span id="line-164"> this.writeRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
-<span class="source-line-no">165</span><span id="line-165"> this.rpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
-<span class="source-line-no">166</span><span id="line-166"> }</span>
-<span class="source-line-no">167</span><span id="line-167"></span>
-<span class="source-line-no">168</span><span id="line-168"> public int getReadRpcTimeout() {</span>
-<span class="source-line-no">169</span><span id="line-169"> return readRpcTimeout;</span>
-<span class="source-line-no">170</span><span id="line-170"> }</span>
-<span class="source-line-no">171</span><span id="line-171"></span>
-<span class="source-line-no">172</span><span id="line-172"> public int getMetaReadRpcTimeout() {</span>
-<span class="source-line-no">173</span><span id="line-173"> return metaReadRpcTimeout;</span>
-<span class="source-line-no">174</span><span id="line-174"> }</span>
-<span class="source-line-no">175</span><span id="line-175"></span>
-<span class="source-line-no">176</span><span id="line-176"> public int getWriteRpcTimeout() {</span>
-<span class="source-line-no">177</span><span id="line-177"> return writeRpcTimeout;</span>
-<span class="source-line-no">178</span><span id="line-178"> }</span>
-<span class="source-line-no">179</span><span id="line-179"></span>
-<span class="source-line-no">180</span><span id="line-180"> public long getWriteBufferSize() {</span>
-<span class="source-line-no">181</span><span id="line-181"> return writeBufferSize;</span>
-<span class="source-line-no">182</span><span id="line-182"> }</span>
-<span class="source-line-no">183</span><span id="line-183"></span>
-<span class="source-line-no">184</span><span id="line-184"> public long getWriteBufferPeriodicFlushTimeoutMs() {</span>
-<span class="source-line-no">185</span><span id="line-185"> return writeBufferPeriodicFlushTimeoutMs;</span>
-<span class="source-line-no">186</span><span id="line-186"> }</span>
-<span class="source-line-no">187</span><span id="line-187"></span>
-<span class="source-line-no">188</span><span id="line-188"> public long getWriteBufferPeriodicFlushTimerTickMs() {</span>
-<span class="source-line-no">189</span><span id="line-189"> return writeBufferPeriodicFlushTimerTickMs;</span>
-<span class="source-line-no">190</span><span id="line-190"> }</span>
-<span class="source-line-no">191</span><span id="line-191"></span>
-<span class="source-line-no">192</span><span id="line-192"> public int getMetaOperationTimeout() {</span>
-<span class="source-line-no">193</span><span id="line-193"> return metaOperationTimeout;</span>
-<span class="source-line-no">194</span><span id="line-194"> }</span>
-<span class="source-line-no">195</span><span id="line-195"></span>
-<span class="source-line-no">196</span><span id="line-196"> public int getOperationTimeout() {</span>
-<span class="source-line-no">197</span><span id="line-197"> return operationTimeout;</span>
-<span class="source-line-no">198</span><span id="line-198"> }</span>
-<span class="source-line-no">199</span><span id="line-199"></span>
-<span class="source-line-no">200</span><span id="line-200"> public int getScannerCaching() {</span>
-<span class="source-line-no">201</span><span id="line-201"> return scannerCaching;</span>
-<span class="source-line-no">202</span><span id="line-202"> }</span>
-<span class="source-line-no">203</span><span id="line-203"></span>
-<span class="source-line-no">204</span><span id="line-204"> public int getPrimaryCallTimeoutMicroSecond() {</span>
-<span class="source-line-no">205</span><span id="line-205"> return primaryCallTimeoutMicroSecond;</span>
-<span class="source-line-no">206</span><span id="line-206"> }</span>
-<span class="source-line-no">207</span><span id="line-207"></span>
-<span class="source-line-no">208</span><span id="line-208"> public int getReplicaCallTimeoutMicroSecondScan() {</span>
-<span class="source-line-no">209</span><span id="line-209"> return replicaCallTimeoutMicroSecondScan;</span>
-<span class="source-line-no">210</span><span id="line-210"> }</span>
-<span class="source-line-no">211</span><span id="line-211"></span>
-<span class="source-line-no">212</span><span id="line-212"> public int getMetaReplicaCallTimeoutMicroSecondScan() {</span>
-<span class="source-line-no">213</span><span id="line-213"> return metaReplicaCallTimeoutMicroSecondScan;</span>
-<span class="source-line-no">214</span><span id="line-214"> }</span>
-<span class="source-line-no">215</span><span id="line-215"></span>
-<span class="source-line-no">216</span><span id="line-216"> public int getRetriesNumber() {</span>
-<span class="source-line-no">217</span><span id="line-217"> return retries;</span>
-<span class="source-line-no">218</span><span id="line-218"> }</span>
-<span class="source-line-no">219</span><span id="line-219"></span>
-<span class="source-line-no">220</span><span id="line-220"> public int getMaxKeyValueSize() {</span>
-<span class="source-line-no">221</span><span id="line-221"> return maxKeyValueSize;</span>
-<span class="source-line-no">222</span><span id="line-222"> }</span>
-<span class="source-line-no">223</span><span id="line-223"></span>
-<span class="source-line-no">224</span><span id="line-224"> public int getBufferedMutatorMaxMutations() {</span>
-<span class="source-line-no">225</span><span id="line-225"> return bufferedMutatorMaxMutations;</span>
-<span class="source-line-no">226</span><span id="line-226"> }</span>
-<span class="source-line-no">227</span><span id="line-227"></span>
-<span class="source-line-no">228</span><span id="line-228"> public long getScannerMaxResultSize() {</span>
-<span class="source-line-no">229</span><span id="line-229"> return scannerMaxResultSize;</span>
-<span class="source-line-no">230</span><span id="line-230"> }</span>
-<span class="source-line-no">231</span><span id="line-231"></span>
-<span class="source-line-no">232</span><span id="line-232"> public boolean isClientScannerAsyncPrefetch() {</span>
-<span class="source-line-no">233</span><span id="line-233"> return clientScannerAsyncPrefetch;</span>
-<span class="source-line-no">234</span><span id="line-234"> }</span>
-<span class="source-line-no">235</span><span id="line-235"></span>
-<span class="source-line-no">236</span><span id="line-236"> public int getRpcTimeout() {</span>
-<span class="source-line-no">237</span><span id="line-237"> return rpcTimeout;</span>
-<span class="source-line-no">238</span><span id="line-238"> }</span>
-<span class="source-line-no">239</span><span id="line-239">}</span>
+<span class="source-line-no">138</span><span id="line-138"> this.rpcTimeout = getNonNegativeInt(conf, HConstants.HBASE_RPC_TIMEOUT_KEY,</span>
+<span class="source-line-no">139</span><span id="line-139"> HConstants.DEFAULT_HBASE_RPC_TIMEOUT);</span>
+<span class="source-line-no">140</span><span id="line-140"></span>
+<span class="source-line-no">141</span><span id="line-141"> this.readRpcTimeout =</span>
+<span class="source-line-no">142</span><span id="line-142"> getNonNegativeInt(conf, HConstants.HBASE_RPC_READ_TIMEOUT_KEY, rpcTimeout);</span>
+<span class="source-line-no">143</span><span id="line-143"></span>
+<span class="source-line-no">144</span><span id="line-144"> this.metaReadRpcTimeout =</span>
+<span class="source-line-no">145</span><span id="line-145"> getNonNegativeInt(conf, HBASE_CLIENT_META_READ_RPC_TIMEOUT_KEY, readRpcTimeout);</span>
+<span class="source-line-no">146</span><span id="line-146"></span>
+<span class="source-line-no">147</span><span id="line-147"> this.writeRpcTimeout =</span>
+<span class="source-line-no">148</span><span id="line-148"> getNonNegativeInt(conf, HConstants.HBASE_RPC_WRITE_TIMEOUT_KEY, rpcTimeout);</span>
+<span class="source-line-no">149</span><span id="line-149"> }</span>
+<span class="source-line-no">150</span><span id="line-150"></span>
+<span class="source-line-no">151</span><span id="line-151"> /**</span>
+<span class="source-line-no">152</span><span id="line-152"> * Constructor This is for internal testing purpose (using the default value). In real usage, we</span>
+<span class="source-line-no">153</span><span id="line-153"> * should read the configuration from the Configuration object.</span>
+<span class="source-line-no">154</span><span id="line-154"> */</span>
+<span class="source-line-no">155</span><span id="line-155"> protected ConnectionConfiguration() {</span>
+<span class="source-line-no">156</span><span id="line-156"> this.writeBufferSize = WRITE_BUFFER_SIZE_DEFAULT;</span>
+<span class="source-line-no">157</span><span id="line-157"> this.writeBufferPeriodicFlushTimeoutMs = WRITE_BUFFER_PERIODIC_FLUSH_TIMEOUT_MS_DEFAULT;</span>
+<span class="source-line-no">158</span><span id="line-158"> this.writeBufferPeriodicFlushTimerTickMs = WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS_DEFAULT;</span>
+<span class="source-line-no">159</span><span id="line-159"> this.metaOperationTimeout = HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT;</span>
+<span class="source-line-no">160</span><span id="line-160"> this.operationTimeout = HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT;</span>
+<span class="source-line-no">161</span><span id="line-161"> this.scannerCaching = HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING;</span>
+<span class="source-line-no">162</span><span id="line-162"> this.scannerMaxResultSize = HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE;</span>
+<span class="source-line-no">163</span><span id="line-163"> this.primaryCallTimeoutMicroSecond = 10000;</span>
+<span class="source-line-no">164</span><span id="line-164"> this.replicaCallTimeoutMicroSecondScan = 1000000;</span>
+<span class="source-line-no">165</span><span id="line-165"> this.metaReplicaCallTimeoutMicroSecondScan =</span>
+<span class="source-line-no">166</span><span id="line-166"> HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT_DEFAULT;</span>
+<span class="source-line-no">167</span><span id="line-167"> this.retries = HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER;</span>
+<span class="source-line-no">168</span><span id="line-168"> this.clientScannerAsyncPrefetch = Scan.DEFAULT_HBASE_CLIENT_SCANNER_ASYNC_PREFETCH;</span>
+<span class="source-line-no">169</span><span id="line-169"> this.maxKeyValueSize = MAX_KEYVALUE_SIZE_DEFAULT;</span>
+<span class="source-line-no">170</span><span id="line-170"> this.bufferedMutatorMaxMutations = BUFFERED_MUTATOR_MAX_MUTATIONS_DEFAULT;</span>
+<span class="source-line-no">171</span><span id="line-171"> this.readRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
+<span class="source-line-no">172</span><span id="line-172"> this.metaReadRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
+<span class="source-line-no">173</span><span id="line-173"> this.writeRpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
+<span class="source-line-no">174</span><span id="line-174"> this.rpcTimeout = HConstants.DEFAULT_HBASE_RPC_TIMEOUT;</span>
+<span class="source-line-no">175</span><span id="line-175"> }</span>
+<span class="source-line-no">176</span><span id="line-176"></span>
+<span class="source-line-no">177</span><span id="line-177"> public int getReadRpcTimeout() {</span>
+<span class="source-line-no">178</span><span id="line-178"> return readRpcTimeout;</span>
+<span class="source-line-no">179</span><span id="line-179"> }</span>
+<span class="source-line-no">180</span><span id="line-180"></span>
+<span class="source-line-no">181</span><span id="line-181"> public int getMetaReadRpcTimeout() {</span>
+<span class="source-line-no">182</span><span id="line-182"> return metaReadRpcTimeout;</span>
+<span class="source-line-no">183</span><span id="line-183"> }</span>
+<span class="source-line-no">184</span><span id="line-184"></span>
+<span class="source-line-no">185</span><span id="line-185"> public int getWriteRpcTimeout() {</span>
+<span class="source-line-no">186</span><span id="line-186"> return writeRpcTimeout;</span>
+<span class="source-line-no">187</span><span id="line-187"> }</span>
+<span class="source-line-no">188</span><span id="line-188"></span>
+<span class="source-line-no">189</span><span id="line-189"> public long getWriteBufferSize() {</span>
+<span class="source-line-no">190</span><span id="line-190"> return writeBufferSize;</span>
+<span class="source-line-no">191</span><span id="line-191"> }</span>
+<span class="source-line-no">192</span><span id="line-192"></span>
+<span class="source-line-no">193</span><span id="line-193"> public long getWriteBufferPeriodicFlushTimeoutMs() {</span>
+<span class="source-line-no">194</span><span id="line-194"> return writeBufferPeriodicFlushTimeoutMs;</span>
+<span class="source-line-no">195</span><span id="line-195"> }</span>
+<span class="source-line-no">196</span><span id="line-196"></span>
+<span class="source-line-no">197</span><span id="line-197"> public long getWriteBufferPeriodicFlushTimerTickMs() {</span>
+<span class="source-line-no">198</span><span id="line-198"> return writeBufferPeriodicFlushTimerTickMs;</span>
+<span class="source-line-no">199</span><span id="line-199"> }</span>
+<span class="source-line-no">200</span><span id="line-200"></span>
+<span class="source-line-no">201</span><span id="line-201"> public int getMetaOperationTimeout() {</span>
+<span class="source-line-no">202</span><span id="line-202"> return metaOperationTimeout;</span>
+<span class="source-line-no">203</span><span id="line-203"> }</span>
+<span class="source-line-no">204</span><span id="line-204"></span>
+<span class="source-line-no">205</span><span id="line-205"> public int getOperationTimeout() {</span>
+<span class="source-line-no">206</span><span id="line-206"> return operationTimeout;</span>
+<span class="source-line-no">207</span><span id="line-207"> }</span>
+<span class="source-line-no">208</span><span id="line-208"></span>
+<span class="source-line-no">209</span><span id="line-209"> public int getScannerCaching() {</span>
+<span class="source-line-no">210</span><span id="line-210"> return scannerCaching;</span>
+<span class="source-line-no">211</span><span id="line-211"> }</span>
+<span class="source-line-no">212</span><span id="line-212"></span>
+<span class="source-line-no">213</span><span id="line-213"> public int getPrimaryCallTimeoutMicroSecond() {</span>
+<span class="source-line-no">214</span><span id="line-214"> return primaryCallTimeoutMicroSecond;</span>
+<span class="source-line-no">215</span><span id="line-215"> }</span>
+<span class="source-line-no">216</span><span id="line-216"></span>
+<span class="source-line-no">217</span><span id="line-217"> public int getReplicaCallTimeoutMicroSecondScan() {</span>
+<span class="source-line-no">218</span><span id="line-218"> return replicaCallTimeoutMicroSecondScan;</span>
+<span class="source-line-no">219</span><span id="line-219"> }</span>
+<span class="source-line-no">220</span><span id="line-220"></span>
+<span class="source-line-no">221</span><span id="line-221"> public int getMetaReplicaCallTimeoutMicroSecondScan() {</span>
+<span class="source-line-no">222</span><span id="line-222"> return metaReplicaCallTimeoutMicroSecondScan;</span>
+<span class="source-line-no">223</span><span id="line-223"> }</span>
+<span class="source-line-no">224</span><span id="line-224"></span>
+<span class="source-line-no">225</span><span id="line-225"> public int getRetriesNumber() {</span>
+<span class="source-line-no">226</span><span id="line-226"> return retries;</span>
+<span class="source-line-no">227</span><span id="line-227"> }</span>
+<span class="source-line-no">228</span><span id="line-228"></span>
+<span class="source-line-no">229</span><span id="line-229"> public int getMaxKeyValueSize() {</span>
+<span class="source-line-no">230</span><span id="line-230"> return maxKeyValueSize;</span>
+<span class="source-line-no">231</span><span id="line-231"> }</span>
+<span class="source-line-no">232</span><span id="line-232"></span>
+<span class="source-line-no">233</span><span id="line-233"> public int getBufferedMutatorMaxMutations() {</span>
+<span class="source-line-no">234</span><span id="line-234"> return bufferedMutatorMaxMutations;</span>
+<span class="source-line-no">235</span><span id="line-235"> }</span>
+<span class="source-line-no">236</span><span id="line-236"></span>
+<span class="source-line-no">237</span><span id="line-237"> public long getScannerMaxResultSize() {</span>
+<span class="source-line-no">238</span><span id="line-238"> return scannerMaxResultSize;</span>
+<span class="source-line-no">239</span><span id="line-239"> }</span>
+<span class="source-line-no">240</span><span id="line-240"></span>
+<span class="source-line-no">241</span><span id="line-241"> public boolean isClientScannerAsyncPrefetch() {</span>
+<span class="source-line-no">242</span><span id="line-242"> return clientScannerAsyncPrefetch;</span>
+<span class="source-line-no">243</span><span id="line-243"> }</span>
+<span class="source-line-no">244</span><span id="line-244"></span>
+<span class="source-line-no">245</span><span id="line-245"> public int getRpcTimeout() {</span>
+<span class="source-line-no">246</span><span id="line-246"> return rpcTimeout;</span>
+<span class="source-line-no">247</span><span id="line-247"> }</span>
+<span class="source-line-no">248</span><span id="line-248">}</span>
diff --git a/hbase-website/dependency-convergence.html b/hbase-website/dependency-convergence.html
index b70897f696e..3df7046291d 100644
--- a/hbase-website/dependency-convergence.html
+++ b/hbase-website/dependency-convergence.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-convergence at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-convergence at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/dependency-info.html b/hbase-website/dependency-info.html
index 67dc56666c7..cdadd4fdeea 100644
--- a/hbase-website/dependency-info.html
+++ b/hbase-website/dependency-info.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-info at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-info at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/dependency-management.html b/hbase-website/dependency-management.html
index 6c12b690b30..03d0298c945 100644
--- a/hbase-website/dependency-management.html
+++ b/hbase-website/dependency-management.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-management at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-management at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/index.html b/hbase-website/index.html
index 861fb72bfbd..b6d8bcae215 100644
--- a/hbase-website/index.html
+++ b/hbase-website/index.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:index at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:index at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/issue-management.html b/hbase-website/issue-management.html
index 9b869613c20..1bf2faf2368 100644
--- a/hbase-website/issue-management.html
+++ b/hbase-website/issue-management.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:issue-management at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:issue-management at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/licenses.html b/hbase-website/licenses.html
index ab61d65dcc6..1973525d381 100644
--- a/hbase-website/licenses.html
+++ b/hbase-website/licenses.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:licenses at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:licenses at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/mailing-lists.html b/hbase-website/mailing-lists.html
index 0975bb3b127..31671d431cb 100644
--- a/hbase-website/mailing-lists.html
+++ b/hbase-website/mailing-lists.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:mailing-lists at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:mailing-lists at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/plugin-management.html b/hbase-website/plugin-management.html
index 606e2364d5c..9f0c20f1585 100644
--- a/hbase-website/plugin-management.html
+++ b/hbase-website/plugin-management.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugin-management at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugin-management at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/plugins.html b/hbase-website/plugins.html
index 3cead18bab7..d808266a75f 100644
--- a/hbase-website/plugins.html
+++ b/hbase-website/plugins.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugins at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugins at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/project-info.html b/hbase-website/project-info.html
index ae6071295fa..9adba1ff162 100644
--- a/hbase-website/project-info.html
+++ b/hbase-website/project-info.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-site-plugin:3.21.0:project-info at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-site-plugin:3.21.0:project-info at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/scm.html b/hbase-website/scm.html
index f089c7a3b3e..82d31f9a4c8 100644
--- a/hbase-website/scm.html
+++ b/hbase-website/scm.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:scm at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:scm at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/summary.html b/hbase-website/summary.html
index 7408f3835e0..eba74fdf57f 100644
--- a/hbase-website/summary.html
+++ b/hbase-website/summary.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:summary at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:summary at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/hbase-website/team.html b/hbase-website/team.html
index ff0562d7862..d243b950486 100644
--- a/hbase-website/team.html
+++ b/hbase-website/team.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:team at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:team at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/issue-management.html b/issue-management.html
index 7849837b1c5..adb2cac5deb 100644
--- a/issue-management.html
+++ b/issue-management.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:issue-management at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:issue-management at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/licenses.html b/licenses.html
index 071d8e59bf1..2e8dd06cde8 100644
--- a/licenses.html
+++ b/licenses.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:licenses at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:licenses at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/mailing-lists.html b/mailing-lists.html
index 8e1a2453b3e..5c074fb367f 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:mailing-lists at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:mailing-lists at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/plugin-management.html b/plugin-management.html
index be488a3b9e5..60341c10b20 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugin-management at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugin-management at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/plugins.html b/plugins.html
index ae1b6ae5709..9e2019e2f5f 100644
--- a/plugins.html
+++ b/plugins.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugins at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugins at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/project-info.html b/project-info.html
index e41e9e1856b..abe11cb07df 100644
--- a/project-info.html
+++ b/project-info.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-site-plugin:3.21.0:project-info at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-site-plugin:3.21.0:project-info at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/project-reports.html b/project-reports.html
index 5c118849f53..1d317b712bb 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-site-plugin:3.21.0:project-reports at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-site-plugin:3.21.0:project-reports at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/scm.html b/scm.html
index fa3c66c2466..eaff9ad0910 100644
--- a/scm.html
+++ b/scm.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:scm at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:scm at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/summary.html b/summary.html
index 736bc84e0e3..17d0d9f73e2 100644
--- a/summary.html
+++ b/summary.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:summary at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:summary at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/team.html b/team.html
index ed1c7cd67db..730b10f9710 100644
--- a/team.html
+++ b/team.html
@@ -2,7 +2,7 @@
<!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:team at 2026-08-25
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:team at 2026-08-26
| Rendered using Apache Maven Fluido Skin 2.0.0-M9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/testapidocs/index-all.html b/testapidocs/index-all.html
index 910b02b593e..eabf00d4456 100644
--- a/testapidocs/index-all.html
+++ b/testapidocs/index-all.html
@@ -34901,6 +34901,8 @@ loadScripts(document, 'script');</script>
<dd> </dd>
<dt><a href="../apidocs/org/apache/hadoop/hbase/util/TestReservoirSample.html#testNegativeSamplingNumber()" class="member-name-link external-link" title="class or interface in org.apache.hadoop.hbase.util">testNegativeSamplingNumber()</a> - Method in class org.apache.hadoop.hbase.util.<a href="../apidocs/org/apache/hadoop/hbase/util/TestReservoirSample.html" title="class or interface in org.apache.hadoop.hbase.util" class="external-link">TestReservoirSample</a></dt>
<dd> </dd>
+<dt><a href="../apidocs/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html#testNegativeTimeoutsThrow()" class="member-name-link external-link" title="class or interface in org.apache.hadoop.hbase.client">testNegativeTimeoutsThrow()</a> - Method in class org.apache.hadoop.hbase.client.<a href="../apidocs/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html" title="class or interface in org.apache.hadoop.hbase.client" class="external-link">TestConnectionConfiguratio [...]
+<dd> </dd>
<dt><a href="../apidocs/org/apache/hadoop/hbase/client/TestClientDataStructureMisc.html#testNegativeTimestamp()" class="member-name-link external-link" title="class or interface in org.apache.hadoop.hbase.client">testNegativeTimestamp()</a> - Method in class org.apache.hadoop.hbase.client.<a href="../apidocs/org/apache/hadoop/hbase/client/TestClientDataStructureMisc.html" title="class or interface in org.apache.hadoop.hbase.client" class="external-link">TestClientDataStructureMisc</a></dt>
<dd> </dd>
<dt><a href="../apidocs/org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoders.html#testNegativeTimestamps()" class="member-name-link external-link" title="class or interface in org.apache.hadoop.hbase.io.encoding">testNegativeTimestamps()</a> - Method in class org.apache.hadoop.hbase.io.encoding.<a href="../apidocs/org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoders.html" title="class or interface in org.apache.hadoop.hbase.io.encoding" class="external-link">TestDataBlockEncode [...]
@@ -44383,6 +44385,8 @@ loadScripts(document, 'script');</script>
<dd> </dd>
<dt><a href="../apidocs/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileListFile.html#testZeroFileLength()" class="member-name-link external-link" title="class or interface in org.apache.hadoop.hbase.regionserver.storefiletracker">testZeroFileLength()</a> - Method in class org.apache.hadoop.hbase.regionserver.storefiletracker.<a href="../apidocs/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileListFile.html" title="class or interface in org.apache.had [...]
<dd> </dd>
+<dt><a href="../apidocs/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html#testZeroTimeoutsAreAllowed()" class="member-name-link external-link" title="class or interface in org.apache.hadoop.hbase.client">testZeroTimeoutsAreAllowed()</a> - Method in class org.apache.hadoop.hbase.client.<a href="../apidocs/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html" title="class or interface in org.apache.hadoop.hbase.client" class="external-link">TestConnectionConfigurat [...]
+<dd> </dd>
<dt><a href="../apidocs/org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testZipfian()" class="member-name-link external-link" title="class or interface in org.apache.hadoop.hbase">testZipfian()</a> - Method in class org.apache.hadoop.hbase.<a href="../apidocs/org/apache/hadoop/hbase/TestPerformanceEvaluation.html" title="class or interface in org.apache.hadoop.hbase" class="external-link">TestPerformanceEvaluation</a></dt>
<dd> </dd>
<dt><a href="../apidocs/org/apache/hadoop/hbase/zookeeper/TestZKConfig.html" class="type-name-link external-link" title="class or interface in org.apache.hadoop.hbase.zookeeper">TestZKConfig</a> - Class in <a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></dt>
diff --git a/testapidocs/member-search-index.js b/testapidocs/member-search-index.js
index 510c6edf294..38a7528d39a 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/src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html b/testapidocs/src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html
index 4c9a077933a..f3d06978086 100644
--- a/testapidocs/src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html
+++ b/testapidocs/src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html
@@ -31,33 +31,82 @@
<span class="source-line-no">018</span><span id="line-18">package org.apache.hadoop.hbase.client;</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.junit.jupiter.api.Assertions.assertEquals;</span>
-<span class="source-line-no">021</span><span id="line-21"></span>
-<span class="source-line-no">022</span><span id="line-22">import org.apache.hadoop.conf.Configuration;</span>
-<span class="source-line-no">023</span><span id="line-23">import org.apache.hadoop.hbase.HBaseConfiguration;</span>
-<span class="source-line-no">024</span><span id="line-24">import org.apache.hadoop.hbase.HConstants;</span>
-<span class="source-line-no">025</span><span id="line-25">import org.apache.hadoop.hbase.testclassification.ClientTests;</span>
-<span class="source-line-no">026</span><span id="line-26">import org.apache.hadoop.hbase.testclassification.SmallTests;</span>
-<span class="source-line-no">027</span><span id="line-27">import org.junit.jupiter.api.Tag;</span>
-<span class="source-line-no">028</span><span id="line-28">import org.junit.jupiter.api.Test;</span>
-<span class="source-line-no">029</span><span id="line-29"></span>
-<span class="source-line-no">030</span><span id="line-30">/**</span>
-<span class="source-line-no">031</span><span id="line-31"> * See HBASE-28608. Configuration tests for (non async) connections</span>
-<span class="source-line-no">032</span><span id="line-32"> */</span>
-<span class="source-line-no">033</span><span id="line-33">@Tag(ClientTests.TAG)</span>
-<span class="source-line-no">034</span><span id="line-34">@Tag(SmallTests.TAG)</span>
-<span class="source-line-no">035</span><span id="line-35">public class TestConnectionConfiguration {</span>
-<span class="source-line-no">036</span><span id="line-36"></span>
-<span class="source-line-no">037</span><span id="line-37"> @Test</span>
-<span class="source-line-no">038</span><span id="line-38"> public void testDefaultMetaOperationTimeout() {</span>
-<span class="source-line-no">039</span><span id="line-39"> Configuration conf = HBaseConfiguration.create();</span>
-<span class="source-line-no">040</span><span id="line-40"> long clientOperationTimeoutMs = 1000;</span>
-<span class="source-line-no">041</span><span id="line-41"> conf.setLong(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, clientOperationTimeoutMs);</span>
-<span class="source-line-no">042</span><span id="line-42"> ConnectionConfiguration config = new ConnectionConfiguration(conf);</span>
-<span class="source-line-no">043</span><span id="line-43"> assertEquals(clientOperationTimeoutMs, config.getOperationTimeout());</span>
-<span class="source-line-no">044</span><span id="line-44"> assertEquals(clientOperationTimeoutMs, config.getMetaOperationTimeout());</span>
-<span class="source-line-no">045</span><span id="line-45"> }</span>
-<span class="source-line-no">046</span><span id="line-46"></span>
-<span class="source-line-no">047</span><span id="line-47">}</span>
+<span class="source-line-no">021</span><span id="line-21">import static org.junit.jupiter.api.Assertions.assertThrows;</span>
+<span class="source-line-no">022</span><span id="line-22">import static org.junit.jupiter.api.Assertions.assertTrue;</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.util.Arrays;</span>
+<span class="source-line-no">025</span><span id="line-25">import java.util.List;</span>
+<span class="source-line-no">026</span><span id="line-26">import org.apache.hadoop.conf.Configuration;</span>
+<span class="source-line-no">027</span><span id="line-27">import org.apache.hadoop.hbase.HBaseConfiguration;</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.testclassification.ClientTests;</span>
+<span class="source-line-no">030</span><span id="line-30">import org.apache.hadoop.hbase.testclassification.SmallTests;</span>
+<span class="source-line-no">031</span><span id="line-31">import org.junit.jupiter.api.Tag;</span>
+<span class="source-line-no">032</span><span id="line-32">import org.junit.jupiter.api.Test;</span>
+<span class="source-line-no">033</span><span id="line-33"></span>
+<span class="source-line-no">034</span><span id="line-34">/**</span>
+<span class="source-line-no">035</span><span id="line-35"> * See HBASE-28608. Configuration tests for (non async) connections</span>
+<span class="source-line-no">036</span><span id="line-36"> */</span>
+<span class="source-line-no">037</span><span id="line-37">@Tag(ClientTests.TAG)</span>
+<span class="source-line-no">038</span><span id="line-38">@Tag(SmallTests.TAG)</span>
+<span class="source-line-no">039</span><span id="line-39">public class TestConnectionConfiguration {</span>
+<span class="source-line-no">040</span><span id="line-40"></span>
+<span class="source-line-no">041</span><span id="line-41"> @Test</span>
+<span class="source-line-no">042</span><span id="line-42"> public void testDefaultMetaOperationTimeout() {</span>
+<span class="source-line-no">043</span><span id="line-43"> Configuration conf = HBaseConfiguration.create();</span>
+<span class="source-line-no">044</span><span id="line-44"> long clientOperationTimeoutMs = 1000;</span>
+<span class="source-line-no">045</span><span id="line-45"> conf.setLong(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, clientOperationTimeoutMs);</span>
+<span class="source-line-no">046</span><span id="line-46"> ConnectionConfiguration config = new ConnectionConfiguration(conf);</span>
+<span class="source-line-no">047</span><span id="line-47"> assertEquals(clientOperationTimeoutMs, config.getOperationTimeout());</span>
+<span class="source-line-no">048</span><span id="line-48"> assertEquals(clientOperationTimeoutMs, config.getMetaOperationTimeout());</span>
+<span class="source-line-no">049</span><span id="line-49"> }</span>
+<span class="source-line-no">050</span><span id="line-50"></span>
+<span class="source-line-no">051</span><span id="line-51"> @Test</span>
+<span class="source-line-no">052</span><span id="line-52"> public void testNegativeTimeoutsThrow() {</span>
+<span class="source-line-no">053</span><span id="line-53"> List<String> timeoutKeys = Arrays.asList(HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT,</span>
+<span class="source-line-no">054</span><span id="line-54"> HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,</span>
+<span class="source-line-no">055</span><span id="line-55"> ConnectionConfiguration.PRIMARY_CALL_TIMEOUT_MICROSECOND,</span>
+<span class="source-line-no">056</span><span id="line-56"> ConnectionConfiguration.PRIMARY_SCAN_TIMEOUT_MICROSECOND,</span>
+<span class="source-line-no">057</span><span id="line-57"> HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT, HConstants.HBASE_RPC_TIMEOUT_KEY,</span>
+<span class="source-line-no">058</span><span id="line-58"> HConstants.HBASE_RPC_READ_TIMEOUT_KEY,</span>
+<span class="source-line-no">059</span><span id="line-59"> ConnectionConfiguration.HBASE_CLIENT_META_READ_RPC_TIMEOUT_KEY,</span>
+<span class="source-line-no">060</span><span id="line-60"> HConstants.HBASE_RPC_WRITE_TIMEOUT_KEY);</span>
+<span class="source-line-no">061</span><span id="line-61"></span>
+<span class="source-line-no">062</span><span id="line-62"> for (String key : timeoutKeys) {</span>
+<span class="source-line-no">063</span><span id="line-63"> Configuration conf = HBaseConfiguration.create();</span>
+<span class="source-line-no">064</span><span id="line-64"> conf.setInt(key, -1);</span>
+<span class="source-line-no">065</span><span id="line-65"> IllegalArgumentException error =</span>
+<span class="source-line-no">066</span><span id="line-66"> assertThrows(IllegalArgumentException.class, () -> new ConnectionConfiguration(conf), key);</span>
+<span class="source-line-no">067</span><span id="line-67"> assertTrue(error.getMessage().contains(key), key);</span>
+<span class="source-line-no">068</span><span id="line-68"> }</span>
+<span class="source-line-no">069</span><span id="line-69"> }</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</span>
+<span class="source-line-no">072</span><span id="line-72"> public void testZeroTimeoutsAreAllowed() {</span>
+<span class="source-line-no">073</span><span id="line-73"> Configuration conf = HBaseConfiguration.create();</span>
+<span class="source-line-no">074</span><span id="line-74"> conf.setInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, 0);</span>
+<span class="source-line-no">075</span><span id="line-75"> conf.setInt(HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT, 0);</span>
+<span class="source-line-no">076</span><span id="line-76"> conf.setInt(ConnectionConfiguration.PRIMARY_CALL_TIMEOUT_MICROSECOND, 0);</span>
+<span class="source-line-no">077</span><span id="line-77"> conf.setInt(ConnectionConfiguration.PRIMARY_SCAN_TIMEOUT_MICROSECOND, 0);</span>
+<span class="source-line-no">078</span><span id="line-78"> conf.setInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT, 0);</span>
+<span class="source-line-no">079</span><span id="line-79"> conf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY, 0);</span>
+<span class="source-line-no">080</span><span id="line-80"> conf.setInt(HConstants.HBASE_RPC_READ_TIMEOUT_KEY, 0);</span>
+<span class="source-line-no">081</span><span id="line-81"> conf.setInt(ConnectionConfiguration.HBASE_CLIENT_META_READ_RPC_TIMEOUT_KEY, 0);</span>
+<span class="source-line-no">082</span><span id="line-82"> conf.setInt(HConstants.HBASE_RPC_WRITE_TIMEOUT_KEY, 0);</span>
+<span class="source-line-no">083</span><span id="line-83"></span>
+<span class="source-line-no">084</span><span id="line-84"> ConnectionConfiguration config = new ConnectionConfiguration(conf);</span>
+<span class="source-line-no">085</span><span id="line-85"> assertEquals(0, config.getOperationTimeout());</span>
+<span class="source-line-no">086</span><span id="line-86"> assertEquals(0, config.getMetaOperationTimeout());</span>
+<span class="source-line-no">087</span><span id="line-87"> assertEquals(0, config.getPrimaryCallTimeoutMicroSecond());</span>
+<span class="source-line-no">088</span><span id="line-88"> assertEquals(0, config.getReplicaCallTimeoutMicroSecondScan());</span>
+<span class="source-line-no">089</span><span id="line-89"> assertEquals(0, config.getMetaReplicaCallTimeoutMicroSecondScan());</span>
+<span class="source-line-no">090</span><span id="line-90"> assertEquals(0, config.getRpcTimeout());</span>
+<span class="source-line-no">091</span><span id="line-91"> assertEquals(0, config.getReadRpcTimeout());</span>
+<span class="source-line-no">092</span><span id="line-92"> assertEquals(0, config.getMetaReadRpcTimeout());</span>
+<span class="source-line-no">093</span><span id="line-93"> assertEquals(0, config.getWriteRpcTimeout());</span>
+<span class="source-line-no">094</span><span id="line-94"> }</span>
+<span class="source-line-no">095</span><span id="line-95"></span>
+<span class="source-line-no">096</span><span id="line-96">}</span>
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 6d14214b810..382cca0db71 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -75001,6 +75001,8 @@ loadScripts(document, 'script');</script>
<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/util/TestReservoirSample.html#testNegativeSamplingNumber()" class="member-name-link">testNegativeSamplingNumber()</a> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestReservoirSample.html" title="class in org.apache.hadoop.hbase.util">TestReservoirSample</a></dt>
<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/client/TestConnectionConfiguration.html#testNegativeTimeoutsThrow()" class="member-name-link">testNegativeTimeoutsThrow()</a> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestConnectionConfiguration.html" title="class in org.apache.hadoop.hbase.client">TestConnectionConfiguration</a></dt>
+<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/client/TestClientDataStructureMisc.html#testNegativeTimestamp()" class="member-name-link">testNegativeTimestamp()</a> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientDataStructureMisc.html" title="class in org.apache.hadoop.hbase.client">TestClientDataStructureMisc</a></dt>
<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoders.html#testNegativeTimestamps()" class="member-name-link">testNegativeTimestamps()</a> - Method in class org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoders.html" title="class in org.apache.hadoop.hbase.io.encoding">TestDataBlockEncoders</a></dt>
@@ -88999,6 +89001,8 @@ loadScripts(document, 'script');</script>
<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileListFile.html#testZeroFileLength()" class="member-name-link">testZeroFileLength()</a> - Method in class org.apache.hadoop.hbase.regionserver.storefiletracker.<a href="org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileListFile.html" title="class in org.apache.hadoop.hbase.regionserver.storefiletracker">TestStoreFileListFile</a></dt>
<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/client/TestConnectionConfiguration.html#testZeroTimeoutsAreAllowed()" class="member-name-link">testZeroTimeoutsAreAllowed()</a> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestConnectionConfiguration.html" title="class in org.apache.hadoop.hbase.client">TestConnectionConfiguration</a></dt>
+<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/TestPerformanceEvaluation.html#testZipfian()" class="member-name-link">testZipfian()</a> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestPerformanceEvaluation.html" title="class in org.apache.hadoop.hbase">TestPerformanceEvaluation</a></dt>
<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/zookeeper/TestZKConfig.html" class="type-name-link" title="class in org.apache.hadoop.hbase.zookeeper">TestZKConfig</a> - Class in <a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></dt>
diff --git a/testdevapidocs/member-search-index.js b/testdevapidocs/member-search-index.js
index bbfa1a22916..46da981229b 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/client/TestConnectionConfiguration.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html
index c8497f60b5e..fc5e3757e25 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html
@@ -78,7 +78,7 @@ loadScripts(document, 'script');</script>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="annotations">@Tag("org.apache.hadoop.hbase.testclassification.ClientTests") @Tag("org.apache.hadoop.hbase.testclassification.SmallTests")
-</span><span class="modifiers">public class </span><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html#line-33">TestConnectionConfiguration</a></span>
+</span><span class="modifiers">public class </span><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html#line-37">TestConnectionConfiguration</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>
<div class="block">See HBASE-28608. Configuration tests for (non async) connections</div>
</section>
@@ -111,6 +111,12 @@ loadScripts(document, 'script');</script>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#testDefaultMetaOperationTimeout()" class="member-name-link">testDefaultMetaOperationTimeout</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
+<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#testNegativeTimeoutsThrow()" class="member-name-link">testNegativeTimeoutsThrow</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
+<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#testZeroTimeoutsAreAllowed()" class="member-name-link">testZeroTimeoutsAreAllowed</a>()</code></div>
+<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div>
</div>
</div>
</div>
@@ -131,7 +137,7 @@ loadScripts(document, 'script');</script>
<li>
<section class="detail" id="<init>()">
<h3>TestConnectionConfiguration</h3>
-<div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html#line-35">TestConnectionConfiguration</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html#line-39">TestConnectionConfiguration</a></span>()</div>
</section>
</li>
</ul>
@@ -146,7 +152,21 @@ loadScripts(document, 'script');</script>
<section class="detail" id="testDefaultMetaOperationTimeout()">
<h3>testDefaultMetaOperationTimeout</h3>
<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/client/TestConnectionConfiguration.html#line-37">testDefaultMetaOperationTimeout</a></span>()</div>
+</span><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html#line-41">testDefaultMetaOperationTimeout</a></span>()</div>
+</section>
+</li>
+<li>
+<section class="detail" id="testNegativeTimeoutsThrow()">
+<h3>testNegativeTimeoutsThrow</h3>
+<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/client/TestConnectionConfiguration.html#line-51">testNegativeTimeoutsThrow</a></span>()</div>
+</section>
+</li>
+<li>
+<section class="detail" id="testZeroTimeoutsAreAllowed()">
+<h3>testZeroTimeoutsAreAllowed</h3>
+<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/client/TestConnectionConfiguration.html#line-71">testZeroTimeoutsAreAllowed</a></span>()</div>
</section>
</li>
</ul>
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html
index 4c9a077933a..f3d06978086 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestConnectionConfiguration.html
@@ -31,33 +31,82 @@
<span class="source-line-no">018</span><span id="line-18">package org.apache.hadoop.hbase.client;</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.junit.jupiter.api.Assertions.assertEquals;</span>
-<span class="source-line-no">021</span><span id="line-21"></span>
-<span class="source-line-no">022</span><span id="line-22">import org.apache.hadoop.conf.Configuration;</span>
-<span class="source-line-no">023</span><span id="line-23">import org.apache.hadoop.hbase.HBaseConfiguration;</span>
-<span class="source-line-no">024</span><span id="line-24">import org.apache.hadoop.hbase.HConstants;</span>
-<span class="source-line-no">025</span><span id="line-25">import org.apache.hadoop.hbase.testclassification.ClientTests;</span>
-<span class="source-line-no">026</span><span id="line-26">import org.apache.hadoop.hbase.testclassification.SmallTests;</span>
-<span class="source-line-no">027</span><span id="line-27">import org.junit.jupiter.api.Tag;</span>
-<span class="source-line-no">028</span><span id="line-28">import org.junit.jupiter.api.Test;</span>
-<span class="source-line-no">029</span><span id="line-29"></span>
-<span class="source-line-no">030</span><span id="line-30">/**</span>
-<span class="source-line-no">031</span><span id="line-31"> * See HBASE-28608. Configuration tests for (non async) connections</span>
-<span class="source-line-no">032</span><span id="line-32"> */</span>
-<span class="source-line-no">033</span><span id="line-33">@Tag(ClientTests.TAG)</span>
-<span class="source-line-no">034</span><span id="line-34">@Tag(SmallTests.TAG)</span>
-<span class="source-line-no">035</span><span id="line-35">public class TestConnectionConfiguration {</span>
-<span class="source-line-no">036</span><span id="line-36"></span>
-<span class="source-line-no">037</span><span id="line-37"> @Test</span>
-<span class="source-line-no">038</span><span id="line-38"> public void testDefaultMetaOperationTimeout() {</span>
-<span class="source-line-no">039</span><span id="line-39"> Configuration conf = HBaseConfiguration.create();</span>
-<span class="source-line-no">040</span><span id="line-40"> long clientOperationTimeoutMs = 1000;</span>
-<span class="source-line-no">041</span><span id="line-41"> conf.setLong(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, clientOperationTimeoutMs);</span>
-<span class="source-line-no">042</span><span id="line-42"> ConnectionConfiguration config = new ConnectionConfiguration(conf);</span>
-<span class="source-line-no">043</span><span id="line-43"> assertEquals(clientOperationTimeoutMs, config.getOperationTimeout());</span>
-<span class="source-line-no">044</span><span id="line-44"> assertEquals(clientOperationTimeoutMs, config.getMetaOperationTimeout());</span>
-<span class="source-line-no">045</span><span id="line-45"> }</span>
-<span class="source-line-no">046</span><span id="line-46"></span>
-<span class="source-line-no">047</span><span id="line-47">}</span>
+<span class="source-line-no">021</span><span id="line-21">import static org.junit.jupiter.api.Assertions.assertThrows;</span>
+<span class="source-line-no">022</span><span id="line-22">import static org.junit.jupiter.api.Assertions.assertTrue;</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.util.Arrays;</span>
+<span class="source-line-no">025</span><span id="line-25">import java.util.List;</span>
+<span class="source-line-no">026</span><span id="line-26">import org.apache.hadoop.conf.Configuration;</span>
+<span class="source-line-no">027</span><span id="line-27">import org.apache.hadoop.hbase.HBaseConfiguration;</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.testclassification.ClientTests;</span>
+<span class="source-line-no">030</span><span id="line-30">import org.apache.hadoop.hbase.testclassification.SmallTests;</span>
+<span class="source-line-no">031</span><span id="line-31">import org.junit.jupiter.api.Tag;</span>
+<span class="source-line-no">032</span><span id="line-32">import org.junit.jupiter.api.Test;</span>
+<span class="source-line-no">033</span><span id="line-33"></span>
+<span class="source-line-no">034</span><span id="line-34">/**</span>
+<span class="source-line-no">035</span><span id="line-35"> * See HBASE-28608. Configuration tests for (non async) connections</span>
+<span class="source-line-no">036</span><span id="line-36"> */</span>
+<span class="source-line-no">037</span><span id="line-37">@Tag(ClientTests.TAG)</span>
+<span class="source-line-no">038</span><span id="line-38">@Tag(SmallTests.TAG)</span>
+<span class="source-line-no">039</span><span id="line-39">public class TestConnectionConfiguration {</span>
+<span class="source-line-no">040</span><span id="line-40"></span>
+<span class="source-line-no">041</span><span id="line-41"> @Test</span>
+<span class="source-line-no">042</span><span id="line-42"> public void testDefaultMetaOperationTimeout() {</span>
+<span class="source-line-no">043</span><span id="line-43"> Configuration conf = HBaseConfiguration.create();</span>
+<span class="source-line-no">044</span><span id="line-44"> long clientOperationTimeoutMs = 1000;</span>
+<span class="source-line-no">045</span><span id="line-45"> conf.setLong(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, clientOperationTimeoutMs);</span>
+<span class="source-line-no">046</span><span id="line-46"> ConnectionConfiguration config = new ConnectionConfiguration(conf);</span>
+<span class="source-line-no">047</span><span id="line-47"> assertEquals(clientOperationTimeoutMs, config.getOperationTimeout());</span>
+<span class="source-line-no">048</span><span id="line-48"> assertEquals(clientOperationTimeoutMs, config.getMetaOperationTimeout());</span>
+<span class="source-line-no">049</span><span id="line-49"> }</span>
+<span class="source-line-no">050</span><span id="line-50"></span>
+<span class="source-line-no">051</span><span id="line-51"> @Test</span>
+<span class="source-line-no">052</span><span id="line-52"> public void testNegativeTimeoutsThrow() {</span>
+<span class="source-line-no">053</span><span id="line-53"> List<String> timeoutKeys = Arrays.asList(HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT,</span>
+<span class="source-line-no">054</span><span id="line-54"> HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,</span>
+<span class="source-line-no">055</span><span id="line-55"> ConnectionConfiguration.PRIMARY_CALL_TIMEOUT_MICROSECOND,</span>
+<span class="source-line-no">056</span><span id="line-56"> ConnectionConfiguration.PRIMARY_SCAN_TIMEOUT_MICROSECOND,</span>
+<span class="source-line-no">057</span><span id="line-57"> HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT, HConstants.HBASE_RPC_TIMEOUT_KEY,</span>
+<span class="source-line-no">058</span><span id="line-58"> HConstants.HBASE_RPC_READ_TIMEOUT_KEY,</span>
+<span class="source-line-no">059</span><span id="line-59"> ConnectionConfiguration.HBASE_CLIENT_META_READ_RPC_TIMEOUT_KEY,</span>
+<span class="source-line-no">060</span><span id="line-60"> HConstants.HBASE_RPC_WRITE_TIMEOUT_KEY);</span>
+<span class="source-line-no">061</span><span id="line-61"></span>
+<span class="source-line-no">062</span><span id="line-62"> for (String key : timeoutKeys) {</span>
+<span class="source-line-no">063</span><span id="line-63"> Configuration conf = HBaseConfiguration.create();</span>
+<span class="source-line-no">064</span><span id="line-64"> conf.setInt(key, -1);</span>
+<span class="source-line-no">065</span><span id="line-65"> IllegalArgumentException error =</span>
+<span class="source-line-no">066</span><span id="line-66"> assertThrows(IllegalArgumentException.class, () -> new ConnectionConfiguration(conf), key);</span>
+<span class="source-line-no">067</span><span id="line-67"> assertTrue(error.getMessage().contains(key), key);</span>
+<span class="source-line-no">068</span><span id="line-68"> }</span>
+<span class="source-line-no">069</span><span id="line-69"> }</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</span>
+<span class="source-line-no">072</span><span id="line-72"> public void testZeroTimeoutsAreAllowed() {</span>
+<span class="source-line-no">073</span><span id="line-73"> Configuration conf = HBaseConfiguration.create();</span>
+<span class="source-line-no">074</span><span id="line-74"> conf.setInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, 0);</span>
+<span class="source-line-no">075</span><span id="line-75"> conf.setInt(HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT, 0);</span>
+<span class="source-line-no">076</span><span id="line-76"> conf.setInt(ConnectionConfiguration.PRIMARY_CALL_TIMEOUT_MICROSECOND, 0);</span>
+<span class="source-line-no">077</span><span id="line-77"> conf.setInt(ConnectionConfiguration.PRIMARY_SCAN_TIMEOUT_MICROSECOND, 0);</span>
+<span class="source-line-no">078</span><span id="line-78"> conf.setInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT, 0);</span>
+<span class="source-line-no">079</span><span id="line-79"> conf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY, 0);</span>
+<span class="source-line-no">080</span><span id="line-80"> conf.setInt(HConstants.HBASE_RPC_READ_TIMEOUT_KEY, 0);</span>
+<span class="source-line-no">081</span><span id="line-81"> conf.setInt(ConnectionConfiguration.HBASE_CLIENT_META_READ_RPC_TIMEOUT_KEY, 0);</span>
+<span class="source-line-no">082</span><span id="line-82"> conf.setInt(HConstants.HBASE_RPC_WRITE_TIMEOUT_KEY, 0);</span>
+<span class="source-line-no">083</span><span id="line-83"></span>
+<span class="source-line-no">084</span><span id="line-84"> ConnectionConfiguration config = new ConnectionConfiguration(conf);</span>
+<span class="source-line-no">085</span><span id="line-85"> assertEquals(0, config.getOperationTimeout());</span>
+<span class="source-line-no">086</span><span id="line-86"> assertEquals(0, config.getMetaOperationTimeout());</span>
+<span class="source-line-no">087</span><span id="line-87"> assertEquals(0, config.getPrimaryCallTimeoutMicroSecond());</span>
+<span class="source-line-no">088</span><span id="line-88"> assertEquals(0, config.getReplicaCallTimeoutMicroSecondScan());</span>
+<span class="source-line-no">089</span><span id="line-89"> assertEquals(0, config.getMetaReplicaCallTimeoutMicroSecondScan());</span>
+<span class="source-line-no">090</span><span id="line-90"> assertEquals(0, config.getRpcTimeout());</span>
+<span class="source-line-no">091</span><span id="line-91"> assertEquals(0, config.getReadRpcTimeout());</span>
+<span class="source-line-no">092</span><span id="line-92"> assertEquals(0, config.getMetaReadRpcTimeout());</span>
+<span class="source-line-no">093</span><span id="line-93"> assertEquals(0, config.getWriteRpcTimeout());</span>
+<span class="source-line-no">094</span><span id="line-94"> }</span>
+<span class="source-line-no">095</span><span id="line-95"></span>
+<span class="source-line-no">096</span><span id="line-96">}</span>