You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2019/09/09 14:46:23 UTC

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

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hbase-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 7014ec2  Published site at ac8fe1627a7db7e31f54318a3e94da06b30f0760.
7014ec2 is described below

commit 7014ec2aa1c61a297dce0241d1476407c9703e87
Author: jenkins <bu...@apache.org>
AuthorDate: Mon Sep 9 14:46:06 2019 +0000

    Published site at ac8fe1627a7db7e31f54318a3e94da06b30f0760.
---
 acid-semantics.html                                |    2 +-
 apache_hbase_reference_guide.pdf                   |    4 +-
 book.html                                          |    2 +-
 bulk-loads.html                                    |    2 +-
 checkstyle-aggregate.html                          |  144 +-
 checkstyle.rss                                     |    4 +-
 coc.html                                           |    2 +-
 dependencies.html                                  |    2 +-
 dependency-convergence.html                        |    2 +-
 dependency-info.html                               |    2 +-
 dependency-management.html                         |    2 +-
 devapidocs/allclasses-frame.html                   |    1 +
 devapidocs/allclasses-noframe.html                 |    1 +
 devapidocs/constant-values.html                    |    4 +-
 devapidocs/index-all.html                          |   44 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |    4 +-
 .../apache/hadoop/hbase/client/package-tree.html   |   18 +-
 .../apache/hadoop/hbase/filter/package-tree.html   |    8 +-
 .../hadoop/hbase/hbtop/field/package-tree.html     |    2 +-
 .../hbase/hbtop/mode/RegionServerModeStrategy.html |   16 +-
 .../hadoop/hbase/hbtop/mode/TableModeStrategy.html |   16 +-
 .../hbase/hbtop/screen/field/FieldScreenView.html  |    6 +-
 .../hbase/hbtop/screen/mode/ModeScreenView.html    |    6 +-
 .../screen/top/FilterDisplayModeScreenView.html    |    2 +-
 .../hbase/hbtop/screen/top/TopScreenView.html      |   22 +-
 .../hbtop/terminal/impl/KeyPressGenerator.html     |   20 +-
 .../org/apache/hadoop/hbase/http/package-tree.html |    2 +-
 .../hbase/io/class-use/ByteBuffAllocator.html      |    2 +-
 .../hfile/bucket/BucketCache.BucketEntryGroup.html |   18 +-
 .../io/hfile/bucket/BucketCache.RAMCache.html      |   20 +-
 .../io/hfile/bucket/BucketCache.RAMQueueEntry.html |   24 +-
 .../hfile/bucket/BucketCache.StatisticsThread.html |    8 +-
 .../io/hfile/bucket/BucketCache.WriterThread.html  |   16 +-
 .../hadoop/hbase/io/hfile/bucket/BucketCache.html  |   82 +-
 .../bucket/BucketEntry.BucketEntryHandler.html     |    4 +-
 .../hadoop/hbase/io/hfile/bucket/BucketEntry.html  |   32 +-
 .../hfile/bucket/ExclusiveMemoryMmapIOEngine.html  |    6 +-
 .../io/hfile/bucket/FileIOEngine.FileAccessor.html |   12 +-
 .../bucket/FileIOEngine.FileReadAccessor.html      |   16 +-
 .../bucket/FileIOEngine.FileWriteAccessor.html     |   16 +-
 .../hadoop/hbase/io/hfile/bucket/FileIOEngine.html |   32 +-
 .../class-use/FileIOEngine.FileAccessor.html       |    4 +-
 .../hadoop/hbase/io/hfile/class-use/Cacheable.html |    4 +
 .../apache/hadoop/hbase/io/hfile/package-tree.html |    6 +-
 .../org/apache/hadoop/hbase/ipc/package-tree.html  |    2 +-
 .../hadoop/hbase/mapreduce/package-tree.html       |    2 +-
 .../hbase/master/assignment/package-tree.html      |    2 +-
 .../apache/hadoop/hbase/master/package-tree.html   |    6 +-
 .../hbase/master/procedure/package-tree.html       |    2 +-
 .../ByteBuff.ChannelReader.html}                   |   82 +-
 .../org/apache/hadoop/hbase/nio/ByteBuff.html      |  367 ++--
 .../hadoop/hbase/nio/HBaseReferenceCounted.html    |    4 +-
 .../org/apache/hadoop/hbase/nio/MultiByteBuff.html |  340 +--
 .../apache/hadoop/hbase/nio/SingleByteBuff.html    |  205 +-
 .../nio/class-use/ByteBuff.ChannelReader.html      |  191 ++
 .../hadoop/hbase/nio/class-use/ByteBuff.html       |   36 +-
 .../org/apache/hadoop/hbase/nio/package-frame.html |    1 +
 .../apache/hadoop/hbase/nio/package-summary.html   |    6 +
 .../org/apache/hadoop/hbase/nio/package-tree.html  |    1 +
 .../org/apache/hadoop/hbase/nio/package-use.html   |   11 +-
 .../org/apache/hadoop/hbase/package-tree.html      |   18 +-
 .../hadoop/hbase/procedure2/package-tree.html      |    6 +-
 .../apache/hadoop/hbase/quotas/package-tree.html   |    6 +-
 .../hadoop/hbase/regionserver/package-tree.html    |   18 +-
 .../regionserver/querymatcher/package-tree.html    |    4 +-
 .../hbase/regionserver/wal/package-tree.html       |    4 +-
 .../hadoop/hbase/replication/package-tree.html     |    2 +-
 .../replication/regionserver/package-tree.html     |    2 +-
 .../hadoop/hbase/security/access/package-tree.html |    6 +-
 .../apache/hadoop/hbase/security/package-tree.html |    4 +-
 .../apache/hadoop/hbase/thrift/package-tree.html   |    2 +-
 .../hadoop/hbase/tool/BulkLoadHFilesTool.html      |   38 +-
 .../org/apache/hadoop/hbase/util/package-tree.html |    8 +-
 .../org/apache/hadoop/hbase/wal/package-tree.html  |    2 +-
 devapidocs/overview-tree.html                      |    1 +
 .../src-html/org/apache/hadoop/hbase/Version.html  |    4 +-
 .../org/apache/hadoop/hbase/hbtop/HBTop.html       |    2 +-
 .../hbase/hbtop/mode/RegionServerModeStrategy.html |  185 +-
 .../hadoop/hbase/hbtop/mode/TableModeStrategy.html |  157 +-
 .../hbase/hbtop/screen/field/FieldScreenView.html  |  182 +-
 .../hbase/hbtop/screen/mode/ModeScreenView.html    |   98 +-
 .../screen/top/FilterDisplayModeScreenView.html    |   35 +-
 .../hbase/hbtop/screen/top/TopScreenView.html      |  342 +--
 .../impl/KeyPressGenerator.ParseState.html         |  496 ++---
 .../hbtop/terminal/impl/KeyPressGenerator.html     |  496 ++---
 .../hfile/bucket/BucketCache.BucketEntryGroup.html | 2181 ++++++++++----------
 .../io/hfile/bucket/BucketCache.RAMCache.html      | 2181 ++++++++++----------
 .../io/hfile/bucket/BucketCache.RAMQueueEntry.html | 2181 ++++++++++----------
 .../hfile/bucket/BucketCache.StatisticsThread.html | 2181 ++++++++++----------
 .../io/hfile/bucket/BucketCache.WriterThread.html  | 2181 ++++++++++----------
 .../hadoop/hbase/io/hfile/bucket/BucketCache.html  | 2181 ++++++++++----------
 .../bucket/BucketEntry.BucketEntryHandler.html     |   97 +-
 .../hadoop/hbase/io/hfile/bucket/BucketEntry.html  |   97 +-
 .../hfile/bucket/ExclusiveMemoryMmapIOEngine.html  |   47 +-
 .../io/hfile/bucket/FileIOEngine.FileAccessor.html |  392 ++--
 .../bucket/FileIOEngine.FileReadAccessor.html      |  392 ++--
 .../bucket/FileIOEngine.FileWriteAccessor.html     |  392 ++--
 .../hadoop/hbase/io/hfile/bucket/FileIOEngine.html |  392 ++--
 .../hadoop/hbase/nio/ByteBuff.ChannelReader.html   |  697 +++++++
 .../org/apache/hadoop/hbase/nio/ByteBuff.html      | 1169 ++++++-----
 .../org/apache/hadoop/hbase/nio/MultiByteBuff.html | 2161 +++++++++----------
 .../apache/hadoop/hbase/nio/SingleByteBuff.html    |  767 +++----
 .../tool/BulkLoadHFilesTool.BulkHFileVisitor.html  | 1268 ++++++------
 .../hadoop/hbase/tool/BulkLoadHFilesTool.html      | 1268 ++++++------
 downloads.html                                     |    2 +-
 export_control.html                                |    2 +-
 index.html                                         |    2 +-
 issue-tracking.html                                |    2 +-
 mail-lists.html                                    |    2 +-
 metrics.html                                       |    2 +-
 old_news.html                                      |    2 +-
 plugin-management.html                             |    2 +-
 plugins.html                                       |    2 +-
 poweredbyhbase.html                                |    2 +-
 project-info.html                                  |    2 +-
 project-reports.html                               |    2 +-
 project-summary.html                               |    2 +-
 pseudo-distributed.html                            |    2 +-
 replication.html                                   |    2 +-
 resources.html                                     |    2 +-
 source-repository.html                             |    2 +-
 sponsors.html                                      |    2 +-
 supportingprojects.html                            |    2 +-
 team-list.html                                     |    2 +-
 testdevapidocs/index-all.html                      |   16 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |    2 +-
 .../hfile/TestHFileScannerImplReferenceCount.html  |  141 +-
 ...eBufferIOEngine.BufferGrabbingDeserializer.html |   14 +-
 .../TestByteBufferIOEngine.MockBucketEntry.html    |   59 +-
 .../io/hfile/bucket/TestByteBufferIOEngine.html    |   43 +-
 .../hbase/io/hfile/bucket/TestFileIOEngine.html    |   45 +-
 .../org/apache/hadoop/hbase/package-tree.html      |   10 +-
 .../hadoop/hbase/procedure/package-tree.html       |    8 +-
 .../hadoop/hbase/procedure2/package-tree.html      |    2 +-
 .../regionserver/TestHRegionWithInMemoryFlush.html |    2 +-
 .../hadoop/hbase/regionserver/package-tree.html    |    2 +-
 .../org/apache/hadoop/hbase/test/package-tree.html |    2 +-
 .../tool/TestBulkLoadHFilesSplitRecovery.html      |   28 +-
 .../TestSecureBulkLoadHFilesSplitRecovery.html     |    2 +-
 .../org/apache/hadoop/hbase/wal/package-tree.html  |    2 +-
 .../hfile/TestHFileScannerImplReferenceCount.html  |  850 ++++----
 ...eBufferIOEngine.BufferGrabbingDeserializer.html |  339 +--
 .../TestByteBufferIOEngine.MockBucketEntry.html    |  339 +--
 .../io/hfile/bucket/TestByteBufferIOEngine.html    |  339 +--
 .../hbase/io/hfile/bucket/TestFileIOEngine.html    |  318 +--
 .../regionserver/TestHRegionWithInMemoryFlush.html |   87 +-
 .../tool/TestBulkLoadHFilesSplitRecovery.html      |   87 +-
 147 files changed, 15344 insertions(+), 13676 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index 9c321c6..5f393b8 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -450,7 +450,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-08</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-09</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 0ede80e..8eda501 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20190908143831+00'00')
-/CreationDate (D:20190908143831+00'00')
+/ModDate (D:20190909144251+00'00')
+/CreationDate (D:20190909144251+00'00')
 >>
 endobj
 2 0 obj
diff --git a/book.html b/book.html
index 6755ae6..90dda27 100644
--- a/book.html
+++ b/book.html
@@ -43080,7 +43080,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2019-09-08 14:29:52 UTC
+Last updated 2019-09-09 14:30:06 UTC
 </div>
 </div>
 </body>
diff --git a/bulk-loads.html b/bulk-loads.html
index d643983..2018e6f 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -155,7 +155,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-08</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-09</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 497874e..0e84461 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -152,7 +152,7 @@
 <td>4016</td>
 <td>0</td>
 <td>0</td>
-<td>11704</td></tr></table></div>
+<td>11702</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -4350,7 +4350,7 @@
 <td><a href="#org.apache.hadoop.hbase.nio.MultiByteBuff.java">org/apache/hadoop/hbase/nio/MultiByteBuff.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>28</td></tr>
+<td>26</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure.MasterProcedureManager.java">org/apache/hadoop/hbase/procedure/MasterProcedureManager.java</a></td>
 <td>0</td>
@@ -8132,7 +8132,7 @@
 <tr class="a">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_blocks.html#NeedBraces">NeedBraces</a></td>
-<td>1495</td>
+<td>1493</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>coding</td>
@@ -37586,49 +37586,49 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>920</td></tr>
+<td>923</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1157</td></tr>
+<td>1160</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
-<td>1161</td></tr>
+<td>1164</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
-<td>1170</td></tr>
+<td>1173</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 10, expected level should be 8.</td>
-<td>1251</td></tr>
+<td>1254</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>1386</td></tr>
+<td>1389</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1452</td></tr>
+<td>1455</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1455</td></tr></table></div>
+<td>1458</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.io.hfile.bucket.BucketCacheStats.java">org/apache/hadoop/hbase/io/hfile/bucket/BucketCacheStats.java</h3>
 <table border="0" class="table table-striped">
@@ -37694,25 +37694,25 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>163</td></tr>
+<td>168</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>175</td></tr>
+<td>177</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>258</td></tr>
+<td>262</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>259</td></tr></table></div>
+<td>263</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.io.hfile.bucket.FileMmapIOEngine.java">org/apache/hadoop/hbase/io/hfile/bucket/FileMmapIOEngine.java</h3>
 <table border="0" class="table table-striped">
@@ -37955,7 +37955,7 @@
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child has incorrect indentation level 6, expected level should be one of the following: 4, 46, 47.</td>
-<td>56</td></tr></table></div>
+<td>63</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.io.util.Dictionary.java">org/apache/hadoop/hbase/io/util/Dictionary.java</h3>
 <table border="0" class="table table-striped">
@@ -53990,133 +53990,133 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>90</td></tr>
+<td>91</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>120</td></tr>
+<td>121</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>217</td></tr>
+<td>218</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>226</td></tr>
+<td>227</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>233</td></tr>
+<td>234</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>240</td></tr>
+<td>241</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>241</td></tr>
+<td>242</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>249</td></tr>
+<td>250</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>268</td></tr>
+<td>269</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>274</td></tr>
+<td>275</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>283</td></tr>
+<td>284</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>318</td></tr>
+<td>319</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>327</td></tr>
+<td>328</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>353</td></tr>
+<td>354</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>362</td></tr>
+<td>363</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>389</td></tr>
+<td>390</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>398</td></tr>
+<td>399</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>429</td></tr>
+<td>430</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>447</td></tr>
+<td>448</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>449</td></tr>
+<td>450</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
-<td>529</td></tr>
+<td>558</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
-<td>529</td></tr></table></div>
+<td>558</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.nio.MultiByteBuff.java">org/apache/hadoop/hbase/nio/MultiByteBuff.java</h3>
 <table border="0" class="table table-striped">
@@ -54131,169 +54131,157 @@
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>102</td></tr>
+<td>122</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>111</td></tr>
+<td>131</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>141</td></tr>
+<td>161</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>191</td></tr>
+<td>211</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>224</td></tr>
+<td>244</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>335</td></tr>
+<td>355</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>377</td></tr>
+<td>397</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>442</td></tr>
+<td>462</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>563</td></tr>
+<td>583</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>573</td></tr>
+<td>593</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>586</td></tr>
+<td>606</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>603</td></tr>
+<td>623</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>613</td></tr>
+<td>633</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>686</td></tr>
+<td>706</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>705</td></tr>
+<td>725</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>706</td></tr>
+<td>726</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>742</td></tr>
+<td>762</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>808</td></tr>
+<td>828</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>818</td></tr>
+<td>838</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>899</td></tr>
+<td>919</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>922</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>blocks</td>
-<td>NeedBraces</td>
-<td>'if' construct must use '{}'s.</td>
-<td>967</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>blocks</td>
-<td>NeedBraces</td>
-<td>'if' construct must use '{}'s.</td>
-<td>1014</td></tr>
+<td>942</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1074</td></tr>
+<td>987</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1081</td></tr>
+<td>1034</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1097</td></tr>
+<td>1138</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1098</td></tr>
+<td>1139</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1100</td></tr></table></div>
+<td>1141</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure.MasterProcedureManager.java">org/apache/hadoop/hbase/procedure/MasterProcedureManager.java</h3>
 <table border="0" class="table table-striped">
@@ -83567,7 +83555,7 @@
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
-<td>476</td></tr></table></div>
+<td>525</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.tool.TestCanaryTool.java">org/apache/hadoop/hbase/tool/TestCanaryTool.java</h3>
 <table border="0" class="table table-striped">
@@ -92801,7 +92789,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-08</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-09</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/checkstyle.rss b/checkstyle.rss
index edc502d..c155c55 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -26,7 +26,7 @@ under the License.
     <copyright>&#169;2007 - 2019 The Apache Software Foundation</copyright>
     <item>
       <title>File: 4016,
-             Errors: 11704,
+             Errors: 11702,
              Warnings: 0,
              Infos: 0
       </title>
@@ -37477,7 +37477,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  28
+                  26
                 </td>
               </tr>
                           <tr>
diff --git a/coc.html b/coc.html
index eed0c9e..2565d40 100644
--- a/coc.html
+++ b/coc.html
@@ -224,7 +224,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-08</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-09</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependencies.html b/dependencies.html
index 7bf9e2a..e89af29 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -296,7 +296,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-08</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-09</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 9231281..6fcb3df 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -541,7 +541,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-08</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-09</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-info.html b/dependency-info.html
index a34c1b1..797a3ad 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -177,7 +177,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-08</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-09</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-management.html b/dependency-management.html
index 345a6e7..6375658 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -899,7 +899,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-08</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-09-09</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/devapidocs/allclasses-frame.html b/devapidocs/allclasses-frame.html
index 4d3f5d3..4fc277d 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -349,6 +349,7 @@
 <li><a href="org/apache/hadoop/hbase/util/ByteArrayHashKey.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">ByteArrayHashKey</a></li>
 <li><a href="org/apache/hadoop/hbase/io/ByteArrayOutputStream.html" title="class in org.apache.hadoop.hbase.io" target="classFrame">ByteArrayOutputStream</a></li>
 <li><a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio" target="classFrame">ByteBuff</a></li>
+<li><a href="org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio" target="classFrame"><span class="interfaceName">ByteBuff.ChannelReader</span></a></li>
 <li><a href="org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io" target="classFrame">ByteBuffAllocator</a></li>
 <li><a href="org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io" target="classFrame"><span class="interfaceName">ByteBuffAllocator.Recycler</span></a></li>
 <li><a href="org/apache/hadoop/hbase/util/ByteBufferAllocator.html" title="interface in org.apache.hadoop.hbase.util" target="classFrame"><span class="interfaceName">ByteBufferAllocator</span></a></li>
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index 157733c..e552cd4 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -349,6 +349,7 @@
 <li><a href="org/apache/hadoop/hbase/util/ByteArrayHashKey.html" title="class in org.apache.hadoop.hbase.util">ByteArrayHashKey</a></li>
 <li><a href="org/apache/hadoop/hbase/io/ByteArrayOutputStream.html" title="class in org.apache.hadoop.hbase.io">ByteArrayOutputStream</a></li>
 <li><a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></li>
+<li><a href="org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio"><span class="interfaceName">ByteBuff.ChannelReader</span></a></li>
 <li><a href="org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a></li>
 <li><a href="org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io"><span class="interfaceName">ByteBuffAllocator.Recycler</span></a></li>
 <li><a href="org/apache/hadoop/hbase/util/ByteBufferAllocator.html" title="interface in org.apache.hadoop.hbase.util"><span class="interfaceName">ByteBufferAllocator</span></a></li>
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index b015951..86e91eb 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -4006,14 +4006,14 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Sun Sep  8 14:34:49 UTC 2019"</code></td>
+<td class="colLast"><code>"Mon Sep  9 14:37:26 UTC 2019"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"693f201f3d474ee216f590e013f9df49dd1503df"</code></td>
+<td class="colLast"><code>"ac8fe1627a7db7e31f54318a3e94da06b30f0760"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 737b351..626f743 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -609,11 +609,11 @@
 <dd>
 <div class="block">Block has been accessed.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">access(FileChannel, ByteBuffer, long)</a></span> - Method in interface org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access(FileChannel, ByteBuff, long)</a></span> - Method in interface org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html#access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">access(FileChannel, ByteBuffer, long)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileReadAccessor</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access(FileChannel, ByteBuff, long)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileReadAccessor</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html#access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">access(FileChannel, ByteBuffer, long)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileWriteAccessor</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access(FileChannel, ByteBuff, long)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileWriteAccessor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html#access-long-">access(long)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a></dt>
 <dd>
@@ -702,7 +702,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/AccessDeniedException.html#AccessDeniedException-java.lang.Throwable-">AccessDeniedException(Throwable)</a></span> - Constructor for exception org.apache.hadoop.hbase.security.<a href="org/apache/hadoop/hbase/security/AccessDeniedException.html" title="class in org.apache.hadoop.hbase.security">AccessDeniedException</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#accessFile-org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.FileAccessor-java.nio.ByteBuffer-long-">accessFile(FileIOEngine.FileAccessor, ByteBuffer, long)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#accessFile-org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.FileAccessor-org.apache.hadoop.hbase.nio.ByteBuff-long-">accessFile(FileIOEngine.FileAccessor, ByteBuff, long)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html#accessTime">accessTime</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a></dt>
 <dd>&nbsp;</dd>
@@ -7287,6 +7287,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/CommonFSUtils.DfsBuilderUtility.html#bufferSizeMethod">bufferSizeMethod</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/CommonFSUtils.DfsBuilderUtility.html" title="class in org.apache.hadoop.hbase.util">CommonFSUtils.DfsBuilderUtility</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html#buffsIterator">buffsIterator</a></span> - Variable in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/ByteBuffAllocator.html#bufSize">bufSize</a></span> - Variable in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/ByteBufferWriterOutputStream.html#bufSize">bufSize</a></span> - Variable in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/ByteBufferWriterOutputStream.html" title="class in org.apache.hadoop.hbase.io">ByteBufferWriterOutputStream</a></dt>
@@ -7945,6 +7947,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/ByteBuff.html#ByteBuff--">ByteBuff()</a></span> - Constructor for class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">ByteBuff.ChannelReader</span></a> - Interface in <a href="org/apache/hadoop/hbase/nio/package-summary.html">org.apache.hadoop.hbase.nio</a></dt>
+<dd>
+<div class="block">function interface for Channel read</div>
+</dd>
 <dt><a href="org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io"><span class="typeNameLink">ByteBuffAllocator</span></a> - Class in <a href="org/apache/hadoop/hbase/io/package-summary.html">org.apache.hadoop.hbase.io</a></dt>
 <dd>
 <div class="block">ByteBuffAllocator is used for allocating/freeing the ByteBuffers from/to NIO ByteBuffer pool, and
@@ -10140,6 +10146,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.html#channel">channel</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.html" title="class in org.apache.hadoop.hbase.master">ClusterStatusPublisher.MulticastPublisher</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/ByteBuff.html#CHANNEL_READER">CHANNEL_READER</a></span> - Static variable in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/example/HttpProxyExample.RequestHandler.html#channelActive-org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext-">channelActive(ChannelHandlerContext)</a></span> - Method in class org.apache.hadoop.hbase.client.example.<a href="org/apache/hadoop/hbase/client/example/HttpProxyExample.RequestHandler.html" title="class in org.apache.hadoop.hbase.client.example">HttpProxyExample.RequestHandler</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/NettyRpcServerRequestDecoder.html#channelActive-org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext-">channelActive(ChannelHandlerContext)</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/NettyRpcServerRequestDecoder.html" title="class in org.apache.hadoop.hbase.ipc">NettyRpcServerRequestDecoder</a></dt>
@@ -10192,8 +10200,6 @@
 <dd>
 <div class="block">This is a wrapper around <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true#read-java.nio.ByteBuffer-" title="class or interface in java.nio.channels"><code>ReadableByteChannel.read(java.nio.ByteBuffer)</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/ByteBuff.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-">channelRead(ReadableByteChannel, ByteBuffer)</a></span> - Static method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ClusterStatusListener.MulticastListener.ClusterStatusHandler.html#channelRead0-org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext-org.apache.hbase.thirdparty.io.netty.channel.socket.DatagramPacket-">channelRead0(ChannelHandlerContext, DatagramPacket)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ClusterStatusListener.MulticastListener.ClusterStatu [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/example/HttpProxyExample.RequestHandler.html#channelRead0-org.apache.hbase.thirdparty.io.netty.channel.ChannelHandlerContext-org.apache.hbase.thirdparty.io.netty.handler.codec.http.FullHttpRequest-">channelRead0(ChannelHandlerContext, FullHttpRequest)</a></span> - Method in class org.apache.hadoop.hbase.client.example.<a href="org/apache/hadoop/hbase/client/example/HttpProxyExample.RequestHandler.html" title="class  [...]
@@ -31438,6 +31444,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#FILE_DELIMITER">FILE_DELIMITER</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/ByteBuff.html#FILE_READER">FILE_READER</a></span> - Static variable in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#FILE_STATUS_ID_COMPARATOR">FILE_STATUS_ID_COMPARATOR</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.html#FILE_SYSTEM_UTILIZATION_CHORE_TIME">FILE_SYSTEM_UTILIZATION_CHORE_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerQuotaSource</a></dt>
@@ -62699,6 +62707,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/IncrementCoalescer.html#internalQueueTincrement-org.apache.hadoop.hbase.thrift.generated.TIncrement-">internalQueueTincrement(TIncrement)</a></span> - Method in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/IncrementCoalescer.html" title="class in org.apache.hadoop.hbase.thrift">IncrementCoalescer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html#internalRead-java.nio.channels.ReadableByteChannel-long-org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader-">internalRead(ReadableByteChannel, long, ByteBuff.ChannelReader)</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.html#internalRestoreSnapshot-java.lang.String-org.apache.hadoop.hbase.TableName-boolean-">internalRestoreSnapshot(String, TableName, boolean)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">RawAsyncHBaseAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/InternalScan.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">InternalScan</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
@@ -90086,14 +90096,26 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/HashTable.TableHash.html#read-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.Path-">read(Configuration, Path)</a></span> - Static method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/HashTable.TableHash.html" title="class in org.apache.hadoop.hbase.mapreduce">HashTable.TableHash</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html#read-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-long-">read(ReadableByteChannel, ByteBuffer, long)</a></span> - Method in interface org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.ReadableByteChannel-">read(ReadableByteChannel)</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></dt>
 <dd>
 <div class="block">Reads bytes from the given channel into this ByteBuff</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.FileChannel-long-">read(FileChannel, long)</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></dt>
+<dd>
+<div class="block">Reads bytes from FileChannel into this ByteBuff</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-long-org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader-">read(ReadableByteChannel, ByteBuffer, long, ByteBuff.ChannelReader)</a></span> - Static method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html#read-java.nio.channels.ReadableByteChannel-">read(ReadableByteChannel)</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html#read-java.nio.channels.FileChannel-long-">read(FileChannel, long)</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/SingleByteBuff.html#read-java.nio.channels.ReadableByteChannel-">read(ReadableByteChannel)</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/SingleByteBuff.html#read-java.nio.channels.FileChannel-long-">read(FileChannel, long)</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#read-org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFile-">read(ProcedureWALFile)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/filter/GZIPRequestStream.html#read--">read()</a></span> - Method in class org.apache.hadoop.hbase.rest.filter.<a href="org/apache/hadoop/hbase/rest/filter/GZIPRequestStream.html" title="class in org.apache.hadoop.hbase.rest.filter">GZIPRequestStream</a></dt>
@@ -125483,6 +125505,8 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#wrapAsCacheable-java.nio.ByteBuffer:A-">wrapAsCacheable(ByteBuffer[])</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#wrapAsCacheable-org.apache.hadoop.hbase.nio.ByteBuff-">wrapAsCacheable(ByteBuff)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/IPCUtil.html#wrapException-java.net.InetSocketAddress-java.lang.Throwable-">wrapException(InetSocketAddress, Throwable)</a></span> - Static method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/IPCUtil.html" title="class in org.apache.hadoop.hbase.ipc">IPCUtil</a></dt>
 <dd>
 <div class="block">Takes an Exception and the address we were trying to connect to and return an IOException with
@@ -125780,6 +125804,14 @@ the order they are declared.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.WALSplit.html#write-java.io.DataOutput-">write(DataOutput)</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.WALSplit.html" title="class in org.apache.hadoop.hbase.mapreduce">WALInputFormat.WALSplit</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/ByteBuff.html#write-java.nio.channels.FileChannel-long-">write(FileChannel, long)</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></dt>
+<dd>
+<div class="block">Write this ByteBuff's data into target file</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html#write-java.nio.channels.FileChannel-long-">write(FileChannel, long)</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/SingleByteBuff.html#write-java.nio.channels.FileChannel-long-">write(FileChannel, long)</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/NoTagsKeyValue.html#write-java.io.OutputStream-boolean-">write(OutputStream, boolean)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/NoTagsKeyValue.html" title="class in org.apache.hadoop.hbase">NoTagsKeyValue</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/PrivateCellUtil.TagRewriteByteBufferExtendedCell.html#write-java.io.OutputStream-boolean-">write(OutputStream, boolean)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/PrivateCellUtil.TagRewriteByteBufferExtendedCell.html" title="class in org.apache.hadoop.hbase">PrivateCellUtil.TagRewriteByteBufferExtendedCell</a></dt>
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index a4c979f..1c26a95 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index 3db0e5c..e934ab2 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -425,20 +425,20 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index adc1a56..eca27ed 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -189,13 +189,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/hbtop/field/package-tree.html b/devapidocs/org/apache/hadoop/hbase/hbtop/field/package-tree.html
index abc40ba..9eebaf0 100644
--- a/devapidocs/org/apache/hadoop/hbase/hbtop/field/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/hbtop/field/package-tree.html
@@ -92,8 +92,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.hbtop.field.<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldValueType.html" title="enum in org.apache.hadoop.hbase.hbtop.field"><span class="typeNameLink">FieldValueType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.hbtop.field.<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/Field.html" title="enum in org.apache.hadoop.hbase.hbtop.field"><span class="typeNameLink">Field</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.hbtop.field.<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldValueType.html" title="enum in org.apache.hadoop.hbase.hbtop.field"><span class="typeNameLink">FieldValueType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html b/devapidocs/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html
index 56b4380..de25701 100644
--- a/devapidocs/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html
+++ b/devapidocs/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.41">RegionServerModeStrategy</a>
+public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.40">RegionServerModeStrategy</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode">ModeStrategy</a></pre>
 <div class="block">Implementation for <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode"><code>ModeStrategy</code></a> for RegionServer Mode.</div>
@@ -220,7 +220,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockList">
 <li class="blockList">
 <h4>fieldInfos</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldInfo.html" title="class in org.apache.hadoop.hbase.hbtop.field">FieldInfo</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.43">fieldInfos</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldInfo.html" title="class in org.apache.hadoop.hbase.hbtop.field">FieldInfo</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.42">fieldInfos</a></pre>
 </li>
 </ul>
 <a name="regionModeStrategy">
@@ -229,7 +229,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockListLast">
 <li class="blockList">
 <h4>regionModeStrategy</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/RegionModeStrategy.html" title="class in org.apache.hadoop.hbase.hbtop.mode">RegionModeStrategy</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.59">regionModeStrategy</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/RegionModeStrategy.html" title="class in org.apache.hadoop.hbase.hbtop.mode">RegionModeStrategy</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.58">regionModeStrategy</a></pre>
 </li>
 </ul>
 </li>
@@ -246,7 +246,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionServerModeStrategy</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.61">RegionServerModeStrategy</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.60">RegionServerModeStrategy</a>()</pre>
 </li>
 </ul>
 </li>
@@ -263,7 +263,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockList">
 <li class="blockList">
 <h4>getFieldInfos</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldInfo.html" title="class in org.apache.hadoop.hbase.hbtop.field">FieldInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.65">getFieldInfos</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldInfo.html" title="class in org.apache.hadoop.hbase.hbtop.field">FieldInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.64">getFieldInfos</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html#getFieldInfos--">getFieldInfos</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode">ModeStrategy</a></code></dd>
@@ -276,7 +276,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockList">
 <li class="blockList">
 <h4>getDefaultSortField</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/Field.html" title="enum in org.apache.hadoop.hbase.hbtop.field">Field</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.70">getDefaultSortField</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/Field.html" title="enum in org.apache.hadoop.hbase.hbtop.field">Field</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.69">getDefaultSortField</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html#getDefaultSortField--">getDefaultSortField</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode">ModeStrategy</a></code></dd>
@@ -289,7 +289,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockList">
 <li class="blockList">
 <h4>getRecords</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.75">getRecords</a>(<a href="../../../../../../org/apache/hadoop/hbase/ClusterMetrics.html"  [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.74">getRecords</a>(<a href="../../../../../../org/apache/hadoop/hbase/ClusterMetrics.html"  [...]
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html#getRecords-org.apache.hadoop.hbase.ClusterMetrics-">getRecords</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode">ModeStrategy</a></code></dd>
@@ -302,7 +302,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockListLast">
 <li class="blockList">
 <h4>drillDown</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/DrillDownInfo.html" title="class in org.apache.hadoop.hbase.hbtop.mode">DrillDownInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.114">drillDown</a>(<a href="../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&nbsp;selectedRecord)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/DrillDownInfo.html" title="class in org.apache.hadoop.hbase.hbtop.mode">DrillDownInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html#line.113">drillDown</a>(<a href="../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&nbsp;selectedRecord)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html#drillDown-org.apache.hadoop.hbase.hbtop.Record-">drillDown</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode">ModeStrategy</a></code></dd>
diff --git a/devapidocs/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html b/devapidocs/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html
index a428a21..021012f 100644
--- a/devapidocs/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html
+++ b/devapidocs/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.38">TableModeStrategy</a>
+public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.37">TableModeStrategy</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode">ModeStrategy</a></pre>
 <div class="block">Implementation for <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode"><code>ModeStrategy</code></a> for Table Mode.</div>
@@ -220,7 +220,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockList">
 <li class="blockList">
 <h4>fieldInfos</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldInfo.html" title="class in org.apache.hadoop.hbase.hbtop.field">FieldInfo</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.40">fieldInfos</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldInfo.html" title="class in org.apache.hadoop.hbase.hbtop.field">FieldInfo</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.39">fieldInfos</a></pre>
 </li>
 </ul>
 <a name="regionModeStrategy">
@@ -229,7 +229,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockListLast">
 <li class="blockList">
 <h4>regionModeStrategy</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/RegionModeStrategy.html" title="class in org.apache.hadoop.hbase.hbtop.mode">RegionModeStrategy</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.54">regionModeStrategy</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/RegionModeStrategy.html" title="class in org.apache.hadoop.hbase.hbtop.mode">RegionModeStrategy</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.53">regionModeStrategy</a></pre>
 </li>
 </ul>
 </li>
@@ -246,7 +246,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TableModeStrategy</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.56">TableModeStrategy</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.55">TableModeStrategy</a>()</pre>
 </li>
 </ul>
 </li>
@@ -263,7 +263,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockList">
 <li class="blockList">
 <h4>getFieldInfos</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldInfo.html" title="class in org.apache.hadoop.hbase.hbtop.field">FieldInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.60">getFieldInfos</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldInfo.html" title="class in org.apache.hadoop.hbase.hbtop.field">FieldInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.59">getFieldInfos</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html#getFieldInfos--">getFieldInfos</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode">ModeStrategy</a></code></dd>
@@ -276,7 +276,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockList">
 <li class="blockList">
 <h4>getDefaultSortField</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/Field.html" title="enum in org.apache.hadoop.hbase.hbtop.field">Field</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.65">getDefaultSortField</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/Field.html" title="enum in org.apache.hadoop.hbase.hbtop.field">Field</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.64">getDefaultSortField</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html#getDefaultSortField--">getDefaultSortField</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode">ModeStrategy</a></code></dd>
@@ -289,7 +289,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockList">
 <li class="blockList">
 <h4>getRecords</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.70">getRecords</a>(<a href="../../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title=" [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.69">getRecords</a>(<a href="../../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title=" [...]
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html#getRecords-org.apache.hadoop.hbase.ClusterMetrics-">getRecords</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode">ModeStrategy</a></code></dd>
@@ -302,7 +302,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStr
 <ul class="blockListLast">
 <li class="blockList">
 <h4>drillDown</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/DrillDownInfo.html" title="class in org.apache.hadoop.hbase.hbtop.mode">DrillDownInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.97">drillDown</a>(<a href="../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&nbsp;selectedRecord)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/DrillDownInfo.html" title="class in org.apache.hadoop.hbase.hbtop.mode">DrillDownInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html#line.96">drillDown</a>(<a href="../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&nbsp;selectedRecord)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html#drillDown-org.apache.hadoop.hbase.hbtop.Record-">drillDown</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.html" title="interface in org.apache.hadoop.hbase.hbtop.mode">ModeStrategy</a></code></dd>
diff --git a/devapidocs/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html b/devapidocs/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html
index 4a3d472..d7a374c 100644
--- a/devapidocs/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html
+++ b/devapidocs/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html
@@ -353,7 +353,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/Abstr
 <ul class="blockList">
 <li class="blockList">
 <h4>showFieldScreen</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html#line.112">showFieldScreen</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sortFieldHeader,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html#line.120">showFieldScreen</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sortFieldHeader,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/field/Field.html" title="enum in org.apache.hadoop.hbase.hbtop.field">Field</a>&gt;&nbsp;fields,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/field/Field.html" title="enum in org.apache.hadoop.hbase.hbtop.field">Field</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;fieldDisplayMap,
                             int&nbsp;currentPosition,
@@ -368,7 +368,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/Abstr
 <ul class="blockList">
 <li class="blockList">
 <h4>showScreenDescription</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html#line.124">showScreenDescription</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sortKeyHeader)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html#line.132">showScreenDescription</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sortKeyHeader)</pre>
 </li>
 </ul>
 <a name="showField-int-org.apache.hadoop.hbase.hbtop.field.Field-boolean-boolean-int-int-boolean-">
@@ -377,7 +377,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/Abstr
 <ul class="blockListLast">
 <li class="blockList">
 <h4>showField</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html#line.134">showField</a>(int&nbsp;pos,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html#line.142">showField</a>(int&nbsp;pos,
                       <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/field/Field.html" title="enum in org.apache.hadoop.hbase.hbtop.field">Field</a>&nbsp;field,
                       boolean&nbsp;display,
                       boolean&nbsp;selected,
diff --git a/devapidocs/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html b/devapidocs/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html
index 6316204..7225b03 100644
--- a/devapidocs/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html
+++ b/devapidocs/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html
@@ -345,7 +345,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/Abstr
 <ul class="blockList">
 <li class="blockList">
 <h4>showModeScreen</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html#line.96">showModeScreen</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/mode/Mode.html" title="enum in org.apache.hadoop.hbase.hbtop.mode">Mode</a>&nbsp;currentMode,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html#line.104">showModeScreen</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/mode/Mode.html" title="enum in org.apache.hadoop.hbase.hbtop.mode">Mode</a>&nbsp;currentMode,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/mode/Mode.html" title="enum in org.apache.hadoop.hbase.hbtop.mode">Mode</a>&gt;&nbsp;modes,
                            int&nbsp;currentPosition,
                            int&nbsp;modeHeaderMaxLength,
@@ -358,7 +358,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/Abstr
 <ul class="blockList">
 <li class="blockList">
 <h4>showScreenDescription</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html#line.106">showScreenDescription</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/mode/Mode.html" title="enum in org.apache.hadoop.hbase.hbtop.mode">Mode</a>&nbsp;currentMode)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html#line.114">showScreenDescription</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/mode/Mode.html" title="enum in org.apache.hadoop.hbase.hbtop.mode">Mode</a>&nbsp;currentMode)</pre>
 </li>
 </ul>
 <a name="showMode-int-org.apache.hadoop.hbase.hbtop.mode.Mode-boolean-int-int-">
@@ -367,7 +367,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/Abstr
 <ul class="blockListLast">
 <li class="blockList">
 <h4>showMode</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html#line.114">showMode</a>(int&nbsp;pos,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html#line.122">showMode</a>(int&nbsp;pos,
                      <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/mode/Mode.html" title="enum in org.apache.hadoop.hbase.hbtop.mode">Mode</a>&nbsp;mode,
                      boolean&nbsp;selected,
                      int&nbsp;modeHeaderMaxLength,
diff --git a/devapidocs/org/apache/hadoop/hbase/hbtop/screen/top/FilterDisplayModeScreenView.html b/devapidocs/org/apache/hadoop/hbase/hbtop/screen/top/FilterDisplayModeScreenView.html
index 6e1f0bc..d3435dd 100644
--- a/devapidocs/org/apache/hadoop/hbase/hbtop/screen/top/FilterDisplayModeScreenView.html
+++ b/devapidocs/org/apache/hadoop/hbase/hbtop/screen/top/FilterDisplayModeScreenView.html
@@ -310,7 +310,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/Abstr
 <ul class="blockListLast">
 <li class="blockList">
 <h4>showFilters</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/FilterDisplayModeScreenView.html#line.64">showFilters</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/RecordFilter.html" title="class in org.apache.hadoop.hbase.hbtop">RecordFilter</a>&gt;&nbsp;filters)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/FilterDisplayModeScreenView.html#line.63">showFilters</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/RecordFilter.html" title="class in org.apache.hadoop.hbase.hbtop">RecordFilter</a>&gt;&nbsp;filters)</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html b/devapidocs/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html
index 1ef46a8..bc41ee4 100644
--- a/devapidocs/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html
+++ b/devapidocs/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html
@@ -462,7 +462,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockList">
 <li class="blockList">
 <h4>getTerminalSize</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/terminal/TerminalSize.html" title="class in org.apache.hadoop.hbase.hbtop.terminal">TerminalSize</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.181">getTerminalSize</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/terminal/TerminalSize.html" title="class in org.apache.hadoop.hbase.hbtop.terminal">TerminalSize</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.186">getTerminalSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/AbstractScreenView.html#getTerminalSize--">getTerminalSize</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/AbstractScreenView.html" title="class in org.apache.hadoop.hbase.hbtop.screen">AbstractScreenView</a></code></dd>
@@ -475,7 +475,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockList">
 <li class="blockList">
 <h4>doResizeIfNecessary</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/terminal/TerminalSize.html" title="class in org.apache.hadoop.hbase.hbtop.terminal">TerminalSize</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.187">doResizeIfNecessary</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/terminal/TerminalSize.html" title="class in org.apache.hadoop.hbase.hbtop.terminal">TerminalSize</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.193">doResizeIfNecessary</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/AbstractScreenView.html#doResizeIfNecessary--">doResizeIfNecessary</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/AbstractScreenView.html" title="class in org.apache.hadoop.hbase.hbtop.screen">AbstractScreenView</a></code></dd>
@@ -488,7 +488,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePageSize</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.196">updatePageSize</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/terminal/TerminalSize.html" title="class in org.apache.hadoop.hbase.hbtop.terminal">TerminalSize</a>&nbsp;terminalSize)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.202">updatePageSize</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/terminal/TerminalSize.html" title="class in org.apache.hadoop.hbase.hbtop.terminal">TerminalSize</a>&nbsp;terminalSize)</pre>
 </li>
 </ul>
 <a name="getPageSize--">
@@ -497,7 +497,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockList">
 <li class="blockList">
 <h4>getPageSize</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.203">getPageSize</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.209">getPageSize</a>()</pre>
 </li>
 </ul>
 <a name="showTopScreen-org.apache.hadoop.hbase.hbtop.screen.top.Summary-java.util.List-java.util.List-org.apache.hadoop.hbase.hbtop.Record-">
@@ -506,7 +506,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockList">
 <li class="blockList">
 <h4>showTopScreen</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.207">showTopScreen</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/top/Summary.html" title="class in org.apache.hadoop.hbase.hbtop.screen.top">Summary</a>&nbsp;summary,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.213">showTopScreen</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/top/Summary.html" title="class in org.apache.hadoop.hbase.hbtop.screen.top">Summary</a>&nbsp;summary,
                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/top/Header.html" title="class in org.apache.hadoop.hbase.hbtop.screen.top">Header</a>&gt;&nbsp;headers,
                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&gt;&nbsp;records,
                           <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&nbsp;selectedRecord)</pre>
@@ -518,7 +518,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockList">
 <li class="blockList">
 <h4>showSummary</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.215">showSummary</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/top/Summary.html" title="class in org.apache.hadoop.hbase.hbtop.screen.top">Summary</a>&nbsp;summary)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.221">showSummary</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/top/Summary.html" title="class in org.apache.hadoop.hbase.hbtop.screen.top">Summary</a>&nbsp;summary)</pre>
 </li>
 </ul>
 <a name="showRecords-java.util.List-java.util.List-org.apache.hadoop.hbase.hbtop.Record-">
@@ -527,7 +527,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockList">
 <li class="blockList">
 <h4>showRecords</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.239">showRecords</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/top/Header.html" title="class in org.apache.hadoop.hbase.hbtop.screen.top">Header</a>&gt;&nbsp;headers,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.245">showRecords</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/top/Header.html" title="class in org.apache.hadoop.hbase.hbtop.screen.top">Header</a>&gt;&nbsp;headers,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&gt;&nbsp;records,
                          <a href="../../../../../../../org/apache/hadoop/hbase/hbtop/Record.html" title="class in org.apache.hadoop.hbase.hbtop">Record</a>&nbsp;selectedRecord)</pre>
 </li>
@@ -538,7 +538,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockList">
 <li class="blockList">
 <h4>showHeaders</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.271">showHeaders</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/top/Header.html" title="class in org.apache.hadoop.hbase.hbtop.screen.top">Header</a>&gt;&nbsp;headers)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.277">showHeaders</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/top/Header.html" title="class in org.apache.hadoop.hbase.hbtop.screen.top">Header</a>&gt;&nbsp;headers)</pre>
 </li>
 </ul>
 <a name="limitLineLength-java.lang.String-int-">
@@ -547,7 +547,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockList">
 <li class="blockList">
 <h4>limitLineLength</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.284">limitLineLength</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;line,
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.290">limitLineLength</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;line,
                                int&nbsp;length)</pre>
 </li>
 </ul>
@@ -557,7 +557,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockList">
 <li class="blockList">
 <h4>clearMessage</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.291">clearMessage</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.297">clearMessage</a>()</pre>
 </li>
 </ul>
 <a name="unknownCommandMessage--">
@@ -566,7 +566,7 @@ public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/S
 <ul class="blockListLast">
 <li class="blockList">
 <h4>unknownCommandMessage</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/ScreenView.html" title="interface in org.apache.hadoop.hbase.hbtop.screen">ScreenView</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.295">unknownCommandMessage</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/screen/ScreenView.html" title="interface in org.apache.hadoop.hbase.hbtop.screen">ScreenView</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html#line.301">unknownCommandMessage</a>()</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html b/devapidocs/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html
index 0b2a565..ef55728 100644
--- a/devapidocs/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html
+++ b/devapidocs/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html
@@ -460,7 +460,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>ctrlAndCharacter</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.216">ctrlAndCharacter</a>(char&nbsp;ch)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.220">ctrlAndCharacter</a>(char&nbsp;ch)</pre>
 </li>
 </ul>
 <a name="isPrintableChar-char-">
@@ -469,7 +469,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isPrintableChar</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.246">isPrintableChar</a>(char&nbsp;ch)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.250">isPrintableChar</a>(char&nbsp;ch)</pre>
 </li>
 </ul>
 <a name="ctrlAltAndCharacter-char-">
@@ -478,7 +478,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>ctrlAltAndCharacter</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.254">ctrlAltAndCharacter</a>(char&nbsp;ch)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.258">ctrlAltAndCharacter</a>(char&nbsp;ch)</pre>
 </li>
 </ul>
 <a name="escapeSequenceCharacter-char-">
@@ -487,7 +487,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>escapeSequenceCharacter</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.284">escapeSequenceCharacter</a>(char&nbsp;ch)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.288">escapeSequenceCharacter</a>(char&nbsp;ch)</pre>
 </li>
 </ul>
 <a name="doneEscapeSequenceCharacter-char-">
@@ -496,7 +496,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>doneEscapeSequenceCharacter</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.309">doneEscapeSequenceCharacter</a>(char&nbsp;last)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.313">doneEscapeSequenceCharacter</a>(char&nbsp;last)</pre>
 </li>
 </ul>
 <a name="isShift-int-">
@@ -505,7 +505,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isShift</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.454">isShift</a>(int&nbsp;param)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.458">isShift</a>(int&nbsp;param)</pre>
 </li>
 </ul>
 <a name="isAlt-int-">
@@ -514,7 +514,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isAlt</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.458">isAlt</a>(int&nbsp;param)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.462">isAlt</a>(int&nbsp;param)</pre>
 </li>
 </ul>
 <a name="isCtrl-int-">
@@ -523,7 +523,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isCtrl</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.462">isCtrl</a>(int&nbsp;param)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.466">isCtrl</a>(int&nbsp;param)</pre>
 </li>
 </ul>
 <a name="offer-org.apache.hadoop.hbase.hbtop.terminal.KeyPress-">
@@ -532,7 +532,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>offer</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.466">offer</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/terminal/KeyPress.html" title="class in org.apache.hadoop.hbase.hbtop.terminal">KeyPress</a>&nbsp;keyPress)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.470">offer</a>(<a href="../../../../../../../org/apache/hadoop/hbase/hbtop/terminal/KeyPress.html" title="class in org.apache.hadoop.hbase.hbtop.terminal">KeyPress</a>&nbsp;keyPress)</pre>
 </li>
 </ul>
 <a name="stop--">
@@ -541,7 +541,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.476">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html#line.480">stop</a>()</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
index fd1afed..fe725db 100644
--- a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
@@ -138,8 +138,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Output.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Output</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Event.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Event</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Output.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Output</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/HttpConfig.Policy.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">HttpConfig.Policy</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/class-use/ByteBuffAllocator.html b/devapidocs/org/apache/hadoop/hbase/io/class-use/ByteBuffAllocator.html
index 2651a5d..9220d66 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/class-use/ByteBuffAllocator.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/class-use/ByteBuffAllocator.html
@@ -344,7 +344,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a></code></td>
+<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a></code></td>
 <td class="colLast"><span class="typeNameLabel">BucketEntry.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#allocator">allocator</a></span></code>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html
index df6ef56..37842c8 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1264">BucketCache.BucketEntryGroup</a>
+<pre>private class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1267">BucketCache.BucketEntryGroup</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Used to group bucket entries into priority buckets. There will be a
  BucketEntryGroup for each priority (single, multi, memory). Once bucketed,
@@ -227,7 +227,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>queue</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/CachedEntryQueue.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">CachedEntryQueue</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1266">queue</a></pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/CachedEntryQueue.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">CachedEntryQueue</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1269">queue</a></pre>
 </li>
 </ul>
 <a name="totalSize">
@@ -236,7 +236,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>totalSize</h4>
-<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1267">totalSize</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1270">totalSize</a></pre>
 </li>
 </ul>
 <a name="bucketSize">
@@ -245,7 +245,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>bucketSize</h4>
-<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1268">bucketSize</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1271">bucketSize</a></pre>
 </li>
 </ul>
 </li>
@@ -262,7 +262,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BucketEntryGroup</h4>
-<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1270">BucketEntryGroup</a>(long&nbsp;bytesToFree,
+<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1273">BucketEntryGroup</a>(long&nbsp;bytesToFree,
                         long&nbsp;blockSize,
                         long&nbsp;bucketSize)</pre>
 </li>
@@ -281,7 +281,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1276">add</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<a href="../../../../../../../o [...]
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1279">add</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<a href="../../../../../../../o [...]
 </li>
 </ul>
 <a name="free-long-">
@@ -290,7 +290,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>free</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1281">free</a>(long&nbsp;toFree)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1284">free</a>(long&nbsp;toFree)</pre>
 </li>
 </ul>
 <a name="overflow--">
@@ -299,7 +299,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>overflow</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1298">overflow</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1301">overflow</a>()</pre>
 </li>
 </ul>
 <a name="totalSize--">
@@ -308,7 +308,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>totalSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1302">totalSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html#line.1305">totalSize</a>()</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html
index 71957d5..468aecc 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1528">BucketCache.RAMCache</a>
+<pre>static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1531">BucketCache.RAMCache</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Wrapped the delegate ConcurrentMap with maintaining its block's reference count.</div>
 </li>
@@ -239,7 +239,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>delegate</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop. [...]
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop. [...]
 <div class="block">Defined the map as <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent"><code>ConcurrentHashMap</code></a> explicitly here, because in
  <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#get-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-"><code>get(BlockCacheKey)</code></a> and
  <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#putIfAbsent-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.RAMQueueEntry-"><code>putIfAbsent(BlockCacheKey, BucketCache.RAMQueueEntry)</code></a> , we need to
@@ -263,7 +263,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RAMCache</h4>
-<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1528">RAMCache</a>()</pre>
+<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1531">RAMCache</a>()</pre>
 </li>
 </ul>
 </li>
@@ -280,7 +280,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>containsKey</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1540">containsKey</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;key)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1543">containsKey</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;key)</pre>
 </li>
 </ul>
 <a name="get-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">
@@ -289,7 +289,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1544">get</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;k [...]
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1547">get</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;k [...]
 </li>
 </ul>
 <a name="putIfAbsent-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.RAMQueueEntry-">
@@ -298,7 +298,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>putIfAbsent</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1558">putIfAbsent</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a [...]
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1561">putIfAbsent</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a [...]
                                              <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&nbsp;entry)</pre>
 <div class="block">Return the previous associated value, or null if absent. It has the same meaning as
  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#putIfAbsent-K-V-" title="class or interface in java.util.concurrent"><code>ConcurrentMap.putIfAbsent(Object, Object)</code></a></div>
@@ -310,7 +310,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>remove</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1569">remove</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;key)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1572">remove</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;key)</pre>
 </li>
 </ul>
 <a name="remove-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-java.util.function.Consumer-">
@@ -319,7 +319,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>remove</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1579">remove</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;key,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1582">remove</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;key,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function">Consumer</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&gt;&nbsp;action)</pre>
 <div class="block">Defined an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function"><code>Consumer</code></a> here, because once the removed entry release its reference count,
  then it's ByteBuffers may be recycled and accessing it outside this method will be thrown an
@@ -333,7 +333,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isEmpty</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1588">isEmpty</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1591">isEmpty</a>()</pre>
 </li>
 </ul>
 <a name="clear--">
@@ -342,7 +342,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>clear</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1592">clear</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMCache.html#line.1595">clear</a>()</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html
index 46f195c..d1d6ca0 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1311">BucketCache.RAMQueueEntry</a>
+<pre>static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1314">BucketCache.RAMQueueEntry</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Block Entry stored in the memory with key,data and so on</div>
 </li>
@@ -240,7 +240,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>key</h4>
-<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1312">key</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1315">key</a></pre>
 </li>
 </ul>
 <a name="data">
@@ -249,7 +249,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>data</h4>
-<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1313">data</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1316">data</a></pre>
 </li>
 </ul>
 <a name="accessCounter">
@@ -258,7 +258,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>accessCounter</h4>
-<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1314">accessCounter</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1317">accessCounter</a></pre>
 </li>
 </ul>
 <a name="inMemory">
@@ -267,7 +267,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>inMemory</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1315">inMemory</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1318">inMemory</a></pre>
 </li>
 </ul>
 <a name="recycler">
@@ -276,7 +276,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>recycler</h4>
-<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1316">recycler</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1319">recycler</a></pre>
 </li>
 </ul>
 </li>
@@ -293,7 +293,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RAMQueueEntry</h4>
-<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1318">RAMQueueEntry</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;bck,
+<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1321">RAMQueueEntry</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;bck,
               <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&nbsp;data,
               long&nbsp;accessCounter,
               boolean&nbsp;inMemory,
@@ -314,7 +314,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getData</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1327">getData</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1330">getData</a>()</pre>
 </li>
 </ul>
 <a name="getKey--">
@@ -323,7 +323,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getKey</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1331">getKey</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1334">getKey</a>()</pre>
 </li>
 </ul>
 <a name="access-long-">
@@ -332,7 +332,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>access</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1335">access</a>(long&nbsp;accessCounter)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1338">access</a>(long&nbsp;accessCounter)</pre>
 </li>
 </ul>
 <a name="getByteBuffAllocator--">
@@ -341,7 +341,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getByteBuffAllocator</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1339">getByteBuffAllocator</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1342">getByteBuffAllocator</a>()</pre>
 </li>
 </ul>
 <a name="writeToCache-org.apache.hadoop.hbase.io.hfile.bucket.IOEngine-org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator-java.util.concurrent.atomic.LongAdder-">
@@ -350,7 +350,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>writeToCache</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1346">writeToCache</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">IOEngine</a>&nbsp;ioEngine,
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html#line.1349">writeToCache</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">IOEngine</a>&nbsp;ioEngine,
                                 <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a>&nbsp;alloc,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a>&nbsp;realCacheSize)
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html
index 624731f..5ffd502 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.607">BucketCache.StatisticsThread</a>
+<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.610">BucketCache.StatisticsThread</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></pre>
 </li>
 </ul>
@@ -239,7 +239,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>bucketCache</h4>
-<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.608">bucketCache</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.611">bucketCache</a></pre>
 </li>
 </ul>
 </li>
@@ -256,7 +256,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>StatisticsThread</h4>
-<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.610">StatisticsThread</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a>&nbsp;bucketCache)</pre>
+<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.613">StatisticsThread</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a>&nbsp;bucketCache)</pre>
 </li>
 </ul>
 </li>
@@ -273,7 +273,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.617">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.StatisticsThread.html#line.620">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html
index a746f83..066c6e8 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.852">BucketCache.WriterThread</a>
+<pre>class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.855">BucketCache.WriterThread</a>
 extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.html" title="class in org.apache.hadoop.hbase.util">HasThread</a></pre>
 </li>
 </ul>
@@ -238,7 +238,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>inputQueue</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&gt; <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.Wri [...]
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&gt; <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.Wri [...]
 </li>
 </ul>
 <a name="writerEnabled">
@@ -247,7 +247,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>writerEnabled</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.854">writerEnabled</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.857">writerEnabled</a></pre>
 </li>
 </ul>
 </li>
@@ -264,7 +264,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>WriterThread</h4>
-<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.856">WriterThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache [...]
+<pre><a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.859">WriterThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache [...]
 </li>
 </ul>
 </li>
@@ -281,7 +281,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>disableWriter</h4>
-<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.863">disableWriter</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.866">disableWriter</a>()</pre>
 </li>
 </ul>
 <a name="run--">
@@ -290,7 +290,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.868">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.871">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -305,7 +305,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>putIntoBackingMap</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.904">putIntoBackingMap</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;key,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.907">putIntoBackingMap</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;key,
                                <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry</a>&nbsp;bucketEntry)</pre>
 <div class="block">Put the new bucket entry into backingMap. Notice that we are allowed to replace the existing
  cache with a new block for the same cache key. there's a corner case: one thread cache a
@@ -329,7 +329,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/util/HasThread.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>doDrain</h4>
-<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.923">doDrain</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&gt;&nbsp;entries)
+<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.WriterThread.html#line.926">doDrain</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&gt;&nbsp;entries)
       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Flush the entries in ramCache to IOEngine and add bucket entry to backingMap.
  Process all that are passed in even if failure being sure to remove from ramCache else we'll
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html
index b15a354..97a6e5f 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html
@@ -1547,7 +1547,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>blockEvicted</h4>
-<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.532">blockEvicted</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey,
+<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.535">blockEvicted</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey,
                   <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry</a>&nbsp;bucketEntry,
                   boolean&nbsp;decrementBlockNumber)</pre>
 </li>
@@ -1558,7 +1558,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>evictBlock</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.558">evictBlock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.561">evictBlock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</pre>
 <div class="block">Try to evict the block from <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile"><code>BlockCache</code></a> by force. We'll call this in few cases:<br>
  1. Close an HFile, and clear all cached blocks. <br>
  2. Call <a href="../../../../../../../org/apache/hadoop/hbase/client/Admin.html#clearBlockCache-org.apache.hadoop.hbase.TableName-"><code>Admin.clearBlockCache(TableName)</code></a> to clear all blocks for a given table.<br>
@@ -1587,7 +1587,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>createRecycler</h4>
-<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.574">createRecycler</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</pre>
+<pre>private&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.577">createRecycler</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</pre>
 </li>
 </ul>
 <a name="removeFromRamCache-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">
@@ -1596,7 +1596,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>removeFromRamCache</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.595">removeFromRamCache</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.598">removeFromRamCache</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</pre>
 </li>
 </ul>
 <a name="logStats--">
@@ -1605,7 +1605,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>logStats</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.622">logStats</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.625">logStats</a>()</pre>
 </li>
 </ul>
 <a name="getRealCacheSize--">
@@ -1614,7 +1614,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getRealCacheSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.648">getRealCacheSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.651">getRealCacheSize</a>()</pre>
 </li>
 </ul>
 <a name="acceptableSize--">
@@ -1623,7 +1623,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>acceptableSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.652">acceptableSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.655">acceptableSize</a>()</pre>
 </li>
 </ul>
 <a name="getPartitionSize-float-">
@@ -1632,7 +1632,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getPartitionSize</h4>
-<pre>long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.657">getPartitionSize</a>(float&nbsp;partitionFactor)</pre>
+<pre>long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.660">getPartitionSize</a>(float&nbsp;partitionFactor)</pre>
 </li>
 </ul>
 <a name="bucketSizesAboveThresholdCount-float-">
@@ -1641,7 +1641,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>bucketSizesAboveThresholdCount</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.664">bucketSizesAboveThresholdCount</a>(float&nbsp;minFactor)</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.667">bucketSizesAboveThresholdCount</a>(float&nbsp;minFactor)</pre>
 <div class="block">Return the count of bucketSizeinfos still need free space</div>
 </li>
 </ul>
@@ -1651,7 +1651,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>freeEntireBuckets</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.686">freeEntireBuckets</a>(int&nbsp;completelyFreeBucketsNeeded)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.689">freeEntireBuckets</a>(int&nbsp;completelyFreeBucketsNeeded)</pre>
 <div class="block">This method will find the buckets that are minimally occupied
  and are not reference counted and will free them completely
  without any constraint on the access times of the elements,
@@ -1669,7 +1669,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>freeSpace</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.712">freeSpace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.715">freeSpace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <div class="block">Free the space if the used size reaches acceptableSize() or one size block
  couldn't be allocated. When freeing the space, we use the LRU algorithm and
  ensure there must be some blocks evicted</div>
@@ -1685,7 +1685,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getRAMQueueEntries</h4>
-<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&gt;&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1031">getRAMQueueEntries</a>(<a hre [...]
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&gt;&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1034">getRAMQueueEntries</a>(<a hre [...]
                                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.RAMQueueEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache.RAMQueueEntry</a>&gt;&nbsp;receptacle)
                                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Blocks until elements available in <code>q</code> then tries to grab as many as possible before
@@ -1708,7 +1708,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>persistToFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1046">persistToFile</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1049">persistToFile</a>()
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1724,7 +1724,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>retrieveFromFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1060">retrieveFromFile</a>(int[]&nbsp;bucketSizes)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1063">retrieveFromFile</a>(int[]&nbsp;bucketSizes)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1740,7 +1740,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteFileOnClose</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/FileInputStream.html?is-external=true" title="class or interface in java.io">FileInputStream</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1101">deleteFileOnClose</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;file)
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/FileInputStream.html?is-external=true" title="class or interface in java.io">FileInputStream</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1104">deleteFileOnClose</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;file)
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Create an input stream that deletes the file after reading it. Use in try-with-resources to
  avoid this pattern where an exception thrown from a finally block may mask earlier exceptions:
@@ -1768,7 +1768,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyCapacityAndClasses</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1113">verifyCapacityAndClasses</a>(long&nbsp;capacitySize,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1116">verifyCapacityAndClasses</a>(long&nbsp;capacitySize,
                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;ioclass,
                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;mapclass)
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1784,7 +1784,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>parsePB</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1130">parsePB</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.BucketCacheProtos.BucketCacheEntry&nbsp;proto)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1133">parsePB</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.BucketCacheProtos.BucketCacheEntry&nbsp;proto)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1798,7 +1798,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>checkIOErrorIsTolerated</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1140">checkIOErrorIsTolerated</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1143">checkIOErrorIsTolerated</a>()</pre>
 <div class="block">Check whether we tolerate IO error this time. If the duration of IOEngine
  throwing errors exceeds ioErrorsDurationTimeTolerated, we will disable the
  cache</div>
@@ -1810,7 +1810,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>disableCache</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1156">disableCache</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1159">disableCache</a>()</pre>
 <div class="block">Used to shut down the cache -or- turn it off in the case of something broken.</div>
 </li>
 </ul>
@@ -1820,7 +1820,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>join</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1169">join</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1172">join</a>()
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1834,7 +1834,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1175">shutdown</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1178">shutdown</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#shutdown--">BlockCache</a></code></span></div>
 <div class="block">Shutdown the cache.</div>
 <dl>
@@ -1849,7 +1849,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getStats</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1192">getStats</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1195">getStats</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getStats--">BlockCache</a></code></span></div>
 <div class="block">Get the statistics for this block cache.</div>
 <dl>
@@ -1866,7 +1866,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getAllocator</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1196">getAllocator</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1199">getAllocator</a>()</pre>
 </li>
 </ul>
 <a name="heapSize--">
@@ -1875,7 +1875,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>heapSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1201">heapSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1204">heapSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/HeapSize.html#heapSize--">heapSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a></code></dd>
@@ -1891,7 +1891,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>size</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1206">size</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1209">size</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#size--">BlockCache</a></code></span></div>
 <div class="block">Returns the total size of the block cache, in bytes.</div>
 <dl>
@@ -1908,7 +1908,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentDataSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1211">getCurrentDataSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1214">getCurrentDataSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getCurrentDataSize--">BlockCache</a></code></span></div>
 <div class="block">Returns the occupied size of data blocks, in bytes.</div>
 <dl>
@@ -1925,7 +1925,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getFreeSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1216">getFreeSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1219">getFreeSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getFreeSize--">BlockCache</a></code></span></div>
 <div class="block">Returns the free size of the block cache, in bytes.</div>
 <dl>
@@ -1942,7 +1942,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1221">getBlockCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1224">getBlockCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getBlockCount--">BlockCache</a></code></span></div>
 <div class="block">Returns the number of blocks currently cached in the block cache.</div>
 <dl>
@@ -1959,7 +1959,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getDataBlockCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1226">getDataBlockCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1229">getDataBlockCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getDataBlockCount--">BlockCache</a></code></span></div>
 <div class="block">Returns the number of data blocks currently cached in the block cache.</div>
 <dl>
@@ -1976,7 +1976,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1231">getCurrentSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1234">getCurrentSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getCurrentSize--">BlockCache</a></code></span></div>
 <div class="block">Returns the occupied size of the block cache, in bytes.</div>
 <dl>
@@ -1993,7 +1993,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>evictBlocksByHfileName</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1243">evictBlocksByHfileName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hfileName)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1246">evictBlocksByHfileName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hfileName)</pre>
 <div class="block">Evicts all blocks for a specific HFile.
  <p>
  This is used for evict-on-close to remove all blocks of a specific HFile.</div>
@@ -2011,7 +2011,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>stopWriterThreads</h4>
-<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1388">stopWriterThreads</a>()
+<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1391">stopWriterThreads</a>()
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Only used in test</div>
 <dl>
@@ -2026,7 +2026,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>iterator</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>&gt;&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1397">iterator</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>&gt;&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1400">iterator</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator--" title="class or interface in java.lang">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cache [...]
@@ -2043,7 +2043,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCaches</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1488">getBlockCaches</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1491">getBlockCaches</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getBlockCaches--">getBlockCaches</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd>
@@ -2058,7 +2058,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getRpcRefCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1493">getRpcRefCount</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1496">getRpcRefCount</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</pre>
 </li>
 </ul>
 <a name="getAcceptableFactor--">
@@ -2067,7 +2067,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getAcceptableFactor</h4>
-<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1501">getAcceptableFactor</a>()</pre>
+<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1504">getAcceptableFactor</a>()</pre>
 </li>
 </ul>
 <a name="getMinFactor--">
@@ -2076,7 +2076,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getMinFactor</h4>
-<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1505">getMinFactor</a>()</pre>
+<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1508">getMinFactor</a>()</pre>
 </li>
 </ul>
 <a name="getExtraFreeFactor--">
@@ -2085,7 +2085,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getExtraFreeFactor</h4>
-<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1509">getExtraFreeFactor</a>()</pre>
+<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1512">getExtraFreeFactor</a>()</pre>
 </li>
 </ul>
 <a name="getSingleFactor--">
@@ -2094,7 +2094,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getSingleFactor</h4>
-<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1513">getSingleFactor</a>()</pre>
+<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1516">getSingleFactor</a>()</pre>
 </li>
 </ul>
 <a name="getMultiFactor--">
@@ -2103,7 +2103,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockList">
 <li class="blockList">
 <h4>getMultiFactor</h4>
-<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1517">getMultiFactor</a>()</pre>
+<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1520">getMultiFactor</a>()</pre>
 </li>
 </ul>
 <a name="getMemoryFactor--">
@@ -2112,7 +2112,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockC
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMemoryFactor</h4>
-<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1521">getMemoryFactor</a>()</pre>
+<pre>float&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#line.1524">getMemoryFactor</a>()</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.BucketEntryHandler.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.BucketEntryHandler.html
index e5d51b6..8ac1511 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.BucketEntryHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.BucketEntryHandler.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static interface <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.201">BucketEntry.BucketEntryHandler</a>&lt;T&gt;</pre>
+<pre>static interface <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.204">BucketEntry.BucketEntryHandler</a>&lt;T&gt;</pre>
 </li>
 </ul>
 </div>
@@ -149,7 +149,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>handle</h4>
-<pre><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.BucketEntryHandler.html" title="type parameter in BucketEntry.BucketEntryHandler">T</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.BucketEntryHandler.html#line.202">handle</a>()</pre>
+<pre><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.BucketEntryHandler.html" title="type parameter in BucketEntry.BucketEntryHandler">T</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.BucketEntryHandler.html#line.205">handle</a>()</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html
index a776283..cb38e34 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -164,7 +164,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/nio/HBaseRefere
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#accessCounter">accessCounter</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a></code></td>
+<td class="colFirst"><code>(package private) <a href="../../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#allocator">allocator</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -332,6 +332,10 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/nio/HBaseRefere
 </tr>
 <tr id="i16" class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#wrapAsCacheable-org.apache.hadoop.hbase.nio.ByteBuff-">wrapAsCacheable</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf)</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#wrapAsCacheable-java.nio.ByteBuffer:A-">wrapAsCacheable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers)</code>&nbsp;</td>
 </tr>
 </table>
@@ -465,7 +469,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/nio/HBaseRefere
 <ul class="blockList">
 <li class="blockList">
 <h4>allocator</h4>
-<pre>private final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.83">allocator</a></pre>
+<pre>final&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a> <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.83">allocator</a></pre>
 </li>
 </ul>
 <a name="cachedTime">
@@ -667,13 +671,27 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/nio/HBaseRefere
 </dl>
 </li>
 </ul>
+<a name="wrapAsCacheable-org.apache.hadoop.hbase.nio.ByteBuff-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>wrapAsCacheable</h4>
+<pre><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.200">wrapAsCacheable</a>(<a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf)
+                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="withWriteLock-org.apache.hadoop.hbase.util.IdReadWriteLock-org.apache.hadoop.hbase.io.hfile.bucket.BucketEntry.BucketEntryHandler-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>withWriteLock</h4>
-<pre>&lt;T&gt;&nbsp;T&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.205">withWriteLock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.html" title="class in org.apache.hadoop.hbase.util">IdReadWriteLock</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;offsetLock,
+<pre>&lt;T&gt;&nbsp;T&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.208">withWriteLock</a>(<a href="../../../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.html" title="class in org.apache.hadoop.hbase.util">IdReadWriteLock</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;offsetLock,
                     <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.BucketEntryHandler.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry.BucketEntryHandler</a>&lt;T&gt;&nbsp;handler)</pre>
 </li>
 </ul>
@@ -683,7 +701,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/nio/HBaseRefere
 <ul class="blockList">
 <li class="blockList">
 <h4>refCnt</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.216">refCnt</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.219">refCnt</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>refCnt</code>&nbsp;in interface&nbsp;<code>org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</code></dd>
@@ -696,7 +714,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/nio/HBaseRefere
 <ul class="blockList">
 <li class="blockList">
 <h4>retain</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.221">retain</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.224">retain</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>retain</code>&nbsp;in interface&nbsp;<code>org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</code></dd>
@@ -709,7 +727,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/nio/HBaseRefere
 <ul class="blockListLast">
 <li class="blockList">
 <h4>release</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.239">release</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#line.242">release</a>()</pre>
 <div class="block">We've three cases to release refCnt now: <br>
  1. BucketCache#evictBlock, it will release the backingMap's reference by force because we're
  closing file or clear the bucket cache or some corruption happen. when all rpc references gone,
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/ExclusiveMemoryMmapIOEngine.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/ExclusiveMemoryMmapIOEngine.html
index 627f222..3c7ff55 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/ExclusiveMemoryMmapIOEngine.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/ExclusiveMemoryMmapIOEngine.html
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/ExclusiveMemoryMmapIOEngine.html#line.30">ExclusiveMemoryMmapIOEngine</a>
+public class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/ExclusiveMemoryMmapIOEngine.html#line.29">ExclusiveMemoryMmapIOEngine</a>
 extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileMmapIOEngine.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileMmapIOEngine</a></pre>
 <div class="block">IO engine that stores data to a file on the local block device using memory mapping mechanism</div>
 </li>
@@ -221,7 +221,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Fi
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ExclusiveMemoryMmapIOEngine</h4>
-<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/ExclusiveMemoryMmapIOEngine.html#line.32">ExclusiveMemoryMmapIOEngine</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath,
+<pre>public&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/ExclusiveMemoryMmapIOEngine.html#line.31">ExclusiveMemoryMmapIOEngine</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath,
                                    long&nbsp;capacity)
                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -244,7 +244,7 @@ extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/Fi
 <ul class="blockListLast">
 <li class="blockList">
 <h4>read</h4>
-<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/ExclusiveMemoryMmapIOEngine.html#line.37">read</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry</a>&nbsp;be)
+<pre>public&nbsp;<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/ExclusiveMemoryMmapIOEngine.html#line.36">read</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketEntry</a>&nbsp;be)
                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.html#read-org.apache.hadoop.hbase.io.hfile.bucket.BucketEntry-">IOEngine</a></code></span></div>
 <div class="block">Transfers data from IOEngine to a Cacheable object.</div>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html
index 5425d28..a958169 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static interface <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.306">FileIOEngine.FileAccessor</a></pre>
+<pre>private static interface <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.310">FileIOEngine.FileAccessor</a></pre>
 </li>
 </ul>
 </div>
@@ -130,8 +130,8 @@ var activeTableTab = "activeTableTab";
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">access</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
-      <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuffer,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
+      <a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
       long&nbsp;accessOffset)</code>&nbsp;</td>
 </tr>
 </table>
@@ -149,14 +149,14 @@ var activeTableTab = "activeTableTab";
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">
+<a name="access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>access</h4>
-<pre>int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#line.307">access</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
-           <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuffer,
+<pre>int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#line.311">access</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
+           <a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
            long&nbsp;accessOffset)
     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html
index ef08f9a..0ba9f9f 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.311">FileIOEngine.FileReadAccessor</a>
+<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.315">FileIOEngine.FileReadAccessor</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a></pre>
 </li>
@@ -159,8 +159,8 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html#access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">access</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
-      <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuffer,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
+      <a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
       long&nbsp;accessOffset)</code>&nbsp;</td>
 </tr>
 </table>
@@ -191,7 +191,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FileReadAccessor</h4>
-<pre>private&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html#line.311">FileReadAccessor</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html#line.315">FileReadAccessor</a>()</pre>
 </li>
 </ul>
 </li>
@@ -202,19 +202,19 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">
+<a name="access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>access</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html#line.313">access</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuffer,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html#line.317">access</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
+                  <a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
                   long&nbsp;accessOffset)
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">access</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a></code></dd>
+<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a></code></dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html
index 6f3b73f..aa281002 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.319">FileIOEngine.FileWriteAccessor</a>
+<pre>private static class <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.323">FileIOEngine.FileWriteAccessor</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a></pre>
 </li>
@@ -159,8 +159,8 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html#access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">access</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
-      <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuffer,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
+      <a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
       long&nbsp;accessOffset)</code>&nbsp;</td>
 </tr>
 </table>
@@ -191,7 +191,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FileWriteAccessor</h4>
-<pre>private&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html#line.319">FileWriteAccessor</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html#line.323">FileWriteAccessor</a>()</pre>
 </li>
 </ul>
 </li>
@@ -202,19 +202,19 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">
+<a name="access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>access</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html#line.321">access</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuffer,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html#line.325">access</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
+                  <a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
                   long&nbsp;accessOffset)
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">access</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a></code></dd>
+<dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a></code></dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html
index 835df19..f995a1d 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html
@@ -239,8 +239,8 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#accessFile-org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.FileAccessor-java.nio.ByteBuffer-long-">accessFile</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a>&nbsp;accessor,
-          <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#accessFile-org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.FileAccessor-org.apache.hadoop.hbase.nio.ByteBuff-long-">accessFile</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a>&nbsp;accessor,
+          <a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
           long&nbsp;globalOffset)</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
@@ -304,7 +304,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 </tr>
 <tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#write-org.apache.hadoop.hbase.nio.ByteBuff-long-">write</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;srcBuffer,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#write-org.apache.hadoop.hbase.nio.ByteBuff-long-">write</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;srcBuff,
      long&nbsp;offset)</code>
 <div class="block">Transfers the data from the given MultiByteBuffer to IOEngine</div>
 </td>
@@ -520,7 +520,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockList">
 <li class="blockList">
 <h4>closeFileChannels</h4>
-<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.149">closeFileChannels</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.154">closeFileChannels</a>()</pre>
 </li>
 </ul>
 <a name="write-java.nio.ByteBuffer-long-">
@@ -529,7 +529,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockList">
 <li class="blockList">
 <h4>write</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.166">write</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;srcBuffer,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.171">write</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;srcBuffer,
                   long&nbsp;offset)
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Transfers data from the given byte buffer to file</div>
@@ -550,7 +550,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockList">
 <li class="blockList">
 <h4>sync</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.178">sync</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.180">sync</a>()
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Sync the data to file after writing</div>
 <dl>
@@ -567,7 +567,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.195">shutdown</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.197">shutdown</a>()</pre>
 <div class="block">Close the file</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -581,7 +581,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockList">
 <li class="blockList">
 <h4>write</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.211">write</a>(<a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;srcBuffer,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.213">write</a>(<a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;srcBuff,
                   long&nbsp;offset)
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.html#write-org.apache.hadoop.hbase.nio.ByteBuff-long-">IOEngine</a></code></span></div>
@@ -590,21 +590,21 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.html#write-org.apache.hadoop.hbase.nio.ByteBuff-long-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">IOEngine</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>srcBuffer</code> - the given MultiBytebufffers from which bytes are to be read</dd>
+<dd><code>srcBuff</code> - the given MultiBytebufffers from which bytes are to be read</dd>
 <dd><code>offset</code> - the offset in the IO engine where the first byte to be written</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="accessFile-org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.FileAccessor-java.nio.ByteBuffer-long-">
+<a name="accessFile-org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.FileAccessor-org.apache.hadoop.hbase.nio.ByteBuff-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>accessFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.216">accessFile</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a>&nbsp;accessor,
-                        <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.220">accessFile</a>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileAccessor</a>&nbsp;accessor,
+                        <a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
                         long&nbsp;globalOffset)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -619,7 +619,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockList">
 <li class="blockList">
 <h4>getAbsoluteOffsetInFile</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.262">getAbsoluteOffsetInFile</a>(int&nbsp;fileNum,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.266">getAbsoluteOffsetInFile</a>(int&nbsp;fileNum,
                                      long&nbsp;globalOffset)</pre>
 <div class="block">Get the absolute offset in given file with the relative global offset.</div>
 <dl>
@@ -637,7 +637,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileNum</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.266">getFileNum</a>(long&nbsp;offset)</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.270">getFileNum</a>(long&nbsp;offset)</pre>
 </li>
 </ul>
 <a name="getFileChannels--">
@@ -646,7 +646,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileChannels</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>[]&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.279">getFileChannels</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>[]&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.283">getFileChannels</a>()</pre>
 </li>
 </ul>
 <a name="refreshFileConnection-int-java.io.IOException-">
@@ -655,7 +655,7 @@ implements <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket
 <ul class="blockListLast">
 <li class="blockList">
 <h4>refreshFileConnection</h4>
-<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.284">refreshFileConnection</a>(int&nbsp;accessFileNum,
+<pre>void&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.288">refreshFileConnection</a>(int&nbsp;accessFileNum,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;ioe)
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/FileIOEngine.FileAccessor.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/FileIOEngine.FileAccessor.html
index 0e49d31..ce0d4be 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/FileIOEngine.FileAccessor.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/FileIOEngine.FileAccessor.html
@@ -124,8 +124,8 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">FileIOEngine.</span><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#accessFile-org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.FileAccessor-java.nio.ByteBuffer-long-">accessFile</a></span>(<a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">FileIO [...]
-          <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer,
+<td class="colLast"><span class="typeNameLabel">FileIOEngine.</span><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#accessFile-org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.FileAccessor-org.apache.hadoop.hbase.nio.ByteBuff-long-">accessFile</a></span>(<a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfi [...]
+          <a href="../../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
           long&nbsp;globalOffset)</code>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.html
index 2ca63ef..4e16d01 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.html
@@ -516,6 +516,10 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BucketEntry.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#wrapAsCacheable-org.apache.hadoop.hbase.nio.ByteBuff-">wrapAsCacheable</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></td>
 <td class="colLast"><span class="typeNameLabel">BucketEntry.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#wrapAsCacheable-java.nio.ByteBuffer:A-">wrapAsCacheable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers)</code>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index 654c5f6..0fbe0bc 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -298,11 +298,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 53b29e4..148fecd 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -353,9 +353,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index cd1c3bb..4250cf5 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -296,9 +296,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
index b988a3c..b3e7c99 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
@@ -151,8 +151,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.TransitionType.html" title="enum in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TransitRegionStateProcedure.TransitionType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerState.html" title="enum in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">ServerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.TransitionType.html" title="enum in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TransitRegionStateProcedure.TransitionType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index 7407ed4..c91e12b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -359,12 +359,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.ServerLiveState.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">ServerManager.ServerLiveState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.ServerLiveState.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">ServerManager.ServerLiveState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index b520e16..5c4442f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -216,10 +216,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html b/devapidocs/org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html
similarity index 52%
copy from devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html
copy to devapidocs/org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html
index 5425d28..e8e7a28 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html
+++ b/devapidocs/org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html
@@ -4,15 +4,15 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>FileIOEngine.FileAccessor (Apache HBase 3.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../../../script.js"></script>
+<title>ByteBuff.ChannelReader (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="FileIOEngine.FileAccessor (Apache HBase 3.0.0-SNAPSHOT API)";
+            parent.document.title="ByteBuff.ChannelReader (Apache HBase 3.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
@@ -37,27 +37,27 @@ var activeTableTab = "activeTableTab";
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/FileIOEngine.FileAccessor.html">Use</a></li>
+<li><a href="class-use/ByteBuff.ChannelReader.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../../help-doc.html">Help</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
 </ul>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" target="_top">Frames</a></li>
-<li><a href="FileIOEngine.FileAccessor.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" target="_top">Frames</a></li>
+<li><a href="ByteBuff.ChannelReader.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -92,24 +92,26 @@ var activeTableTab = "activeTableTab";
 <!-- ========= END OF TOP NAVBAR ========= -->
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.io.hfile.bucket</div>
-<h2 title="Interface FileIOEngine.FileAccessor" class="title">Interface FileIOEngine.FileAccessor</h2>
+<div class="subTitle">org.apache.hadoop.hbase.nio</div>
+<h2 title="Interface ByteBuff.ChannelReader" class="title">Interface ByteBuff.ChannelReader</h2>
 </div>
 <div class="contentContainer">
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
 <dl>
-<dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileReadAccessor</a>, <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine.FileWriteAccessor</a></dd>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></dd>
 </dl>
 <dl>
-<dt>Enclosing class:</dt>
-<dd><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine</a></dd>
+<dt>Functional Interface:</dt>
+<dd>This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.</dd>
 </dl>
 <hr>
 <br>
-<pre>private static interface <a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#line.306">FileIOEngine.FileAccessor</a></pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang">@FunctionalInterface</a>
+static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.468">ByteBuff.ChannelReader</a></pre>
+<div class="block">function interface for Channel read</div>
 </li>
 </ul>
 </div>
@@ -130,9 +132,9 @@ var activeTableTab = "activeTableTab";
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">access</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
-      <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuffer,
-      long&nbsp;accessOffset)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html#read-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-long-">read</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
+    long&nbsp;offset)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -149,16 +151,16 @@ var activeTableTab = "activeTableTab";
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="access-java.nio.channels.FileChannel-java.nio.ByteBuffer-long-">
+<a name="read-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-long-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>access</h4>
-<pre>int&nbsp;<a href="../../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#line.307">access</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
-           <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuffer,
-           long&nbsp;accessOffset)
-    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<h4>read</h4>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html#line.469">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
+         long&nbsp;offset)
+  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
@@ -181,27 +183,27 @@ var activeTableTab = "activeTableTab";
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/FileIOEngine.FileAccessor.html">Use</a></li>
+<li><a href="class-use/ByteBuff.ChannelReader.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../../help-doc.html">Help</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
 </ul>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" target="_top">Frames</a></li>
-<li><a href="FileIOEngine.FileAccessor.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" target="_top">Frames</a></li>
+<li><a href="ByteBuff.ChannelReader.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
diff --git a/devapidocs/org/apache/hadoop/hbase/nio/ByteBuff.html b/devapidocs/org/apache/hadoop/hbase/nio/ByteBuff.html
index b901474..121f62b 100644
--- a/devapidocs/org/apache/hadoop/hbase/nio/ByteBuff.html
+++ b/devapidocs/org/apache/hadoop/hbase/nio/ByteBuff.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":9,"i6":10,"i7":9,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":9,"i43":9,"i44":10,"i45":10,"i46":6,"i47":6,"i48":6,"i49":6,"i50":6,"i51":10,"i52":6,"i53":10,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i [...]
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":10,"i6":9,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":9,"i43":9,"i44":9,"i45":10,"i46":10,"i47":6,"i48":6,"i49":6,"i50":6,"i51":6,"i52":10,"i53":6,"i54":10,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i [...]
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li>Prev&nbsp;Class</li>
-<li><a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/nio/ByteBuff.html" target="_top">Frames</a></li>
@@ -74,7 +74,7 @@ var activeTableTab = "activeTableTab";
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.60">ByteBuff</a>
+public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.61">ByteBuff</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio">HBaseReferenceCounted</a></pre>
 <div class="block">An abstract class that abstracts out as to how the byte buffers are used, either single or
@@ -150,6 +150,27 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) static interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></span></code>
+<div class="block">function interface for Channel read</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
 <!-- =========== FIELD SUMMARY =========== -->
 <ul class="blockList">
 <li class="blockList"><a name="field.summary">
@@ -163,6 +184,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#CHANNEL_READER">CHANNEL_READER</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#FILE_READER">FILE_READER</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#NIO_BUFFER_LIMIT">NIO_BUFFER_LIMIT</a></span></code>&nbsp;</td>
 </tr>
@@ -233,17 +262,12 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#capacity--">capacity</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
-<td class="colFirst"><code>static int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-">channelRead</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
-           <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)</code>&nbsp;</td>
-</tr>
-<tr id="i6" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#checkRefCount--">checkRefCount</a></span>()</code>
 <div class="block">Methods for reference count</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#compareTo-org.apache.hadoop.hbase.nio.ByteBuff-int-int-org.apache.hadoop.hbase.nio.ByteBuff-int-int-">compareTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf1,
          int&nbsp;o1,
@@ -254,25 +278,25 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <div class="block">Compares two ByteBuffs</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#duplicate--">duplicate</a></span>()</code>
 <div class="block">Returns an ByteBuff which is a duplicate version of this ByteBuff.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>abstract byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get--">get</a></span>()</code>
 <div class="block">A relative method that returns byte at the current position.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get-byte:A-">get</a></span>(byte[]&nbsp;dst)</code>
 <div class="block">Copies the content from this ByteBuff's current position to the byte array and fills it.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get-byte:A-int-int-">get</a></span>(byte[]&nbsp;dst,
    int&nbsp;offset,
@@ -281,7 +305,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
  the byte[]'s offset.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get-java.nio.ByteBuffer-int-int-">get</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;out,
    int&nbsp;sourceOffset,
@@ -291,13 +315,13 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
  for this ByteBuff</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>abstract byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get-int-">get</a></span>(int&nbsp;index)</code>
 <div class="block">Fetches the byte at the given index.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get-int-byte:A-int-int-">get</a></span>(int&nbsp;sourceOffset,
    byte[]&nbsp;dst,
@@ -307,127 +331,127 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
  the byte[]'s offset.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>abstract byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getByteAfterPosition-int-">getByteAfterPosition</a></span>(int&nbsp;offset)</code>
 <div class="block">Fetches the byte at the given offset from current position.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getInt--">getInt</a></span>()</code>
 <div class="block">Returns the int value at the current position.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getInt-int-">getInt</a></span>(int&nbsp;index)</code>
 <div class="block">Fetches the int at the given index.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getIntAfterPosition-int-">getIntAfterPosition</a></span>(int&nbsp;offset)</code>
 <div class="block">Fetches the int value at the given offset from current position.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>abstract long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getLong--">getLong</a></span>()</code>
 <div class="block">Returns the long value at the current position.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>abstract long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getLong-int-">getLong</a></span>(int&nbsp;index)</code>
 <div class="block">Fetches the long at the given index.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>abstract long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getLongAfterPosition-int-">getLongAfterPosition</a></span>(int&nbsp;offset)</code>
 <div class="block">Fetches the long value at the given offset from current position.</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>abstract short</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getShort--">getShort</a></span>()</code>
 <div class="block">Returns the short value at the current position.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>abstract short</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getShort-int-">getShort</a></span>(int&nbsp;index)</code>
 <div class="block">Fetches the short value at the given index.</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>abstract short</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getShortAfterPosition-int-">getShortAfterPosition</a></span>(int&nbsp;offset)</code>
 <div class="block">Fetches the short value at the given offset from current position.</div>
 </td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>abstract boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#hasArray--">hasArray</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>abstract boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#hasRemaining--">hasRemaining</a></span>()</code>
 <div class="block">Returns true if there are elements between the current position and the limt</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#limit--">limit</a></span>()</code>
 <div class="block">Returns the limit of this ByteBuff</div>
 </td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
 <div class="block">Marks the limit of this ByteBuff.</div>
 </td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#mark--">mark</a></span>()</code>
 <div class="block">Marks the current position of the ByteBuff</div>
 </td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#moveBack-int-">moveBack</a></span>(int&nbsp;len)</code>
 <div class="block">Jumps back the current position of this ByteBuff by specified length.</div>
 </td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#nioByteBuffers--">nioByteBuffers</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#position--">position</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#position-int-">position</a></span>(int&nbsp;position)</code>
 <div class="block">Sets this ByteBuff's position to the given value.</div>
 </td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#put-byte-">put</a></span>(byte&nbsp;b)</code>
 <div class="block">Writes a byte to this ByteBuff at the current position and increments the position</div>
 </td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#put-byte:A-">put</a></span>(byte[]&nbsp;src)</code>
 <div class="block">Copies from the given byte[] to this ByteBuff</div>
 </td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#put-byte:A-int-int-">put</a></span>(byte[]&nbsp;src,
    int&nbsp;offset,
@@ -435,14 +459,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <div class="block">Copies from the given byte[] to this ByteBuff</div>
 </td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#put-int-byte-">put</a></span>(int&nbsp;index,
    byte&nbsp;b)</code>
 <div class="block">Writes a byte to this ByteBuff at the given index</div>
 </td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#put-int-org.apache.hadoop.hbase.nio.ByteBuff-int-int-">put</a></span>(int&nbsp;offset,
    <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;src,
@@ -451,18 +475,25 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <div class="block">Copies the contents from the src ByteBuff to this ByteBuff.</div>
 </td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#putInt-int-">putInt</a></span>(int&nbsp;value)</code>
 <div class="block">Writes an int to this ByteBuff at its current position.</div>
 </td>
 </tr>
-<tr id="i40" class="altColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#putLong-long-">putLong</a></span>(long&nbsp;value)</code>
 <div class="block">Writes a long to this ByteBuff at its current position.</div>
 </td>
 </tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>abstract int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.FileChannel-long-">read</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+    long&nbsp;offset)</code>
+<div class="block">Reads bytes from FileChannel into this ByteBuff</div>
+</td>
+</tr>
 <tr id="i41" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.ReadableByteChannel-">read</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel)</code>
@@ -471,64 +502,71 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 </tr>
 <tr id="i42" class="altColor">
 <td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-long-org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader-">read</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
+    long&nbsp;offset,
+    <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a>&nbsp;reader)</code>&nbsp;</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#readCompressedInt-org.apache.hadoop.hbase.nio.ByteBuff-">readCompressedInt</a></span>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf)</code>
 <div class="block">Read integer from ByteBuff coded in 7 bits and increment position.</div>
 </td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#readLong-org.apache.hadoop.hbase.nio.ByteBuff-int-">readLong</a></span>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;in,
         int&nbsp;fitInBytes)</code>
 <div class="block">Read long which was written to fitInBytes bytes and increment position.</div>
 </td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#refCnt--">refCnt</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i46" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#release--">release</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#remaining--">remaining</a></span>()</code>
 <div class="block">Returns the number of elements between the current position and the
  limit.</div>
 </td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#reset--">reset</a></span>()</code>
 <div class="block">Similar to <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a>.reset(), ensures that this ByteBuff
  is reset back to last marked position.</div>
 </td>
 </tr>
-<tr id="i48" class="altColor">
+<tr id="i49" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#rewind--">rewind</a></span>()</code>
 <div class="block">Rewinds this ByteBuff and the position is set to 0</div>
 </td>
 </tr>
-<tr id="i49" class="rowColor">
+<tr id="i50" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#skip-int-">skip</a></span>(int&nbsp;len)</code>
 <div class="block">Jumps the current position of this ByteBuff by specified length.</div>
 </td>
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#slice--">slice</a></span>()</code>
 <div class="block">Returns an ByteBuff which is a sliced version of this ByteBuff.</div>
 </td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i52" class="altColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#toBytes--">toBytes</a></span>()</code>
 <div class="block">Copy the content from this ByteBuff to a byte[].</div>
 </td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i53" class="rowColor">
 <td class="colFirst"><code>abstract byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#toBytes-int-int-">toBytes</a></span>(int&nbsp;offset,
        int&nbsp;length)</code>
@@ -536,24 +574,24 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
  length</div>
 </td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i54" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#wrap-java.nio.ByteBuffer-">wrap</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer)</code>&nbsp;</td>
 </tr>
-<tr id="i55" class="rowColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#wrap-java.nio.ByteBuffer:A-">wrap</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers)</code>&nbsp;</td>
 </tr>
-<tr id="i56" class="altColor">
+<tr id="i57" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#wrap-java.nio.ByteBuffer:A-org.apache.hadoop.hbase.io.ByteBuffAllocator.Recycler-">wrap</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers,
     <a href="../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a>&nbsp;recycler)</code>&nbsp;</td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i58" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#wrap-java.nio.ByteBuffer:A-org.apache.hadoop.hbase.nio.RefCnt-">wrap</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers,
     <a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt)</code>
@@ -561,29 +599,36 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
  please don't use this public method in other place.</div>
 </td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i59" class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#wrap-java.nio.ByteBuffer-org.apache.hadoop.hbase.nio.RefCnt-">wrap</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer,
     <a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt)</code>
 <div class="block">Make this private because we don't want to expose the refCnt related wrap method to upstream.</div>
 </td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i60" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#wrap-java.util.List-">wrap</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;buffers)</code>&nbsp;</td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#wrap-java.util.List-org.apache.hadoop.hbase.io.ByteBuffAllocator.Recycler-">wrap</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteB [...]
     <a href="../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a>&nbsp;recycler)</code>&nbsp;</td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#wrap-java.util.List-org.apache.hadoop.hbase.nio.RefCnt-">wrap</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp; [...]
     <a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt)</code>
 <div class="block">Make this private because we don't want to expose the refCnt related wrap method to upstream.</div>
 </td>
 </tr>
+<tr id="i63" class="rowColor">
+<td class="colFirst"><code>abstract int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#write-java.nio.channels.FileChannel-long-">write</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+     long&nbsp;offset)</code>
+<div class="block">Write this ByteBuff's data into target file</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -626,7 +671,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>REFERENCE_COUNT_NAME</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.61">REFERENCE_COUNT_NAME</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.62">REFERENCE_COUNT_NAME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.nio.ByteBuff.REFERENCE_COUNT_NAME">Constant Field Values</a></dd>
@@ -639,7 +684,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>NIO_BUFFER_LIMIT</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.62">NIO_BUFFER_LIMIT</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.63">NIO_BUFFER_LIMIT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.nio.ByteBuff.NIO_BUFFER_LIMIT">Constant Field Values</a></dd>
@@ -649,10 +694,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <a name="refCnt">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>refCnt</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.64">refCnt</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.65">refCnt</a></pre>
+</li>
+</ul>
+<a name="CHANNEL_READER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CHANNEL_READER</h4>
+<pre>static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.472">CHANNEL_READER</a></pre>
+</li>
+</ul>
+<a name="FILE_READER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FILE_READER</h4>
+<pre>static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.476">FILE_READER</a></pre>
 </li>
 </ul>
 </li>
@@ -669,7 +732,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ByteBuff</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.60">ByteBuff</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.61">ByteBuff</a>()</pre>
 </li>
 </ul>
 </li>
@@ -686,7 +749,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>checkRefCount</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.68">checkRefCount</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.69">checkRefCount</a>()</pre>
 <div class="block">Methods for reference count</div>
 </li>
 </ul>
@@ -696,7 +759,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>refCnt</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.72">refCnt</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.73">refCnt</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>refCnt</code>&nbsp;in interface&nbsp;<code>org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</code></dd>
@@ -709,7 +772,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>release</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.77">release</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.78">release</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>release</code>&nbsp;in interface&nbsp;<code>org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</code></dd>
@@ -722,7 +785,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>position</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.86">position</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.87">position</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>this ByteBuff's current position</dd>
@@ -735,7 +798,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>position</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.93">position</a>(int&nbsp;position)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.94">position</a>(int&nbsp;position)</pre>
 <div class="block">Sets this ByteBuff's position to the given value.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -751,7 +814,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>skip</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.99">skip</a>(int&nbsp;len)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.100">skip</a>(int&nbsp;len)</pre>
 <div class="block">Jumps the current position of this ByteBuff by specified length.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -765,7 +828,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>moveBack</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.105">moveBack</a>(int&nbsp;len)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.106">moveBack</a>(int&nbsp;len)</pre>
 <div class="block">Jumps back the current position of this ByteBuff by specified length.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -779,7 +842,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>capacity</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.110">capacity</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.111">capacity</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the total capacity of this ByteBuff.</dd>
@@ -792,7 +855,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>limit</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.116">limit</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.117">limit</a>()</pre>
 <div class="block">Returns the limit of this ByteBuff</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -806,7 +869,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>limit</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.123">limit</a>(int&nbsp;limit)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.124">limit</a>(int&nbsp;limit)</pre>
 <div class="block">Marks the limit of this ByteBuff.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -822,7 +885,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>rewind</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.129">rewind</a>()</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.130">rewind</a>()</pre>
 <div class="block">Rewinds this ByteBuff and the position is set to 0</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -836,7 +899,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>mark</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.135">mark</a>()</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.136">mark</a>()</pre>
 <div class="block">Marks the current position of the ByteBuff</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -850,7 +913,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>asSubByteBuffer</h4>
-<pre>public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.148">asSubByteBuffer</a>(int&nbsp;length)</pre>
+<pre>public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.149">asSubByteBuffer</a>(int&nbsp;length)</pre>
 <div class="block">Returns bytes from current position till length specified, as a single ByteBuffer. When all
  these bytes happen to be in a single ByteBuffer, which this object wraps, that ByteBuffer item
  as such will be returned. So users are warned not to change the position or limit of this
@@ -871,7 +934,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>asSubByteBuffer</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.167">asSubByteBuffer</a>(int&nbsp;offset,
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.168">asSubByteBuffer</a>(int&nbsp;offset,
                                      int&nbsp;length,
                                      <a href="../../../../../org/apache/hadoop/hbase/util/ObjectIntPair.html" title="class in org.apache.hadoop.hbase.util">ObjectIntPair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;pair)</pre>
 <div class="block">Returns bytes from given offset till length specified, as a single ByteBuffer. When all these
@@ -899,7 +962,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>remaining</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.174">remaining</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.175">remaining</a>()</pre>
 <div class="block">Returns the number of elements between the current position and the
  limit.</div>
 <dl>
@@ -914,7 +977,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>hasRemaining</h4>
-<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.180">hasRemaining</a>()</pre>
+<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.181">hasRemaining</a>()</pre>
 <div class="block">Returns true if there are elements between the current position and the limt</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -928,7 +991,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>reset</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.187">reset</a>()</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.188">reset</a>()</pre>
 <div class="block">Similar to <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a>.reset(), ensures that this ByteBuff
  is reset back to last marked position.</div>
 <dl>
@@ -943,7 +1006,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>slice</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.195">slice</a>()</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.196">slice</a>()</pre>
 <div class="block">Returns an ByteBuff which is a sliced version of this ByteBuff. The position, limit and mark
  of the new ByteBuff will be independent than that of the original ByteBuff.
  The content of the new ByteBuff will start at this ByteBuff's current position</div>
@@ -959,7 +1022,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>duplicate</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.206">duplicate</a>()</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.207">duplicate</a>()</pre>
 <div class="block">Returns an ByteBuff which is a duplicate version of this ByteBuff. The
  position, limit and mark of the new ByteBuff will be independent than that
  of the original ByteBuff. The content of the new ByteBuff will start at
@@ -977,7 +1040,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public abstract&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.213">get</a>()</pre>
+<pre>public abstract&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.214">get</a>()</pre>
 <div class="block">A relative method that returns byte at the current position.  Increments the
  current position by the size of a byte.</div>
 <dl>
@@ -992,7 +1055,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public abstract&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.220">get</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.221">get</a>(int&nbsp;index)</pre>
 <div class="block">Fetches the byte at the given index. Does not change position of the underlying ByteBuffers</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1008,7 +1071,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>getByteAfterPosition</h4>
-<pre>public abstract&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.229">getByteAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public abstract&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.230">getByteAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block">Fetches the byte at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
 <dl>
@@ -1025,7 +1088,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.236">put</a>(byte&nbsp;b)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.237">put</a>(byte&nbsp;b)</pre>
 <div class="block">Writes a byte to this ByteBuff at the current position and increments the position</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1041,7 +1104,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.244">put</a>(int&nbsp;index,
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.245">put</a>(int&nbsp;index,
                              byte&nbsp;b)</pre>
 <div class="block">Writes a byte to this ByteBuff at the given index</div>
 <dl>
@@ -1059,7 +1122,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.253">get</a>(byte[]&nbsp;dst,
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.254">get</a>(byte[]&nbsp;dst,
                          int&nbsp;offset,
                          int&nbsp;length)</pre>
 <div class="block">Copies the specified number of bytes from this ByteBuff's current position to
@@ -1078,7 +1141,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.263">get</a>(int&nbsp;sourceOffset,
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.264">get</a>(int&nbsp;sourceOffset,
                          byte[]&nbsp;dst,
                          int&nbsp;offset,
                          int&nbsp;length)</pre>
@@ -1099,7 +1162,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.270">get</a>(byte[]&nbsp;dst)</pre>
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.271">get</a>(byte[]&nbsp;dst)</pre>
 <div class="block">Copies the content from this ByteBuff's current position to the byte array and fills it. Also
  advances the position of the ByteBuff by the length of the byte[].</div>
 <dl>
@@ -1114,7 +1177,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.279">put</a>(byte[]&nbsp;src,
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.280">put</a>(byte[]&nbsp;src,
                              int&nbsp;offset,
                              int&nbsp;length)</pre>
 <div class="block">Copies from the given byte[] to this ByteBuff</div>
@@ -1134,7 +1197,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.286">put</a>(byte[]&nbsp;src)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.287">put</a>(byte[]&nbsp;src)</pre>
 <div class="block">Copies from the given byte[] to this ByteBuff</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1150,7 +1213,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>hasArray</h4>
-<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.291">hasArray</a>()</pre>
+<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.292">hasArray</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true or false if the underlying BB support hasArray</dd>
@@ -1163,7 +1226,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>array</h4>
-<pre>public abstract&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.296">array</a>()</pre>
+<pre>public abstract&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.297">array</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the byte[] if the underlying BB has single BB and hasArray true</dd>
@@ -1176,7 +1239,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>arrayOffset</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.301">arrayOffset</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.302">arrayOffset</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the arrayOffset of the byte[] incase of a single BB backed ByteBuff</dd>
@@ -1189,7 +1252,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>getShort</h4>
-<pre>public abstract&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.309">getShort</a>()</pre>
+<pre>public abstract&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.310">getShort</a>()</pre>
 <div class="block">Returns the short value at the current position. Also advances the position by the size
  of short</div>
 <dl>
@@ -1204,7 +1267,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>getShort</h4>
-<pre>public abstract&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.321">getShort</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.322">getShort</a>(int&nbsp;index)</pre>
 <div class="block">Fetches the short value at the given index. Does not change position of the
  underlying ByteBuffers. The caller is sure that the index will be after
  the current position of this ByteBuff. So even if the current short does not fit in the
@@ -1224,7 +1287,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>getShortAfterPosition</h4>
-<pre>public abstract&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.330">getShortAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public abstract&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.331">getShortAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block">Fetches the short value at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
 <dl>
@@ -1241,7 +1304,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>getInt</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.337">getInt</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.338">getInt</a>()</pre>
 <div class="block">Returns the int value at the current position. Also advances the position by the size of int</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1255,7 +1318,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>putInt</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.345">putInt</a>(int&nbsp;value)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.346">putInt</a>(int&nbsp;value)</pre>
 <div class="block">Writes an int to this ByteBuff at its current position. Also advances the position
  by size of int</div>
 <dl>
@@ -1272,7 +1335,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>getInt</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.356">getInt</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.357">getInt</a>(int&nbsp;index)</pre>
 <div class="block">Fetches the int at the given index. Does not change position of the underlying ByteBuffers.
  Even if the current int does not fit in the
  current item we can safely move to the next item and fetch the remaining bytes forming
@@ -1291,7 +1354,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>getIntAfterPosition</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.365">getIntAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.366">getIntAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block">Fetches the int value at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
 <dl>
@@ -1308,7 +1371,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>getLong</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.372">getLong</a>()</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.373">getLong</a>()</pre>
 <div class="block">Returns the long value at the current position. Also advances the position by the size of long</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1322,7 +1385,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>putLong</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.380">putLong</a>(long&nbsp;value)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.381">putLong</a>(long&nbsp;value)</pre>
 <div class="block">Writes a long to this ByteBuff at its current position.
  Also advances the position by size of long</div>
 <dl>
@@ -1339,7 +1402,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>getLong</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.392">getLong</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.393">getLong</a>(int&nbsp;index)</pre>
 <div class="block">Fetches the long at the given index. Does not change position of the
  underlying ByteBuffers. The caller is sure that the index will be after
  the current position of this ByteBuff. So even if the current long does not fit in the
@@ -1359,7 +1422,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>getLongAfterPosition</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.401">getLongAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.402">getLongAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block">Fetches the long value at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
 <dl>
@@ -1376,7 +1439,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>toBytes</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.407">toBytes</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.408">toBytes</a>()</pre>
 <div class="block">Copy the content from this ByteBuff to a byte[].</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1390,7 +1453,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>toBytes</h4>
-<pre>public abstract&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.421">toBytes</a>(int&nbsp;offset,
+<pre>public abstract&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.422">toBytes</a>(int&nbsp;offset,
                                int&nbsp;length)</pre>
 <div class="block">Copy the content from this ByteBuff to a byte[] based on the given offset and
  length</div>
@@ -1409,7 +1472,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.432">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;out,
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.433">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;out,
                          int&nbsp;sourceOffset,
                          int&nbsp;length)</pre>
 <div class="block">Copies the content from this ByteBuff to a ByteBuffer
@@ -1430,7 +1493,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.443">put</a>(int&nbsp;offset,
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.444">put</a>(int&nbsp;offset,
                              <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;src,
                              int&nbsp;srcOffset,
                              int&nbsp;length)</pre>
@@ -1452,7 +1515,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>read</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.451">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel)
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.452">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Reads bytes from the given channel into this ByteBuff</div>
 <dl>
@@ -1465,15 +1528,49 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 </dl>
 </li>
 </ul>
-<a name="channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-">
+<a name="read-java.nio.channels.FileChannel-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.457">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+                         long&nbsp;offset)
+                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Reads bytes from FileChannel into this ByteBuff</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="write-java.nio.channels.FileChannel-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>channelRead</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.454">channelRead</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
-                              <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)
-                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<h4>write</h4>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.462">write</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+                          long&nbsp;offset)
+                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Write this ByteBuff's data into target file</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="read-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-long-org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.481">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
+                       long&nbsp;offset,
+                       <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a>&nbsp;reader)
+                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
@@ -1486,7 +1583,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>readCompressedInt</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.482">readCompressedInt</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf)</pre>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.511">readCompressedInt</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf)</pre>
 <div class="block">Read integer from ByteBuff coded in 7 bits and increment position.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1500,7 +1597,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>compareTo</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.503">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf1,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.532">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf1,
                             int&nbsp;o1,
                             int&nbsp;len1,
                             <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf2,
@@ -1527,7 +1624,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>readLong</h4>
-<pre>public static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.526">readLong</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;in,
+<pre>public static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.555">readLong</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;in,
                             int&nbsp;fitInBytes)</pre>
 <div class="block">Read long which was written to fitInBytes bytes and increment position.</div>
 <dl>
@@ -1544,7 +1641,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>nioByteBuffers</h4>
-<pre>public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.534">nioByteBuffers</a>()</pre>
+<pre>public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.563">nioByteBuffers</a>()</pre>
 </li>
 </ul>
 <a name="toString--">
@@ -1553,7 +1650,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.537">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.566">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1566,7 +1663,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>wrap</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.551">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.580">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers,
                             <a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt)</pre>
 <div class="block">In theory, the upstream should never construct an ByteBuff by passing an given refCnt, so
  please don't use this public method in other place. Make the method public here because the
@@ -1581,7 +1678,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>wrap</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.559">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.588">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers,
                             <a href="../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a>&nbsp;recycler)</pre>
 </li>
 </ul>
@@ -1591,7 +1688,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>wrap</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.563">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.592">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;buffers)</pre>
 </li>
 </ul>
 <a name="wrap-java.util.List-org.apache.hadoop.hbase.io.ByteBuffAllocator.Recycler-">
@@ -1600,7 +1697,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>wrap</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.567">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="cl [...]
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.596">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="cl [...]
                             <a href="../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a>&nbsp;recycler)</pre>
 </li>
 </ul>
@@ -1610,7 +1707,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>wrap</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.571">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="cl [...]
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.600">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="cl [...]
 </li>
 </ul>
 <a name="wrap-java.nio.ByteBuffer-">
@@ -1619,7 +1716,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>wrap</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.575">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.604">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer)</pre>
 </li>
 </ul>
 <a name="wrap-java.util.List-org.apache.hadoop.hbase.nio.RefCnt-">
@@ -1628,7 +1725,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockList">
 <li class="blockList">
 <h4>wrap</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.582">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="c [...]
+<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.611">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="c [...]
                              <a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt)</pre>
 <div class="block">Make this private because we don't want to expose the refCnt related wrap method to upstream.</div>
 </li>
@@ -1639,7 +1736,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <ul class="blockListLast">
 <li class="blockList">
 <h4>wrap</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.593">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer,
+<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/ByteBuff.html#line.622">wrap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer,
                              <a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt)</pre>
 <div class="block">Make this private because we don't want to expose the refCnt related wrap method to upstream.</div>
 </li>
@@ -1673,7 +1770,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <div class="subNav">
 <ul class="navList">
 <li>Prev&nbsp;Class</li>
-<li><a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/nio/ByteBuff.html" target="_top">Frames</a></li>
@@ -1697,7 +1794,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCou
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html b/devapidocs/org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html
index a6df7b7..04c282b 100644
--- a/devapidocs/org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html
+++ b/devapidocs/org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -254,7 +254,7 @@ extends org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/devapidocs/org/apache/hadoop/hbase/nio/MultiByteBuff.html b/devapidocs/org/apache/hadoop/hbase/nio/MultiByteBuff.html
index b627567..075bc80 100644
--- a/devapidocs/org/apache/hadoop/hbase/nio/MultiByteBuff.html
+++ b/devapidocs/org/apache/hadoop/hbase/nio/MultiByteBuff.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":9,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":9,"i33":9,"i34":9,"i35":9,"i36":10,"i37":10,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55" [...]
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":9,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":9,"i33":9,"i34":9,"i35":9,"i36":10,"i37":10,"i38":10,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55" [...]
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -74,7 +74,7 @@ var activeTableTab = "activeTableTab";
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.hadoop.hbase.nio.ByteBuff">Nested</a>&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.43">MultiByteBuff</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.46">MultiByteBuff</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></pre>
 <div class="block">Provides a unified view of all the underlying ByteBuffers and will look as if a bigger
  sequential buffer. This class provides similar APIs as in <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a> to put/get int,
@@ -132,6 +132,21 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.nio.ByteBuff">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.nio.<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></code></li>
+</ul>
+</li>
+</ul>
 <!-- =========== FIELD SUMMARY =========== -->
 <ul class="blockList">
 <li class="blockList"><a name="field.summary">
@@ -145,30 +160,34 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#buffsIterator">buffsIterator</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#curItem">curItem</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#curItemIndex">curItemIndex</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private int[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#itemBeginPos">itemBeginPos</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#items">items</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#limit">limit</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#limitedItemIndex">limitedItemIndex</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#markedItemIndex">markedItemIndex</a></span></code>&nbsp;</td>
 </tr>
@@ -178,7 +197,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.nio.<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#refCnt">refCnt</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#CHANNEL_READER">CHANNEL_READER</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#FILE_READER">FILE_READER</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#refCnt">refCnt</a></code></li>
 </ul>
 </li>
 </ul>
@@ -432,88 +451,94 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#int3-int-">int3</a></span>(int&nbsp;x)</code>&nbsp;</td>
 </tr>
 <tr id="i36" class="altColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#internalRead-java.nio.channels.ReadableByteChannel-long-org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader-">internalRead</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
+            long&nbsp;offset,
+            <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a>&nbsp;reader)</code>&nbsp;</td>
+</tr>
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#limit--">limit</a></span>()</code>
 <div class="block">Returns the limit of this MBB</div>
 </td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
 <div class="block">Marks the limit of this MBB.</div>
 </td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code>private static byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#long0-long-">long0</a></span>(long&nbsp;x)</code>&nbsp;</td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i40" class="altColor">
 <td class="colFirst"><code>private static byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#long1-long-">long1</a></span>(long&nbsp;x)</code>&nbsp;</td>
 </tr>
-<tr id="i40" class="altColor">
+<tr id="i41" class="rowColor">
 <td class="colFirst"><code>private static byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#long2-long-">long2</a></span>(long&nbsp;x)</code>&nbsp;</td>
 </tr>
-<tr id="i41" class="rowColor">
+<tr id="i42" class="altColor">
 <td class="colFirst"><code>private static byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#long3-long-">long3</a></span>(long&nbsp;x)</code>&nbsp;</td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i43" class="rowColor">
 <td class="colFirst"><code>private static byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#long4-long-">long4</a></span>(long&nbsp;x)</code>&nbsp;</td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code>private static byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#long5-long-">long5</a></span>(long&nbsp;x)</code>&nbsp;</td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code>private static byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#long6-long-">long6</a></span>(long&nbsp;x)</code>&nbsp;</td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i46" class="altColor">
 <td class="colFirst"><code>private static byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#long7-long-">long7</a></span>(long&nbsp;x)</code>&nbsp;</td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#mark--">mark</a></span>()</code>
 <div class="block">Marks the current position of the MBB</div>
 </td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#moveBack-int-">moveBack</a></span>(int&nbsp;length)</code>
 <div class="block">Jumps back the current position of this MBB by specified length.</div>
 </td>
 </tr>
-<tr id="i48" class="altColor">
+<tr id="i49" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#nioByteBuffers--">nioByteBuffers</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i49" class="rowColor">
+<tr id="i50" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#position--">position</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#position-int-">position</a></span>(int&nbsp;position)</code>
 <div class="block">Sets this MBB's position to the given value.</div>
 </td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i52" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#put-byte-">put</a></span>(byte&nbsp;b)</code>
 <div class="block">Writes a byte to this MBB at the current position and increments the position</div>
 </td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i53" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#put-byte:A-">put</a></span>(byte[]&nbsp;src)</code>
 <div class="block">Copies from the given byte[] to this MBB</div>
 </td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i54" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#put-byte:A-int-int-">put</a></span>(byte[]&nbsp;src,
    int&nbsp;offset,
@@ -521,14 +546,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <div class="block">Copies from the given byte[] to this MBB</div>
 </td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#put-int-byte-">put</a></span>(int&nbsp;index,
    byte&nbsp;b)</code>
 <div class="block">Writes a byte to this MBB at the given index</div>
 </td>
 </tr>
-<tr id="i55" class="rowColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#put-int-org.apache.hadoop.hbase.nio.ByteBuff-int-int-">put</a></span>(int&nbsp;offset,
    <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;src,
@@ -537,61 +562,68 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <div class="block">Copies from a src MBB to this MBB.</div>
 </td>
 </tr>
-<tr id="i56" class="altColor">
+<tr id="i57" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#putInt-int-">putInt</a></span>(int&nbsp;val)</code>
 <div class="block">Writes an int to this MBB at its current position.</div>
 </td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i58" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#putLong-long-">putLong</a></span>(long&nbsp;val)</code>
 <div class="block">Writes a long to this MBB at its current position.</div>
 </td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#read-java.nio.channels.FileChannel-long-">read</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+    long&nbsp;offset)</code>
+<div class="block">Reads bytes from FileChannel into this ByteBuff</div>
+</td>
+</tr>
+<tr id="i60" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#read-java.nio.channels.ReadableByteChannel-">read</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel)</code>
 <div class="block">Reads bytes from the given channel into this ByteBuff</div>
 </td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#remaining--">remaining</a></span>()</code>
 <div class="block">Returns the number of elements between the current position and the
  limit.</div>
 </td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#reset--">reset</a></span>()</code>
 <div class="block">Similar to <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a>.reset(), ensures that this MBB
  is reset back to last marked position.</div>
 </td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i63" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#retain--">retain</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i62" class="altColor">
+<tr id="i64" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#rewind--">rewind</a></span>()</code>
 <div class="block">Rewinds this MBB and the position is set to 0</div>
 </td>
 </tr>
-<tr id="i63" class="rowColor">
+<tr id="i65" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#skip-int-">skip</a></span>(int&nbsp;length)</code>
 <div class="block">Jumps the current position of this MBB by specified length.</div>
 </td>
 </tr>
-<tr id="i64" class="altColor">
+<tr id="i66" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#slice--">slice</a></span>()</code>
 <div class="block">Returns an MBB which is a sliced version of this MBB.</div>
 </td>
 </tr>
-<tr id="i65" class="rowColor">
+<tr id="i67" class="rowColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#toBytes-int-int-">toBytes</a></span>(int&nbsp;offset,
        int&nbsp;length)</code>
@@ -599,13 +631,20 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
  length</div>
 </td>
 </tr>
+<tr id="i68" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#write-java.nio.channels.FileChannel-long-">write</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+     long&nbsp;offset)</code>
+<div class="block">Write this ByteBuff's data into target file</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.nio.ByteBuff">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.nio.<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-">channelRead</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#checkRefCount--">checkRefCount</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#compareTo-org.apache.hadoop.hbase.nio.ByteBuff-int-int-org.apache.hadoop.hbase.nio.ByteBuff-int-int-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbas [...]
+<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#checkRefCount--">checkRefCount</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#compareTo-org.apache.hadoop.hbase.nio.ByteBuff-int-int-org.apache.hadoop.hbase.nio.ByteBuff-int-int-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-long-org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader-">read</a>, <a h [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -641,7 +680,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>items</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.45">items</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.48">items</a></pre>
 </li>
 </ul>
 <a name="curItem">
@@ -650,7 +689,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>curItem</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.47">curItem</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.50">curItem</a></pre>
 </li>
 </ul>
 <a name="curItemIndex">
@@ -659,7 +698,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>curItemIndex</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.49">curItemIndex</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.52">curItemIndex</a></pre>
 </li>
 </ul>
 <a name="limit">
@@ -668,7 +707,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>limit</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.51">limit</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.54">limit</a></pre>
 </li>
 </ul>
 <a name="limitedItemIndex">
@@ -677,7 +716,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>limitedItemIndex</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.52">limitedItemIndex</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.55">limitedItemIndex</a></pre>
 </li>
 </ul>
 <a name="markedItemIndex">
@@ -686,16 +725,25 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>markedItemIndex</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.53">markedItemIndex</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.56">markedItemIndex</a></pre>
 </li>
 </ul>
 <a name="itemBeginPos">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>itemBeginPos</h4>
-<pre>private final&nbsp;int[] <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.54">itemBeginPos</a></pre>
+<pre>private final&nbsp;int[] <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.57">itemBeginPos</a></pre>
+</li>
+</ul>
+<a name="buffsIterator">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>buffsIterator</h4>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.59">buffsIterator</a></pre>
 </li>
 </ul>
 </li>
@@ -712,7 +760,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>MultiByteBuff</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.56">MultiByteBuff</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>...&nbsp;items)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.76">MultiByteBuff</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>...&nbsp;items)</pre>
 </li>
 </ul>
 <a name="MultiByteBuff-org.apache.hadoop.hbase.io.ByteBuffAllocator.Recycler-java.nio.ByteBuffer...-">
@@ -721,7 +769,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>MultiByteBuff</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.60">MultiByteBuff</a>(<a href="../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a>&nbsp;recycler,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.80">MultiByteBuff</a>(<a href="../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a>&nbsp;recycler,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>...&nbsp;items)</pre>
 </li>
 </ul>
@@ -731,7 +779,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>MultiByteBuff</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.64">MultiByteBuff</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.84">MultiByteBuff</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>...&nbsp;items)</pre>
 </li>
 </ul>
@@ -741,7 +789,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MultiByteBuff</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.88">MultiByteBuff</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt,
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.108">MultiByteBuff</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;items,
                       int[]&nbsp;itemBeginPos,
                       int&nbsp;limit,
@@ -764,7 +812,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>array</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.105">array</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.125">array</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#array--">array</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -782,7 +830,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>arrayOffset</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.114">arrayOffset</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.134">arrayOffset</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#arrayOffset--">arrayOffset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -800,7 +848,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>hasArray</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.122">hasArray</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.142">hasArray</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#hasArray--">hasArray</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -815,7 +863,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>capacity</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.130">capacity</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.150">capacity</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#capacity--">capacity</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -830,7 +878,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.145">get</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.165">get</a>(int&nbsp;index)</pre>
 <div class="block">Fetches the byte at the given index. Does not change position of the underlying ByteBuffers</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -848,7 +896,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getByteAfterPosition</h4>
-<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.152">getByteAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.172">getByteAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getByteAfterPosition-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the byte at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
@@ -866,7 +914,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getItemIndex</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.163">getItemIndex</a>(int&nbsp;elemIndex)</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.183">getItemIndex</a>(int&nbsp;elemIndex)</pre>
 </li>
 </ul>
 <a name="getItemIndexFromCurItemIndex-int-">
@@ -875,7 +923,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getItemIndexFromCurItemIndex</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.178">getItemIndexFromCurItemIndex</a>(int&nbsp;elemIndex)</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.198">getItemIndexFromCurItemIndex</a>(int&nbsp;elemIndex)</pre>
 </li>
 </ul>
 <a name="getInt-int-">
@@ -884,7 +932,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getInt</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.195">getInt</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.215">getInt</a>(int&nbsp;index)</pre>
 <div class="block">Fetches the int at the given index. Does not change position of the underlying ByteBuffers</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -902,7 +950,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getIntAfterPosition</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.209">getIntAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.229">getIntAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getIntAfterPosition-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the int value at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
@@ -920,7 +968,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getShort</h4>
-<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.228">getShort</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.248">getShort</a>(int&nbsp;index)</pre>
 <div class="block">Fetches the short at the given index. Does not change position of the underlying ByteBuffers</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -938,7 +986,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getShortAfterPosition</h4>
-<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.257">getShortAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.277">getShortAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getShortAfterPosition-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the short value at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
@@ -956,7 +1004,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getInt</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.270">getInt</a>(int&nbsp;index,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.290">getInt</a>(int&nbsp;index,
                    int&nbsp;itemIndex)</pre>
 </li>
 </ul>
@@ -966,7 +1014,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getShort</h4>
-<pre>private&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.289">getShort</a>(int&nbsp;index,
+<pre>private&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.309">getShort</a>(int&nbsp;index,
                        int&nbsp;itemIndex)</pre>
 </li>
 </ul>
@@ -976,7 +1024,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getLong</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.314">getLong</a>(int&nbsp;index,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.334">getLong</a>(int&nbsp;index,
                      int&nbsp;itemIndex)</pre>
 </li>
 </ul>
@@ -986,7 +1034,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getLong</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.339">getLong</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.359">getLong</a>(int&nbsp;index)</pre>
 <div class="block">Fetches the long at the given index. Does not change position of the underlying ByteBuffers</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1004,7 +1052,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getLongAfterPosition</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.353">getLongAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.373">getLongAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getLongAfterPosition-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the long value at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
@@ -1022,7 +1070,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>position</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.370">position</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.390">position</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#position--">position</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -1037,7 +1085,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>position</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.381">position</a>(int&nbsp;position)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.401">position</a>(int&nbsp;position)</pre>
 <div class="block">Sets this MBB's position to the given value.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1055,7 +1103,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>rewind</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.409">rewind</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.429">rewind</a>()</pre>
 <div class="block">Rewinds this MBB and the position is set to 0</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1071,7 +1119,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>mark</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.425">mark</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.445">mark</a>()</pre>
 <div class="block">Marks the current position of the MBB</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1087,7 +1135,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>reset</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.438">reset</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.458">reset</a>()</pre>
 <div class="block">Similar to <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a>.reset(), ensures that this MBB
  is reset back to last marked position.</div>
 <dl>
@@ -1104,7 +1152,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>remaining</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.460">remaining</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.480">remaining</a>()</pre>
 <div class="block">Returns the number of elements between the current position and the
  limit.</div>
 <dl>
@@ -1121,7 +1169,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>hasRemaining</h4>
-<pre>public final&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.474">hasRemaining</a>()</pre>
+<pre>public final&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.494">hasRemaining</a>()</pre>
 <div class="block">Returns true if there are elements between the current position and the limt</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1137,7 +1185,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.486">get</a>()</pre>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.506">get</a>()</pre>
 <div class="block">A relative method that returns byte at the current position.  Increments the
  current position by the size of a byte.</div>
 <dl>
@@ -1154,7 +1202,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getShort</h4>
-<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.506">getShort</a>()</pre>
+<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.526">getShort</a>()</pre>
 <div class="block">Returns the short value at the current position. Also advances the position by the size
  of short</div>
 <dl>
@@ -1171,7 +1219,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getInt</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.525">getInt</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.545">getInt</a>()</pre>
 <div class="block">Returns the int value at the current position. Also advances the position by the size of int</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1187,7 +1235,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getLong</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.546">getLong</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.566">getLong</a>()</pre>
 <div class="block">Returns the long value at the current position. Also advances the position by the size of long</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1203,7 +1251,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.566">get</a>(byte[]&nbsp;dst)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.586">get</a>(byte[]&nbsp;dst)</pre>
 <div class="block">Copies the content from this MBB's current position to the byte array and fills it. Also
  advances the position of the MBB by the length of the byte[].</div>
 <dl>
@@ -1220,7 +1268,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.578">get</a>(byte[]&nbsp;dst,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.598">get</a>(byte[]&nbsp;dst,
                 int&nbsp;offset,
                 int&nbsp;length)</pre>
 <div class="block">Copies the specified number of bytes from this MBB's current position to the byte[]'s offset.
@@ -1241,7 +1289,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.594">get</a>(int&nbsp;sourceOffset,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.614">get</a>(int&nbsp;sourceOffset,
                 byte[]&nbsp;dst,
                 int&nbsp;offset,
                 int&nbsp;length)</pre>
@@ -1265,7 +1313,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>limit</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.617">limit</a>(int&nbsp;limit)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.637">limit</a>(int&nbsp;limit)</pre>
 <div class="block">Marks the limit of this MBB.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1283,7 +1331,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>limit</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.646">limit</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.666">limit</a>()</pre>
 <div class="block">Returns the limit of this MBB</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1299,7 +1347,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>slice</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.657">slice</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.677">slice</a>()</pre>
 <div class="block">Returns an MBB which is a sliced version of this MBB. The position, limit and mark
  of the new MBB will be independent than that of the original MBB.
  The content of the new MBB will start at this MBB's current position</div>
@@ -1317,7 +1365,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>duplicate</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.674">duplicate</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.694">duplicate</a>()</pre>
 <div class="block">Returns an MBB which is a duplicate version of this MBB. The position, limit and mark of the
  new MBB will be independent than that of the original MBB. The content of the new MBB will
  start at this MBB's current position The position, limit and mark of the new MBB would be
@@ -1336,7 +1384,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.690">put</a>(byte&nbsp;b)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.710">put</a>(byte&nbsp;b)</pre>
 <div class="block">Writes a byte to this MBB at the current position and increments the position</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1354,7 +1402,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.710">put</a>(int&nbsp;index,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.730">put</a>(int&nbsp;index,
                          byte&nbsp;b)</pre>
 <div class="block">Writes a byte to this MBB at the given index</div>
 <dl>
@@ -1374,7 +1422,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.726">put</a>(int&nbsp;offset,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.746">put</a>(int&nbsp;offset,
                          <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;src,
                          int&nbsp;srcOffset,
                          int&nbsp;length)</pre>
@@ -1396,7 +1444,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getItemByteBuffer</h4>
-<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.762">getItemByteBuffer</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf,
+<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.782">getItemByteBuffer</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf,
                                             int&nbsp;index)</pre>
 </li>
 </ul>
@@ -1406,7 +1454,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>putInt</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.773">putInt</a>(int&nbsp;val)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.793">putInt</a>(int&nbsp;val)</pre>
 <div class="block">Writes an int to this MBB at its current position. Also advances the position by size of int</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1424,7 +1472,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>int3</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.790">int3</a>(int&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.810">int3</a>(int&nbsp;x)</pre>
 </li>
 </ul>
 <a name="int2-int-">
@@ -1433,7 +1481,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>int2</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.794">int2</a>(int&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.814">int2</a>(int&nbsp;x)</pre>
 </li>
 </ul>
 <a name="int1-int-">
@@ -1442,7 +1490,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>int1</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.798">int1</a>(int&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.818">int1</a>(int&nbsp;x)</pre>
 </li>
 </ul>
 <a name="int0-int-">
@@ -1451,7 +1499,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>int0</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.802">int0</a>(int&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.822">int0</a>(int&nbsp;x)</pre>
 </li>
 </ul>
 <a name="put-byte:A-">
@@ -1460,7 +1508,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.812">put</a>(byte[]&nbsp;src)</pre>
+<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.832">put</a>(byte[]&nbsp;src)</pre>
 <div class="block">Copies from the given byte[] to this MBB</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1478,7 +1526,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.824">put</a>(byte[]&nbsp;src,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.844">put</a>(byte[]&nbsp;src,
                          int&nbsp;offset,
                          int&nbsp;length)</pre>
 <div class="block">Copies from the given byte[] to this MBB</div>
@@ -1500,7 +1548,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>putLong</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.844">putLong</a>(long&nbsp;val)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.864">putLong</a>(long&nbsp;val)</pre>
 <div class="block">Writes a long to this MBB at its current position. Also advances the position by size of long</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1518,7 +1566,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>long7</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.865">long7</a>(long&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.885">long7</a>(long&nbsp;x)</pre>
 </li>
 </ul>
 <a name="long6-long-">
@@ -1527,7 +1575,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>long6</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.869">long6</a>(long&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.889">long6</a>(long&nbsp;x)</pre>
 </li>
 </ul>
 <a name="long5-long-">
@@ -1536,7 +1584,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>long5</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.873">long5</a>(long&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.893">long5</a>(long&nbsp;x)</pre>
 </li>
 </ul>
 <a name="long4-long-">
@@ -1545,7 +1593,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>long4</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.877">long4</a>(long&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.897">long4</a>(long&nbsp;x)</pre>
 </li>
 </ul>
 <a name="long3-long-">
@@ -1554,7 +1602,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>long3</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.881">long3</a>(long&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.901">long3</a>(long&nbsp;x)</pre>
 </li>
 </ul>
 <a name="long2-long-">
@@ -1563,7 +1611,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>long2</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.885">long2</a>(long&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.905">long2</a>(long&nbsp;x)</pre>
 </li>
 </ul>
 <a name="long1-long-">
@@ -1572,7 +1620,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>long1</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.889">long1</a>(long&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.909">long1</a>(long&nbsp;x)</pre>
 </li>
 </ul>
 <a name="long0-long-">
@@ -1581,7 +1629,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>long0</h4>
-<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.893">long0</a>(long&nbsp;x)</pre>
+<pre>private static&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.913">long0</a>(long&nbsp;x)</pre>
 </li>
 </ul>
 <a name="skip-int-">
@@ -1590,7 +1638,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>skip</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.902">skip</a>(int&nbsp;length)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.922">skip</a>(int&nbsp;length)</pre>
 <div class="block">Jumps the current position of this MBB by specified length.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1606,7 +1654,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>moveBack</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.925">moveBack</a>(int&nbsp;length)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.945">moveBack</a>(int&nbsp;length)</pre>
 <div class="block">Jumps back the current position of this MBB by specified length.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1622,7 +1670,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>asSubByteBuffer</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.953">asSubByteBuffer</a>(int&nbsp;length)</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.973">asSubByteBuffer</a>(int&nbsp;length)</pre>
 <div class="block">Returns bytes from current position till length specified, as a single ByteBuffer. When all
  these bytes happen to be in a single ByteBuffer, which this object wraps, that ByteBuffer item
  as such will be returned. So users are warned not to change the position or limit of this
@@ -1645,7 +1693,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>asSubByteBuffer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.990">asSubByteBuffer</a>(int&nbsp;offset,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1010">asSubByteBuffer</a>(int&nbsp;offset,
                             int&nbsp;length,
                             <a href="../../../../../org/apache/hadoop/hbase/util/ObjectIntPair.html" title="class in org.apache.hadoop.hbase.util">ObjectIntPair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;pair)</pre>
 <div class="block">Returns bytes from given offset till length specified, as a single ByteBuffer. When all these
@@ -1672,7 +1720,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1031">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;out,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1051">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;out,
                 int&nbsp;sourceOffset,
                 int&nbsp;length)</pre>
 <div class="block">Copies the content from an this MBB to a ByteBuffer</div>
@@ -1692,7 +1740,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>toBytes</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1060">toBytes</a>(int&nbsp;offset,
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1080">toBytes</a>(int&nbsp;offset,
                       int&nbsp;length)</pre>
 <div class="block">Copy the content from this MBB to a byte[] based on the given offset and
  length</div>
@@ -1707,13 +1755,29 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 </dl>
 </li>
 </ul>
+<a name="internalRead-java.nio.channels.ReadableByteChannel-long-org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>internalRead</h4>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1087">internalRead</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
+                         long&nbsp;offset,
+                         <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a>&nbsp;reader)
+                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="read-java.nio.channels.ReadableByteChannel-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>read</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1068">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel)
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1106">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel)
          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.ReadableByteChannel-">ByteBuff</a></code></span></div>
 <div class="block">Reads bytes from the given channel into this ByteBuff</div>
@@ -1727,13 +1791,51 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 </dl>
 </li>
 </ul>
+<a name="read-java.nio.channels.FileChannel-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1111">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+                long&nbsp;offset)
+         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.FileChannel-long-">ByteBuff</a></code></span></div>
+<div class="block">Reads bytes from FileChannel into this ByteBuff</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.FileChannel-long-">read</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="write-java.nio.channels.FileChannel-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1116">write</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+                 long&nbsp;offset)
+          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#write-java.nio.channels.FileChannel-long-">ByteBuff</a></code></span></div>
+<div class="block">Write this ByteBuff's data into target file</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#write-java.nio.channels.FileChannel-long-">write</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="nioByteBuffers--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>nioByteBuffers</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1090">nioByteBuffers</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1131">nioByteBuffers</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#nioByteBuffers--">nioByteBuffers</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -1746,7 +1848,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1096">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1137">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1759,7 +1861,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1109">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1150">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1772,7 +1874,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>retain</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1118">retain</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/MultiByteBuff.html#line.1159">retain</a>()</pre>
 </li>
 </ul>
 </li>
@@ -1828,7 +1930,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.hadoop.hbase.nio.ByteBuff">Nested</a>&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/nio/SingleByteBuff.html b/devapidocs/org/apache/hadoop/hbase/nio/SingleByteBuff.html
index 8838985..9605c21 100644
--- a/devapidocs/org/apache/hadoop/hbase/nio/SingleByteBuff.html
+++ b/devapidocs/org/apache/hadoop/hbase/nio/SingleByteBuff.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -74,7 +74,7 @@ var activeTableTab = "activeTableTab";
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.hadoop.hbase.nio.ByteBuff">Nested</a>&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.40">SingleByteBuff</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.41">SingleByteBuff</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></pre>
 <div class="block">An implementation of ByteBuff where a single BB backs the BBI. This just acts as a wrapper over a
  normal BB - offheap or onheap</div>
@@ -129,6 +129,21 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.nio.ByteBuff">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.nio.<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></code></li>
+</ul>
+</li>
+</ul>
 <!-- =========== FIELD SUMMARY =========== -->
 <ul class="blockList">
 <li class="blockList"><a name="field.summary">
@@ -167,7 +182,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.nio.<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#refCnt">refCnt</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#CHANNEL_READER">CHANNEL_READER</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#FILE_READER">FILE_READER</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#refCnt">refCnt</a></code></li>
 </ul>
 </li>
 </ul>
@@ -453,47 +468,54 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 </tr>
 <tr id="i40" class="altColor">
 <td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html#read-java.nio.channels.FileChannel-long-">read</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+    long&nbsp;offset)</code>
+<div class="block">Reads bytes from FileChannel into this ByteBuff</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html#read-java.nio.channels.ReadableByteChannel-">read</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel)</code>
 <div class="block">Reads bytes from the given channel into this ByteBuff</div>
 </td>
 </tr>
-<tr id="i41" class="rowColor">
+<tr id="i42" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html#remaining--">remaining</a></span>()</code>
 <div class="block">Returns the number of elements between the current position and the
  limit.</div>
 </td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i43" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html#reset--">reset</a></span>()</code>
 <div class="block">Similar to <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a>.reset(), ensures that this ByteBuff
  is reset back to last marked position.</div>
 </td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html#retain--">retain</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html#rewind--">rewind</a></span>()</code>
 <div class="block">Rewinds this ByteBuff and the position is set to 0</div>
 </td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i46" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html#skip-int-">skip</a></span>(int&nbsp;len)</code>
 <div class="block">Jumps the current position of this ByteBuff by specified length.</div>
 </td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html#slice--">slice</a></span>()</code>
 <div class="block">Returns an ByteBuff which is a sliced version of this ByteBuff.</div>
 </td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html#toBytes-int-int-">toBytes</a></span>(int&nbsp;offset,
        int&nbsp;length)</code>
@@ -501,13 +523,20 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
  length</div>
 </td>
 </tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html#write-java.nio.channels.FileChannel-long-">write</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+     long&nbsp;offset)</code>
+<div class="block">Write this ByteBuff's data into target file</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.nio.ByteBuff">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.nio.<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-">channelRead</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#checkRefCount--">checkRefCount</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#compareTo-org.apache.hadoop.hbase.nio.ByteBuff-int-int-org.apache.hadoop.hbase.nio.ByteBuff-int-int-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbas [...]
+<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#checkRefCount--">checkRefCount</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#compareTo-org.apache.hadoop.hbase.nio.ByteBuff-int-int-org.apache.hadoop.hbase.nio.ByteBuff-int-int-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-long-org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader-">read</a>, <a h [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -543,7 +572,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>UNSAFE_AVAIL</h4>
-<pre>private static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.42">UNSAFE_AVAIL</a></pre>
+<pre>private static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.43">UNSAFE_AVAIL</a></pre>
 </li>
 </ul>
 <a name="UNSAFE_UNALIGNED">
@@ -552,7 +581,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>UNSAFE_UNALIGNED</h4>
-<pre>private static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.43">UNSAFE_UNALIGNED</a></pre>
+<pre>private static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.44">UNSAFE_UNALIGNED</a></pre>
 </li>
 </ul>
 <a name="buf">
@@ -561,7 +590,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>buf</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.46">buf</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.47">buf</a></pre>
 </li>
 </ul>
 <a name="unsafeOffset">
@@ -570,7 +599,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>unsafeOffset</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.49">unsafeOffset</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.50">unsafeOffset</a></pre>
 </li>
 </ul>
 <a name="unsafeRef">
@@ -579,7 +608,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>unsafeRef</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.50">unsafeRef</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.51">unsafeRef</a></pre>
 </li>
 </ul>
 </li>
@@ -596,7 +625,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>SingleByteBuff</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.52">SingleByteBuff</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.53">SingleByteBuff</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)</pre>
 </li>
 </ul>
 <a name="SingleByteBuff-org.apache.hadoop.hbase.io.ByteBuffAllocator.Recycler-java.nio.ByteBuffer-">
@@ -605,7 +634,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>SingleByteBuff</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.56">SingleByteBuff</a>(<a href="../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a>&nbsp;recycler,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.57">SingleByteBuff</a>(<a href="../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io">ByteBuffAllocator.Recycler</a>&nbsp;recycler,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)</pre>
 </li>
 </ul>
@@ -615,7 +644,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SingleByteBuff</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.60">SingleByteBuff</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.61">SingleByteBuff</a>(<a href="../../../../../org/apache/hadoop/hbase/nio/RefCnt.html" title="class in org.apache.hadoop.hbase.nio">RefCnt</a>&nbsp;refCnt,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)</pre>
 </li>
 </ul>
@@ -633,7 +662,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>position</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.72">position</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.73">position</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#position--">position</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -648,7 +677,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>position</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.78">position</a>(int&nbsp;position)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.79">position</a>(int&nbsp;position)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#position-int-">ByteBuff</a></code></span></div>
 <div class="block">Sets this ByteBuff's position to the given value.</div>
 <dl>
@@ -665,7 +694,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>skip</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.85">skip</a>(int&nbsp;len)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.86">skip</a>(int&nbsp;len)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#skip-int-">ByteBuff</a></code></span></div>
 <div class="block">Jumps the current position of this ByteBuff by specified length.</div>
 <dl>
@@ -682,7 +711,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>moveBack</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.92">moveBack</a>(int&nbsp;len)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.93">moveBack</a>(int&nbsp;len)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#moveBack-int-">ByteBuff</a></code></span></div>
 <div class="block">Jumps back the current position of this ByteBuff by specified length.</div>
 <dl>
@@ -699,7 +728,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>capacity</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.99">capacity</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.100">capacity</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#capacity--">capacity</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -714,7 +743,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>limit</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.105">limit</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.106">limit</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#limit--">ByteBuff</a></code></span></div>
 <div class="block">Returns the limit of this ByteBuff</div>
 <dl>
@@ -731,7 +760,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>limit</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.111">limit</a>(int&nbsp;limit)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.112">limit</a>(int&nbsp;limit)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#limit-int-">ByteBuff</a></code></span></div>
 <div class="block">Marks the limit of this ByteBuff.</div>
 <dl>
@@ -748,7 +777,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>rewind</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.118">rewind</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.119">rewind</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#rewind--">ByteBuff</a></code></span></div>
 <div class="block">Rewinds this ByteBuff and the position is set to 0</div>
 <dl>
@@ -765,7 +794,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>mark</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.125">mark</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.126">mark</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#mark--">ByteBuff</a></code></span></div>
 <div class="block">Marks the current position of the ByteBuff</div>
 <dl>
@@ -782,7 +811,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>asSubByteBuffer</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.132">asSubByteBuffer</a>(int&nbsp;length)</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.133">asSubByteBuffer</a>(int&nbsp;length)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#asSubByteBuffer-int-">ByteBuff</a></code></span></div>
 <div class="block">Returns bytes from current position till length specified, as a single ByteBuffer. When all
  these bytes happen to be in a single ByteBuffer, which this object wraps, that ByteBuffer item
@@ -806,7 +835,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>asSubByteBuffer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.139">asSubByteBuffer</a>(int&nbsp;offset,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.140">asSubByteBuffer</a>(int&nbsp;offset,
                             int&nbsp;length,
                             <a href="../../../../../org/apache/hadoop/hbase/util/ObjectIntPair.html" title="class in org.apache.hadoop.hbase.util">ObjectIntPair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;pair)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#asSubByteBuffer-int-int-org.apache.hadoop.hbase.util.ObjectIntPair-">ByteBuff</a></code></span></div>
@@ -837,7 +866,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>remaining</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.147">remaining</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.148">remaining</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#remaining--">ByteBuff</a></code></span></div>
 <div class="block">Returns the number of elements between the current position and the
  limit.</div>
@@ -855,7 +884,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>hasRemaining</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.153">hasRemaining</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.154">hasRemaining</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#hasRemaining--">ByteBuff</a></code></span></div>
 <div class="block">Returns true if there are elements between the current position and the limt</div>
 <dl>
@@ -872,7 +901,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>reset</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.159">reset</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.160">reset</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#reset--">ByteBuff</a></code></span></div>
 <div class="block">Similar to <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a>.reset(), ensures that this ByteBuff
  is reset back to last marked position.</div>
@@ -890,7 +919,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>slice</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.166">slice</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.167">slice</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#slice--">ByteBuff</a></code></span></div>
 <div class="block">Returns an ByteBuff which is a sliced version of this ByteBuff. The position, limit and mark
  of the new ByteBuff will be independent than that of the original ByteBuff.
@@ -909,7 +938,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>duplicate</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.172">duplicate</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.173">duplicate</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#duplicate--">ByteBuff</a></code></span></div>
 <div class="block">Returns an ByteBuff which is a duplicate version of this ByteBuff. The
  position, limit and mark of the new ByteBuff will be independent than that
@@ -930,7 +959,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.178">get</a>()</pre>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.179">get</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get--">ByteBuff</a></code></span></div>
 <div class="block">A relative method that returns byte at the current position.  Increments the
  current position by the size of a byte.</div>
@@ -948,7 +977,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.184">get</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.185">get</a>(int&nbsp;index)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the byte at the given index. Does not change position of the underlying ByteBuffers</div>
 <dl>
@@ -965,7 +994,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getByteAfterPosition</h4>
-<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.193">getByteAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.194">getByteAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getByteAfterPosition-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the byte at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
@@ -983,7 +1012,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.199">put</a>(byte&nbsp;b)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.200">put</a>(byte&nbsp;b)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#put-byte-">ByteBuff</a></code></span></div>
 <div class="block">Writes a byte to this ByteBuff at the current position and increments the position</div>
 <dl>
@@ -1000,7 +1029,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.206">put</a>(int&nbsp;index,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.207">put</a>(int&nbsp;index,
                           byte&nbsp;b)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#put-int-byte-">ByteBuff</a></code></span></div>
 <div class="block">Writes a byte to this ByteBuff at the given index</div>
@@ -1018,7 +1047,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.213">get</a>(byte[]&nbsp;dst,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.214">get</a>(byte[]&nbsp;dst,
                 int&nbsp;offset,
                 int&nbsp;length)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get-byte:A-int-int-">ByteBuff</a></code></span></div>
@@ -1038,7 +1067,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.220">get</a>(int&nbsp;sourceOffset,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.221">get</a>(int&nbsp;sourceOffset,
                 byte[]&nbsp;dst,
                 int&nbsp;offset,
                 int&nbsp;length)</pre>
@@ -1062,7 +1091,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.226">get</a>(byte[]&nbsp;dst)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.227">get</a>(byte[]&nbsp;dst)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get-byte:A-">ByteBuff</a></code></span></div>
 <div class="block">Copies the content from this ByteBuff's current position to the byte array and fills it. Also
  advances the position of the ByteBuff by the length of the byte[].</div>
@@ -1078,7 +1107,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.231">put</a>(int&nbsp;offset,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.232">put</a>(int&nbsp;offset,
                           <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;src,
                           int&nbsp;srcOffset,
                           int&nbsp;length)</pre>
@@ -1103,7 +1132,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.250">put</a>(byte[]&nbsp;src,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.251">put</a>(byte[]&nbsp;src,
                           int&nbsp;offset,
                           int&nbsp;length)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#put-byte:A-int-int-">ByteBuff</a></code></span></div>
@@ -1124,7 +1153,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.257">put</a>(byte[]&nbsp;src)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.258">put</a>(byte[]&nbsp;src)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#put-byte:A-">ByteBuff</a></code></span></div>
 <div class="block">Copies from the given byte[] to this ByteBuff</div>
 <dl>
@@ -1141,7 +1170,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>hasArray</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.263">hasArray</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.264">hasArray</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#hasArray--">hasArray</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -1156,7 +1185,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>array</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.269">array</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.270">array</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#array--">array</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -1171,7 +1200,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>arrayOffset</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.275">arrayOffset</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.276">arrayOffset</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#arrayOffset--">arrayOffset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -1186,7 +1215,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getShort</h4>
-<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.281">getShort</a>()</pre>
+<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.282">getShort</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getShort--">ByteBuff</a></code></span></div>
 <div class="block">Returns the short value at the current position. Also advances the position by the size
  of short</div>
@@ -1204,7 +1233,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getShort</h4>
-<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.287">getShort</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.288">getShort</a>(int&nbsp;index)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getShort-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the short value at the given index. Does not change position of the
  underlying ByteBuffers. The caller is sure that the index will be after
@@ -1225,7 +1254,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getShortAfterPosition</h4>
-<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.296">getShortAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public&nbsp;short&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.297">getShortAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getShortAfterPosition-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the short value at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
@@ -1243,7 +1272,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getInt</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.302">getInt</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.303">getInt</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getInt--">ByteBuff</a></code></span></div>
 <div class="block">Returns the int value at the current position. Also advances the position by the size of int</div>
 <dl>
@@ -1260,7 +1289,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>putInt</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.308">putInt</a>(int&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.309">putInt</a>(int&nbsp;value)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#putInt-int-">ByteBuff</a></code></span></div>
 <div class="block">Writes an int to this ByteBuff at its current position. Also advances the position
  by size of int</div>
@@ -1280,7 +1309,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getInt</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.315">getInt</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.316">getInt</a>(int&nbsp;index)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getInt-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the int at the given index. Does not change position of the underlying ByteBuffers.
  Even if the current int does not fit in the
@@ -1300,7 +1329,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getIntAfterPosition</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.324">getIntAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.325">getIntAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getIntAfterPosition-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the int value at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
@@ -1318,7 +1347,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getLong</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.330">getLong</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.331">getLong</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getLong--">ByteBuff</a></code></span></div>
 <div class="block">Returns the long value at the current position. Also advances the position by the size of long</div>
 <dl>
@@ -1335,7 +1364,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>putLong</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.336">putLong</a>(long&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.337">putLong</a>(long&nbsp;value)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#putLong-long-">ByteBuff</a></code></span></div>
 <div class="block">Writes a long to this ByteBuff at its current position.
  Also advances the position by size of long</div>
@@ -1355,7 +1384,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getLong</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.343">getLong</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.344">getLong</a>(int&nbsp;index)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getLong-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the long at the given index. Does not change position of the
  underlying ByteBuffers. The caller is sure that the index will be after
@@ -1376,7 +1405,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getLongAfterPosition</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.352">getLongAfterPosition</a>(int&nbsp;offset)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.353">getLongAfterPosition</a>(int&nbsp;offset)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#getLongAfterPosition-int-">ByteBuff</a></code></span></div>
 <div class="block">Fetches the long value at the given offset from current position. Does not change position
  of the underlying ByteBuffers.</div>
@@ -1394,7 +1423,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>toBytes</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.358">toBytes</a>(int&nbsp;offset,
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.359">toBytes</a>(int&nbsp;offset,
                       int&nbsp;length)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#toBytes-int-int-">ByteBuff</a></code></span></div>
 <div class="block">Copy the content from this ByteBuff to a byte[] based on the given offset and
@@ -1416,7 +1445,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.366">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;out,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.367">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;out,
                 int&nbsp;sourceOffset,
                 int&nbsp;length)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#get-java.nio.ByteBuffer-int-int-">ByteBuff</a></code></span></div>
@@ -1440,7 +1469,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>read</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.372">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel)
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.373">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel)
          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.ReadableByteChannel-">ByteBuff</a></code></span></div>
 <div class="block">Reads bytes from the given channel into this ByteBuff</div>
@@ -1454,13 +1483,51 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 </dl>
 </li>
 </ul>
+<a name="read-java.nio.channels.FileChannel-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.379">read</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+                long&nbsp;offset)
+         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.FileChannel-long-">ByteBuff</a></code></span></div>
+<div class="block">Reads bytes from FileChannel into this ByteBuff</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.FileChannel-long-">read</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="write-java.nio.channels.FileChannel-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.385">write</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;channel,
+                 long&nbsp;offset)
+          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#write-java.nio.channels.FileChannel-long-">ByteBuff</a></code></span></div>
+<div class="block">Write this ByteBuff's data into target file</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#write-java.nio.channels.FileChannel-long-">write</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="nioByteBuffers--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>nioByteBuffers</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.378">nioByteBuffers</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.397">nioByteBuffers</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#nioByteBuffers--">nioByteBuffers</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></dd>
@@ -1473,7 +1540,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.384">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.403">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1486,7 +1553,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.392">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.411">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1499,7 +1566,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>retain</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.397">retain</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/nio/SingleByteBuff.html" title="class in org.apache.hadoop.hbase.nio">SingleByteBuff</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/nio/SingleByteBuff.html#line.416">retain</a>()</pre>
 </li>
 </ul>
 </li>
@@ -1555,7 +1622,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.hadoop.hbase.nio.ByteBuff">Nested</a>&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/nio/class-use/ByteBuff.ChannelReader.html b/devapidocs/org/apache/hadoop/hbase/nio/class-use/ByteBuff.ChannelReader.html
new file mode 100644
index 0000000..d1dbf5e
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/nio/class-use/ByteBuff.ChannelReader.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/nio/class-use/ByteBuff.ChannelReader.html" target="_top">Frames</a></li>
+<li><a href="ByteBuff.ChannelReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader" class="title">Uses of Interface<br>org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.nio">org.apache.hadoop.hbase.nio</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.nio">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a> in <a href="../../../../../../org/apache/hadoop/hbase/nio/package-summary.html">org.apache.hadoop.hbase.nio</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/nio/package-summary.html">org.apache.hadoop.hbase.nio</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) static <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ByteBuff.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#CHANNEL_READER">CHANNEL_READER</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) static <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ByteBuff.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#FILE_READER">FILE_READER</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/nio/package-summary.html">org.apache.hadoop.hbase.nio</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><span class="typeNameLabel">MultiByteBuff.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/nio/MultiByteBuff.html#internalRead-java.nio.channels.ReadableByteChannel-long-org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader-">internalRead</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</ [...]
+            long&nbsp;offset,
+            <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a>&nbsp;reader)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="typeNameLabel">ByteBuff.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#read-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-long-org.apache.hadoop.hbase.nio.ByteBuff.ChannelReader-">read</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbs [...]
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
+    long&nbsp;offset,
+    <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a>&nbsp;reader)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/nio/class-use/ByteBuff.ChannelReader.html" target="_top">Frames</a></li>
+<li><a href="ByteBuff.ChannelReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/devapidocs/org/apache/hadoop/hbase/nio/class-use/ByteBuff.html b/devapidocs/org/apache/hadoop/hbase/nio/class-use/ByteBuff.html
index e42d0bc..05f4e95 100644
--- a/devapidocs/org/apache/hadoop/hbase/nio/class-use/ByteBuff.html
+++ b/devapidocs/org/apache/hadoop/hbase/nio/class-use/ByteBuff.html
@@ -678,27 +678,55 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">FileIOEngine.FileAccessor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbsp;fileChannel,
+      <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
+      long&nbsp;accessOffset)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">FileIOEngine.FileReadAccessor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileReadAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&nbs [...]
+      <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
+      long&nbsp;accessOffset)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">FileIOEngine.FileWriteAccessor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html#access-java.nio.channels.FileChannel-org.apache.hadoop.hbase.nio.ByteBuff-long-">access</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html?is-external=true" title="class or interface in java.nio.channels">FileChannel</a>&n [...]
+      <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
+      long&nbsp;accessOffset)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">FileIOEngine.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#accessFile-org.apache.hadoop.hbase.io.hfile.bucket.FileIOEngine.FileAccessor-org.apache.hadoop.hbase.nio.ByteBuff-long-">accessFile</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileAccessor.html" title="interface in org.apache.hadoop.hbase.io.hfile.bucket">F [...]
+          <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buff,
+          long&nbsp;globalOffset)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BucketEntry.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.html#wrapAsCacheable-org.apache.hadoop.hbase.nio.ByteBuff-">wrapAsCacheable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">FileMmapIOEngine.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileMmapIOEngine.html#write-org.apache.hadoop.hbase.nio.ByteBuff-long-">write</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;srcBuffer,
      long&nbsp;offset)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">IOEngine.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/IOEngine.html#write-org.apache.hadoop.hbase.nio.ByteBuff-long-">write</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;srcBuffer,
      long&nbsp;offset)</code>
 <div class="block">Transfers the data from the given MultiByteBuffer to IOEngine</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">ByteBufferIOEngine.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/ByteBufferIOEngine.html#write-org.apache.hadoop.hbase.nio.ByteBuff-long-">write</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;src,
      long&nbsp;offset)</code>
 <div class="block">Transfers data from the given <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio"><code>ByteBuff</code></a> to the buffer array.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">FileIOEngine.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#write-org.apache.hadoop.hbase.nio.ByteBuff-long-">write</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;srcBuffer,
+<td class="colLast"><span class="typeNameLabel">FileIOEngine.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#write-org.apache.hadoop.hbase.nio.ByteBuff-long-">write</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;srcBuff,
      long&nbsp;offset)</code>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/devapidocs/org/apache/hadoop/hbase/nio/package-frame.html b/devapidocs/org/apache/hadoop/hbase/nio/package-frame.html
index c86c552..1682b62 100644
--- a/devapidocs/org/apache/hadoop/hbase/nio/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/nio/package-frame.html
@@ -13,6 +13,7 @@
 <div class="indexContainer">
 <h2 title="Interfaces">Interfaces</h2>
 <ul title="Interfaces">
+<li><a href="ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio" target="classFrame"><span class="interfaceName">ByteBuff.ChannelReader</span></a></li>
 <li><a href="HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio" target="classFrame"><span class="interfaceName">HBaseReferenceCounted</span></a></li>
 </ul>
 <h2 title="Classes">Classes</h2>
diff --git a/devapidocs/org/apache/hadoop/hbase/nio/package-summary.html b/devapidocs/org/apache/hadoop/hbase/nio/package-summary.html
index 636962c..8647ea4 100644
--- a/devapidocs/org/apache/hadoop/hbase/nio/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/nio/package-summary.html
@@ -83,6 +83,12 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a></td>
+<td class="colLast">
+<div class="block">function interface for Channel read</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio">HBaseReferenceCounted</a></td>
 <td class="colLast">
 <div class="block">The HBaseReferenceCounted disabled several methods in Netty's <code>ReferenceCounted</code>, because
diff --git a/devapidocs/org/apache/hadoop/hbase/nio/package-tree.html b/devapidocs/org/apache/hadoop/hbase/nio/package-tree.html
index be09ead..d94b061 100644
--- a/devapidocs/org/apache/hadoop/hbase/nio/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/nio/package-tree.html
@@ -97,6 +97,7 @@
 </ul>
 <h2 title="Interface Hierarchy">Interface Hierarchy</h2>
 <ul>
+<li type="circle">org.apache.hadoop.hbase.nio.<a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">ByteBuff.ChannelReader</span></a></li>
 <li type="circle">org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted
 <ul>
 <li type="circle">org.apache.hadoop.hbase.nio.<a href="../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">HBaseReferenceCounted</span></a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/nio/package-use.html b/devapidocs/org/apache/hadoop/hbase/nio/package-use.html
index 3ce2a91..df5f533 100644
--- a/devapidocs/org/apache/hadoop/hbase/nio/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/nio/package-use.html
@@ -320,24 +320,29 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/nio/class-use/ByteBuff.ChannelReader.html#org.apache.hadoop.hbase.nio">ByteBuff.ChannelReader</a>
+<div class="block">function interface for Channel read</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/nio/class-use/HBaseReferenceCounted.html#org.apache.hadoop.hbase.nio">HBaseReferenceCounted</a>
 <div class="block">The HBaseReferenceCounted disabled several methods in Netty's <code>ReferenceCounted</code>, because
  those methods are unlikely to be used.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/nio/class-use/MultiByteBuff.html#org.apache.hadoop.hbase.nio">MultiByteBuff</a>
 <div class="block">Provides a unified view of all the underlying ByteBuffers and will look as if a bigger
  sequential buffer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/nio/class-use/RefCnt.html#org.apache.hadoop.hbase.nio">RefCnt</a>
 <div class="block">Maintain an reference count integer inside to track life cycle of <a href="../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio"><code>ByteBuff</code></a>, if the
  reference count become 0, it'll call <a href="../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html#free--"><code>ByteBuffAllocator.Recycler.free()</code></a> exactly once.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/nio/class-use/SingleByteBuff.html#org.apache.hadoop.hbase.nio">SingleByteBuff</a>
 <div class="block">An implementation of ByteBuff where a single BB backs the BBI.</div>
 </td>
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index f8e9479..537e170 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -424,18 +424,18 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 3332d33..340f6a7 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -216,11 +216,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index d7445e7..0a7a10a 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -240,12 +240,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 07f2dba..70fab98 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -715,20 +715,20 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index dc05e9f..b195b74 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,9 +130,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index c3de11a..21cdabe 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -247,10 +247,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.RollRequestReason.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALActionsListener.RollRequestReason</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.RollRequestReason.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALActionsListener.RollRequestReason</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
index 818a04c..02505ac 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
@@ -162,8 +162,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index 800a66a..c9ac434 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -192,8 +192,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index 3b70b0e..6afbcd8 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -162,12 +162,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.HDFSAclOperation.OperationType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.OperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index 3f42ad7..4b0ca3e 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -192,9 +192,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index 2d9b08d..c4e6dcd 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -211,9 +211,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ImplType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html b/devapidocs/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html
index 6196ddb..7c68422 100644
--- a/devapidocs/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html
+++ b/devapidocs/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html
@@ -868,7 +868,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkHFilesCountPerRegionPerFamily</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.437">checkHFilesCountPerRegionPerFamily</a>(org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apac [...]
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.439">checkHFilesCountPerRegionPerFamily</a>(org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apac [...]
 </li>
 </ul>
 <a name="groupOrSplitPhase-org.apache.hadoop.hbase.client.AsyncClusterConnection-org.apache.hadoop.hbase.TableName-java.util.concurrent.ExecutorService-java.util.Deque-java.util.List-">
@@ -877,7 +877,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>groupOrSplitPhase</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">Bulk [...]
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">Bulk [...]
                                                                                                                                                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                                                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                                                                                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
@@ -903,7 +903,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getUniqueName</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.519">getUniqueName</a>()</pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.521">getUniqueName</a>()</pre>
 </li>
 </ul>
 <a name="splitStoreFile-org.apache.hadoop.hbase.tool.BulkLoadHFiles.LoadQueueItem-org.apache.hadoop.hbase.client.TableDescriptor-byte:A-byte:A-">
@@ -912,7 +912,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStoreFile</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.523">splitStoreFile</a>(<a href="../../../../../org/apache/hadoop/ [...]
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.525">splitStoreFile</a>(<a href="../../../../../org/apache/hadoop/ [...]
                                                           <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDesc,
                                                           byte[]&nbsp;startKey,
                                                           byte[]&nbsp;splitKey)
@@ -929,7 +929,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>groupOrSplit</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>&gt;,<a href="https://docs.oracle.com/javas [...]
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>&gt;,<a href="https://docs.oracle.com/javas [...]
                                                                        <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                                        org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
                                                                        <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>&nbsp;item,
@@ -952,7 +952,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStoreFile</h4>
-<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.652">splitStoreFile</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.654">splitStoreFile</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                            org.apache.hadoop.fs.Path&nbsp;inFile,
                            <a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;familyDesc,
                            byte[]&nbsp;splitKey,
@@ -973,7 +973,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>copyHFileHalf</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.665">copyHFileHalf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.667">copyHFileHalf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                   org.apache.hadoop.fs.Path&nbsp;inFile,
                                   org.apache.hadoop.fs.Path&nbsp;outFile,
                                   <a href="../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;reference,
@@ -992,7 +992,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>inferBoundaries</h4>
-<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.733">inferBoundaries</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;bdryMap)</pre>
+<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.735">inferBoundaries</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;bdryMap)</pre>
 <div class="block">Infers region boundaries for a new table.
  <p/>
  Parameter: <br/>
@@ -1021,7 +1021,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.759">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.761">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          org.apache.hadoop.fs.Path&nbsp;hfofDir,
                          <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1039,7 +1039,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>performBulkLoad</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href=".. [...]
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href=".. [...]
                                                                      <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
@@ -1057,7 +1057,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanup</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.864">cleanup</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">AsyncClusterConnection</a>&nbsp;conn,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.866">cleanup</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">AsyncClusterConnection</a>&nbsp;conn,
                      <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)
@@ -1074,7 +1074,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>doBulkLoad</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href=".. [...]
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href=".. [...]
                                                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
                                                                 boolean&nbsp;silence,
@@ -1101,7 +1101,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>doBulkLoad</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href=".. [...]
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href=".. [...]
                                                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                                 org.apache.hadoop.fs.Path&nbsp;hfofDir,
                                                                 boolean&nbsp;silence,
@@ -1129,7 +1129,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>bulkLoad</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../ [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../ [...]
                                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;family2Files)
                                                       throws <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a>,
                                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1153,7 +1153,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>bulkLoad</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../ [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">BulkLoadHFiles.LoadQueueItem</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../ [...]
                                                              org.apache.hadoop.fs.Path&nbsp;dir)
                                                       throws <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a>,
                                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1178,7 +1178,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setBulkToken</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.999">setBulkToken</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bulkToken)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.1001">setBulkToken</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bulkToken)</pre>
 </li>
 </ul>
 <a name="usage--">
@@ -1187,7 +1187,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>usage</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.1003">usage</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.1005">usage</a>()</pre>
 </li>
 </ul>
 <a name="run-java.lang.String:A-">
@@ -1196,7 +1196,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.1017">run</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.1019">run</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1212,7 +1212,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/tool/BulkLoadHFiles.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.1045">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.html#line.1047">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index 1e86ed5..e8d55e5 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -540,14 +540,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HbckErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HbckErrorReporter.ERROR_CODE</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index bdae3d8..8c4c41b 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -192,8 +192,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index d4d5545..1dd5249 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -4660,6 +4660,7 @@
 <li type="circle">org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/BulkLoadHFiles.html" title="interface in org.apache.hadoop.hbase.tool"><span class="typeNameLink">BulkLoadHFiles</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/BulkLoadHFilesTool.BulkHFileVisitor.html" title="interface in org.apache.hadoop.hbase.tool"><span class="typeNameLink">BulkLoadHFilesTool.BulkHFileVisitor</span></a>&lt;TFamily&gt;</li>
 <li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/BulkLoadObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">BulkLoadObserver</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.ChannelReader.html" title="interface in org.apache.hadoop.hbase.nio"><span class="typeNameLink">ByteBuff.ChannelReader</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/ByteBuffAllocator.Recycler.html" title="interface in org.apache.hadoop.hbase.io"><span class="typeNameLink">ByteBuffAllocator.Recycler</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteBufferAllocator.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">ByteBufferAllocator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteBufferUtils.ByteVisitor.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">ByteBufferUtils.ByteVisitor</span></a></li>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index 1c801e1..1969fbf 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,9 +16,9 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "693f201f3d474ee216f590e013f9df49dd1503df";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "ac8fe1627a7db7e31f54318a3e94da06b30f0760";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Sun Sep  8 14:34:49 UTC 2019";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Mon Sep  9 14:37:26 UTC 2019";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://jenkins-websites-he-de.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
 <span class="sourceLineNo">015</span>  public static final String srcChecksum = "(stdin)=";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/HBTop.html b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/HBTop.html
index 521d56a..9be721d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/HBTop.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/HBTop.html
@@ -92,7 +92,7 @@
 <span class="sourceLineNo">084</span>        if (delay &lt; 1) {<a name="line.84"></a>
 <span class="sourceLineNo">085</span>          LOGGER.warn("Delay set too low or invalid, using default");<a name="line.85"></a>
 <span class="sourceLineNo">086</span>        } else {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>          initialRefreshDelay = delay * 1000;<a name="line.87"></a>
+<span class="sourceLineNo">087</span>          initialRefreshDelay = delay * 1000L;<a name="line.87"></a>
 <span class="sourceLineNo">088</span>        }<a name="line.88"></a>
 <span class="sourceLineNo">089</span>      }<a name="line.89"></a>
 <span class="sourceLineNo">090</span><a name="line.90"></a>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html
index 80b0d2d..650263a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/mode/RegionServerModeStrategy.html
@@ -32,100 +32,99 @@
 <span class="sourceLineNo">024</span>import java.util.Map;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import java.util.stream.Collectors;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.util.stream.Stream;<a name="line.26"></a>
-<span class="sourceLineNo">027</span><a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.ServerMetrics;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.hbtop.Record;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.hbtop.RecordFilter;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.hbtop.field.Field;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.hbtop.field.FieldInfo;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.34"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.ServerMetrics;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.hbtop.Record;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.hbtop.RecordFilter;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.hbtop.field.Field;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.hbtop.field.FieldInfo;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
 <span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>/**<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * Implementation for {@link ModeStrategy} for RegionServer Mode.<a name="line.38"></a>
-<span class="sourceLineNo">039</span> */<a name="line.39"></a>
-<span class="sourceLineNo">040</span>@InterfaceAudience.Private<a name="line.40"></a>
-<span class="sourceLineNo">041</span>public final class RegionServerModeStrategy implements ModeStrategy {<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>  private final List&lt;FieldInfo&gt; fieldInfos = Arrays.asList(<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    new FieldInfo(Field.REGION_SERVER, 0, true),<a name="line.44"></a>
-<span class="sourceLineNo">045</span>    new FieldInfo(Field.LONG_REGION_SERVER, 0, false),<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    new FieldInfo(Field.REGION_COUNT, 7, true),<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    new FieldInfo(Field.REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    new FieldInfo(Field.READ_REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    new FieldInfo(Field.FILTERED_READ_REQUEST_COUNT_PER_SECOND, 8, true),<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    new FieldInfo(Field.WRITE_REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    new FieldInfo(Field.STORE_FILE_SIZE, 13, true),<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    new FieldInfo(Field.UNCOMPRESSED_STORE_FILE_SIZE, 15, false),<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    new FieldInfo(Field.NUM_STORE_FILES, 7, true),<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    new FieldInfo(Field.MEM_STORE_SIZE, 11, true),<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    new FieldInfo(Field.USED_HEAP_SIZE, 11, true),<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    new FieldInfo(Field.MAX_HEAP_SIZE, 11, true)<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  );<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private final RegionModeStrategy regionModeStrategy = new RegionModeStrategy();<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  RegionServerModeStrategy(){<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  }<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  @Override<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  public List&lt;FieldInfo&gt; getFieldInfos() {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    return fieldInfos;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  public Field getDefaultSortField() {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    return Field.REQUEST_COUNT_PER_SECOND;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  }<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Override<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public List&lt;Record&gt; getRecords(ClusterMetrics clusterMetrics) {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    // Get records from RegionModeStrategy and add REGION_COUNT field<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    List&lt;Record&gt; records = regionModeStrategy.getRecords(clusterMetrics).stream()<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      .map(record -&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        Record.ofEntries(fieldInfos.stream()<a name="line.79"></a>
-<span class="sourceLineNo">080</span>          .filter(fi -&gt; record.containsKey(fi.getField()))<a name="line.80"></a>
-<span class="sourceLineNo">081</span>          .map(fi -&gt; Record.entry(fi.getField(), record.get(fi.getField())))))<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      .map(record -&gt; Record.builder().putAll(record).put(Field.REGION_COUNT, 1).build())<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      .collect(Collectors.toList());<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>    // Aggregation by LONG_REGION_SERVER field<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    Map&lt;String, Record&gt; retMap = records.stream()<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      .collect(Collectors.groupingBy(r -&gt; r.get(Field.LONG_REGION_SERVER).asString()))<a name="line.87"></a>
-<span class="sourceLineNo">088</span>      .entrySet().stream()<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      .flatMap(<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        e -&gt; e.getValue().stream()<a name="line.90"></a>
-<span class="sourceLineNo">091</span>          .reduce(Record::combine)<a name="line.91"></a>
-<span class="sourceLineNo">092</span>          .map(Stream::of)<a name="line.92"></a>
-<span class="sourceLineNo">093</span>          .orElse(Stream.empty()))<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      .collect(Collectors.toMap(r -&gt; r.get(Field.LONG_REGION_SERVER).asString(), r -&gt; r));<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>    // Add USED_HEAP_SIZE field and MAX_HEAP_SIZE field<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    for (ServerMetrics sm : clusterMetrics.getLiveServerMetrics().values()) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      Record record = retMap.get(sm.getServerName().getServerName());<a name="line.98"></a>
-<span class="sourceLineNo">099</span>      if (record == null) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        continue;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      }<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>      Record newRecord = Record.builder().putAll(record)<a name="line.103"></a>
-<span class="sourceLineNo">104</span>        .put(Field.USED_HEAP_SIZE, sm.getUsedHeapSize())<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        .put(Field.MAX_HEAP_SIZE, sm.getMaxHeapSize()).build();<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>      retMap.put(sm.getServerName().getServerName(), newRecord);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>    return new ArrayList&lt;&gt;(retMap.values());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  }<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  @Override<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public DrillDownInfo drillDown(Record selectedRecord) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    List&lt;RecordFilter&gt; initialFilters = Collections.singletonList(RecordFilter<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      .newBuilder(Field.REGION_SERVER)<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      .doubleEquals(selectedRecord.get(Field.REGION_SERVER)));<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    return new DrillDownInfo(Mode.REGION, initialFilters);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>}<a name="line.120"></a>
+<span class="sourceLineNo">036</span>/**<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * Implementation for {@link ModeStrategy} for RegionServer Mode.<a name="line.37"></a>
+<span class="sourceLineNo">038</span> */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>@InterfaceAudience.Private<a name="line.39"></a>
+<span class="sourceLineNo">040</span>public final class RegionServerModeStrategy implements ModeStrategy {<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>  private final List&lt;FieldInfo&gt; fieldInfos = Arrays.asList(<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    new FieldInfo(Field.REGION_SERVER, 0, true),<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    new FieldInfo(Field.LONG_REGION_SERVER, 0, false),<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    new FieldInfo(Field.REGION_COUNT, 7, true),<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    new FieldInfo(Field.REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    new FieldInfo(Field.READ_REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    new FieldInfo(Field.FILTERED_READ_REQUEST_COUNT_PER_SECOND, 8, true),<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    new FieldInfo(Field.WRITE_REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    new FieldInfo(Field.STORE_FILE_SIZE, 13, true),<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    new FieldInfo(Field.UNCOMPRESSED_STORE_FILE_SIZE, 15, false),<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    new FieldInfo(Field.NUM_STORE_FILES, 7, true),<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    new FieldInfo(Field.MEM_STORE_SIZE, 11, true),<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    new FieldInfo(Field.USED_HEAP_SIZE, 11, true),<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    new FieldInfo(Field.MAX_HEAP_SIZE, 11, true)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  );<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private final RegionModeStrategy regionModeStrategy = new RegionModeStrategy();<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  RegionServerModeStrategy(){<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  @Override<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  public List&lt;FieldInfo&gt; getFieldInfos() {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    return fieldInfos;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>  @Override<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  public Field getDefaultSortField() {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    return Field.REQUEST_COUNT_PER_SECOND;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>  @Override<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  public List&lt;Record&gt; getRecords(ClusterMetrics clusterMetrics) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    // Get records from RegionModeStrategy and add REGION_COUNT field<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    List&lt;Record&gt; records = regionModeStrategy.getRecords(clusterMetrics).stream()<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      .map(record -&gt;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        Record.ofEntries(fieldInfos.stream()<a name="line.78"></a>
+<span class="sourceLineNo">079</span>          .filter(fi -&gt; record.containsKey(fi.getField()))<a name="line.79"></a>
+<span class="sourceLineNo">080</span>          .map(fi -&gt; Record.entry(fi.getField(), record.get(fi.getField())))))<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      .map(record -&gt; Record.builder().putAll(record).put(Field.REGION_COUNT, 1).build())<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      .collect(Collectors.toList());<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>    // Aggregation by LONG_REGION_SERVER field<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    Map&lt;String, Record&gt; retMap = records.stream()<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      .collect(Collectors.groupingBy(r -&gt; r.get(Field.LONG_REGION_SERVER).asString()))<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      .entrySet().stream()<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      .flatMap(<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        e -&gt; e.getValue().stream()<a name="line.89"></a>
+<span class="sourceLineNo">090</span>          .reduce(Record::combine)<a name="line.90"></a>
+<span class="sourceLineNo">091</span>          .map(Stream::of)<a name="line.91"></a>
+<span class="sourceLineNo">092</span>          .orElse(Stream.empty()))<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      .collect(Collectors.toMap(r -&gt; r.get(Field.LONG_REGION_SERVER).asString(), r -&gt; r));<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>    // Add USED_HEAP_SIZE field and MAX_HEAP_SIZE field<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    for (ServerMetrics sm : clusterMetrics.getLiveServerMetrics().values()) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      Record record = retMap.get(sm.getServerName().getServerName());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      if (record == null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        continue;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      }<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>      Record newRecord = Record.builder().putAll(record)<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        .put(Field.USED_HEAP_SIZE, sm.getUsedHeapSize())<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        .put(Field.MAX_HEAP_SIZE, sm.getMaxHeapSize()).build();<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>      retMap.put(sm.getServerName().getServerName(), newRecord);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>    return new ArrayList&lt;&gt;(retMap.values());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>  @Override<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  public DrillDownInfo drillDown(Record selectedRecord) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    List&lt;RecordFilter&gt; initialFilters = Collections.singletonList(RecordFilter<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      .newBuilder(Field.REGION_SERVER)<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      .doubleEquals(selectedRecord.get(Field.REGION_SERVER)));<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return new DrillDownInfo(Mode.REGION, initialFilters);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>}<a name="line.119"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html
index 97e5ea0..3b18edd 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/mode/TableModeStrategy.html
@@ -29,86 +29,85 @@
 <span class="sourceLineNo">021</span>import java.util.List;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.util.stream.Collectors;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.util.stream.Stream;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.TableName;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.hbtop.Record;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.hbtop.RecordFilter;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.hbtop.field.Field;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.hbtop.field.FieldInfo;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.31"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.TableName;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.hbtop.Record;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.hbtop.RecordFilter;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.hbtop.field.Field;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.hbtop.field.FieldInfo;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
 <span class="sourceLineNo">032</span><a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>/**<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * Implementation for {@link ModeStrategy} for Table Mode.<a name="line.35"></a>
-<span class="sourceLineNo">036</span> */<a name="line.36"></a>
-<span class="sourceLineNo">037</span>@InterfaceAudience.Private<a name="line.37"></a>
-<span class="sourceLineNo">038</span>public final class TableModeStrategy implements ModeStrategy {<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>  private final List&lt;FieldInfo&gt; fieldInfos = Arrays.asList(<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    new FieldInfo(Field.NAMESPACE, 0, true),<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    new FieldInfo(Field.TABLE, 0, true),<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    new FieldInfo(Field.REGION_COUNT, 7, true),<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    new FieldInfo(Field.REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.44"></a>
-<span class="sourceLineNo">045</span>    new FieldInfo(Field.READ_REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    new FieldInfo(Field.FILTERED_READ_REQUEST_COUNT_PER_SECOND, 8, true),<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    new FieldInfo(Field.WRITE_REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    new FieldInfo(Field.STORE_FILE_SIZE, 13, true),<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    new FieldInfo(Field.UNCOMPRESSED_STORE_FILE_SIZE, 15, false),<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    new FieldInfo(Field.NUM_STORE_FILES, 7, true),<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    new FieldInfo(Field.MEM_STORE_SIZE, 11, true)<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  );<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private final RegionModeStrategy regionModeStrategy = new RegionModeStrategy();<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  TableModeStrategy() {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  }<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  @Override<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  public List&lt;FieldInfo&gt; getFieldInfos() {<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    return fieldInfos;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  }<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  @Override<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  public Field getDefaultSortField() {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    return Field.REQUEST_COUNT_PER_SECOND;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  public List&lt;Record&gt; getRecords(ClusterMetrics clusterMetrics) {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    // Get records from RegionModeStrategy and add REGION_COUNT field<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    List&lt;Record&gt; records = regionModeStrategy.getRecords(clusterMetrics).stream()<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      .map(record -&gt;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>        Record.ofEntries(fieldInfos.stream()<a name="line.74"></a>
-<span class="sourceLineNo">075</span>          .filter(fi -&gt; record.containsKey(fi.getField()))<a name="line.75"></a>
-<span class="sourceLineNo">076</span>          .map(fi -&gt; Record.entry(fi.getField(), record.get(fi.getField())))))<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      .map(record -&gt; Record.builder().putAll(record).put(Field.REGION_COUNT, 1).build())<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      .collect(Collectors.toList());<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>    // Aggregation by NAMESPACE field and TABLE field<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    return records.stream()<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      .collect(Collectors.groupingBy(r -&gt; {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>        String namespace = r.get(Field.NAMESPACE).asString();<a name="line.83"></a>
-<span class="sourceLineNo">084</span>        String table = r.get(Field.TABLE).asString();<a name="line.84"></a>
-<span class="sourceLineNo">085</span>        return TableName.valueOf(namespace, table);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      }))<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      .entrySet().stream()<a name="line.87"></a>
-<span class="sourceLineNo">088</span>      .flatMap(<a name="line.88"></a>
-<span class="sourceLineNo">089</span>        e -&gt; e.getValue().stream()<a name="line.89"></a>
-<span class="sourceLineNo">090</span>          .reduce(Record::combine)<a name="line.90"></a>
-<span class="sourceLineNo">091</span>          .map(Stream::of)<a name="line.91"></a>
-<span class="sourceLineNo">092</span>          .orElse(Stream.empty()))<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      .collect(Collectors.toList());<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  @Override<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public DrillDownInfo drillDown(Record selectedRecord) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    List&lt;RecordFilter&gt; initialFilters = Arrays.asList(<a name="line.98"></a>
-<span class="sourceLineNo">099</span>      RecordFilter.newBuilder(Field.NAMESPACE).doubleEquals(selectedRecord.get(Field.NAMESPACE)),<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      RecordFilter.newBuilder(Field.TABLE).doubleEquals(selectedRecord.get(Field.TABLE)));<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    return new DrillDownInfo(Mode.REGION, initialFilters);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
-<span class="sourceLineNo">103</span>}<a name="line.103"></a>
+<span class="sourceLineNo">033</span>/**<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * Implementation for {@link ModeStrategy} for Table Mode.<a name="line.34"></a>
+<span class="sourceLineNo">035</span> */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>@InterfaceAudience.Private<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public final class TableModeStrategy implements ModeStrategy {<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>  private final List&lt;FieldInfo&gt; fieldInfos = Arrays.asList(<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    new FieldInfo(Field.NAMESPACE, 0, true),<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    new FieldInfo(Field.TABLE, 0, true),<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    new FieldInfo(Field.REGION_COUNT, 7, true),<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    new FieldInfo(Field.REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    new FieldInfo(Field.READ_REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    new FieldInfo(Field.FILTERED_READ_REQUEST_COUNT_PER_SECOND, 8, true),<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    new FieldInfo(Field.WRITE_REQUEST_COUNT_PER_SECOND, 10, true),<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    new FieldInfo(Field.STORE_FILE_SIZE, 13, true),<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    new FieldInfo(Field.UNCOMPRESSED_STORE_FILE_SIZE, 15, false),<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    new FieldInfo(Field.NUM_STORE_FILES, 7, true),<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    new FieldInfo(Field.MEM_STORE_SIZE, 11, true)<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  );<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private final RegionModeStrategy regionModeStrategy = new RegionModeStrategy();<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  TableModeStrategy() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  }<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  public List&lt;FieldInfo&gt; getFieldInfos() {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    return fieldInfos;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  @Override<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  public Field getDefaultSortField() {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    return Field.REQUEST_COUNT_PER_SECOND;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>  @Override<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  public List&lt;Record&gt; getRecords(ClusterMetrics clusterMetrics) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    // Get records from RegionModeStrategy and add REGION_COUNT field<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    List&lt;Record&gt; records = regionModeStrategy.getRecords(clusterMetrics).stream()<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      .map(record -&gt;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        Record.ofEntries(fieldInfos.stream()<a name="line.73"></a>
+<span class="sourceLineNo">074</span>          .filter(fi -&gt; record.containsKey(fi.getField()))<a name="line.74"></a>
+<span class="sourceLineNo">075</span>          .map(fi -&gt; Record.entry(fi.getField(), record.get(fi.getField())))))<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      .map(record -&gt; Record.builder().putAll(record).put(Field.REGION_COUNT, 1).build())<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      .collect(Collectors.toList());<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>    // Aggregation by NAMESPACE field and TABLE field<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    return records.stream()<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      .collect(Collectors.groupingBy(r -&gt; {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        String namespace = r.get(Field.NAMESPACE).asString();<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        String table = r.get(Field.TABLE).asString();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        return TableName.valueOf(namespace, table);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      }))<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      .entrySet().stream()<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      .flatMap(<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        e -&gt; e.getValue().stream()<a name="line.88"></a>
+<span class="sourceLineNo">089</span>          .reduce(Record::combine)<a name="line.89"></a>
+<span class="sourceLineNo">090</span>          .map(Stream::of)<a name="line.90"></a>
+<span class="sourceLineNo">091</span>          .orElse(Stream.empty()))<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      .collect(Collectors.toList());<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>  @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public DrillDownInfo drillDown(Record selectedRecord) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    List&lt;RecordFilter&gt; initialFilters = Arrays.asList(<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      RecordFilter.newBuilder(Field.NAMESPACE).doubleEquals(selectedRecord.get(Field.NAMESPACE)),<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      RecordFilter.newBuilder(Field.TABLE).doubleEquals(selectedRecord.get(Field.TABLE)));<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    return new DrillDownInfo(Mode.REGION, initialFilters);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>}<a name="line.102"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html
index 9b45375..33d74e6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/field/FieldScreenView.html
@@ -93,104 +93,112 @@
 <span class="sourceLineNo">085</span>      case Enter:<a name="line.85"></a>
 <span class="sourceLineNo">086</span>        fieldScreenPresenter.turnOffMoveMode();<a name="line.86"></a>
 <span class="sourceLineNo">087</span>        return this;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    }<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>    if (keyPress.getType() != KeyPress.Type.Character) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      return this;<a name="line.91"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>      default:<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        // Do nothing<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        break;<a name="line.91"></a>
 <span class="sourceLineNo">092</span>    }<a name="line.92"></a>
 <span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>    assert keyPress.getCharacter() != null;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    switch (keyPress.getCharacter()) {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      case 'd':<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      case ' ':<a name="line.97"></a>
-<span class="sourceLineNo">098</span>        fieldScreenPresenter.switchFieldDisplay();<a name="line.98"></a>
-<span class="sourceLineNo">099</span>        break;<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>      case 's':<a name="line.101"></a>
-<span class="sourceLineNo">102</span>        fieldScreenPresenter.setSortField();<a name="line.102"></a>
+<span class="sourceLineNo">094</span>    if (keyPress.getType() != KeyPress.Type.Character) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      return this;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    }<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>    assert keyPress.getCharacter() != null;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    switch (keyPress.getCharacter()) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      case 'd':<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      case ' ':<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        fieldScreenPresenter.switchFieldDisplay();<a name="line.102"></a>
 <span class="sourceLineNo">103</span>        break;<a name="line.103"></a>
 <span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>      case 'q':<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        return fieldScreenPresenter.transitionToNextScreen();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
+<span class="sourceLineNo">105</span>      case 's':<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        fieldScreenPresenter.setSortField();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        break;<a name="line.107"></a>
 <span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>    return this;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
+<span class="sourceLineNo">109</span>      case 'q':<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        return fieldScreenPresenter.transitionToNextScreen();<a name="line.110"></a>
 <span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>  public void showFieldScreen(String sortFieldHeader, List&lt;Field&gt; fields,<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    EnumMap&lt;Field, Boolean&gt; fieldDisplayMap, int currentPosition, int headerMaxLength,<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    int descriptionMaxLength, boolean moveMode) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    showScreenDescription(sortFieldHeader);<a name="line.115"></a>
+<span class="sourceLineNo">112</span>      default:<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        // Do nothing<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        break;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
 <span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>    for (int i = 0; i &lt; fields.size(); i ++) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      Field field = fields.get(i);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      showField(i, field, fieldDisplayMap.get(field), i == currentPosition, headerMaxLength,<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        descriptionMaxLength, moveMode);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>  public void showScreenDescription(String sortKeyHeader) {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    TerminalPrinter printer = getTerminalPrinter(SCREEN_DESCRIPTION_START_ROW);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    printer.startBold().print("Fields Management").stopBold().endOfLine();<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    printer.print("Current Sort Field: ").startBold().print(sortKeyHeader).stopBold().endOfLine();<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    printer.print("Navigate with up/down, Right selects for move then &lt;Enter&gt; or Left commits,")<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      .endOfLine();<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    printer.print("'d' or &lt;Space&gt; toggles display, 's' sets sort. Use 'q' or &lt;Esc&gt; to end!")<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      .endOfLine();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public void showField(int pos, Field field, boolean display, boolean selected,<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    int fieldHeaderMaxLength, int fieldDescriptionMaxLength, boolean moveMode) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>    String fieldHeader = String.format("%-" + fieldHeaderMaxLength + "s", field.getHeader());<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    String fieldDescription = String.format("%-" + fieldDescriptionMaxLength + "s",<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      field.getDescription());<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    int row = FIELD_START_ROW + pos;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    TerminalPrinter printer = getTerminalPrinter(row);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (selected) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      String prefix = display ? "* " : "  ";<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      if (moveMode) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        printer.print(prefix);<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>        if (display) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          printer.startBold();<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        }<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>        printer.startHighlight()<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          .printFormat("%s = %s", fieldHeader, fieldDescription).stopHighlight();<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>        if (display) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>          printer.stopBold();<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        }<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>        printer.endOfLine();<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      } else {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        printer.print(prefix);<a name="line.161"></a>
+<span class="sourceLineNo">117</span>    return this;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  public void showFieldScreen(String sortFieldHeader, List&lt;Field&gt; fields,<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    EnumMap&lt;Field, Boolean&gt; fieldDisplayMap, int currentPosition, int headerMaxLength,<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    int descriptionMaxLength, boolean moveMode) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    showScreenDescription(sortFieldHeader);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>    for (int i = 0; i &lt; fields.size(); i ++) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      Field field = fields.get(i);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      showField(i, field, fieldDisplayMap.get(field), i == currentPosition, headerMaxLength,<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        descriptionMaxLength, moveMode);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>  public void showScreenDescription(String sortKeyHeader) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    TerminalPrinter printer = getTerminalPrinter(SCREEN_DESCRIPTION_START_ROW);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    printer.startBold().print("Fields Management").stopBold().endOfLine();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    printer.print("Current Sort Field: ").startBold().print(sortKeyHeader).stopBold().endOfLine();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    printer.print("Navigate with up/down, Right selects for move then &lt;Enter&gt; or Left commits,")<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      .endOfLine();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    printer.print("'d' or &lt;Space&gt; toggles display, 's' sets sort. Use 'q' or &lt;Esc&gt; to end!")<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      .endOfLine();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  public void showField(int pos, Field field, boolean display, boolean selected,<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    int fieldHeaderMaxLength, int fieldDescriptionMaxLength, boolean moveMode) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>    String fieldHeader = String.format("%-" + fieldHeaderMaxLength + "s", field.getHeader());<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    String fieldDescription = String.format("%-" + fieldDescriptionMaxLength + "s",<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      field.getDescription());<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>    int row = FIELD_START_ROW + pos;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    TerminalPrinter printer = getTerminalPrinter(row);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    if (selected) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      String prefix = display ? "* " : "  ";<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      if (moveMode) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        printer.print(prefix);<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>        if (display) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>          printer.startBold();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>        printer.startHighlight()<a name="line.160"></a>
+<span class="sourceLineNo">161</span>          .printFormat("%s = %s", fieldHeader, fieldDescription).stopHighlight();<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
 <span class="sourceLineNo">163</span>        if (display) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>          printer.startBold();<a name="line.164"></a>
+<span class="sourceLineNo">164</span>          printer.stopBold();<a name="line.164"></a>
 <span class="sourceLineNo">165</span>        }<a name="line.165"></a>
 <span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>        printer.startHighlight().print(fieldHeader).stopHighlight()<a name="line.167"></a>
-<span class="sourceLineNo">168</span>          .printFormat(" = %s", fieldDescription);<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>        if (display) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          printer.stopBold();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>        printer.endOfLine();<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      }<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    } else {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      if (display) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        printer.print("* ").startBold().printFormat("%s = %s", fieldHeader, fieldDescription)<a name="line.178"></a>
-<span class="sourceLineNo">179</span>          .stopBold().endOfLine();<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      } else {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        printer.printFormat("  %s = %s", fieldHeader, fieldDescription).endOfLine();<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      }<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
-<span class="sourceLineNo">185</span>}<a name="line.185"></a>
+<span class="sourceLineNo">167</span>        printer.endOfLine();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      } else {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        printer.print(prefix);<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>        if (display) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>          printer.startBold();<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>        printer.startHighlight().print(fieldHeader).stopHighlight()<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          .printFormat(" = %s", fieldDescription);<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>        if (display) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>          printer.stopBold();<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>        printer.endOfLine();<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    } else {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      if (display) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        printer.print("* ").startBold().printFormat("%s = %s", fieldHeader, fieldDescription)<a name="line.186"></a>
+<span class="sourceLineNo">187</span>          .stopBold().endOfLine();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      } else {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        printer.printFormat("  %s = %s", fieldHeader, fieldDescription).endOfLine();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      }<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    }<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>}<a name="line.193"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html
index c6a70b2..c337784 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/mode/ModeScreenView.html
@@ -86,56 +86,64 @@
 <span class="sourceLineNo">078</span>      case End:<a name="line.78"></a>
 <span class="sourceLineNo">079</span>        modeScreenPresenter.pageDown();<a name="line.79"></a>
 <span class="sourceLineNo">080</span>        return this;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>    if (keyPress.getType() != KeyPress.Type.Character) {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      return this;<a name="line.84"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>      default:<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        // Do nothing<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        break;<a name="line.84"></a>
 <span class="sourceLineNo">085</span>    }<a name="line.85"></a>
 <span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>    assert keyPress.getCharacter() != null;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    switch (keyPress.getCharacter()) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      case 'q':<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        return modeScreenPresenter.transitionToNextScreen(false);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>    return this;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">087</span>    if (keyPress.getType() != KeyPress.Type.Character) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      return this;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>    assert keyPress.getCharacter() != null;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    switch (keyPress.getCharacter()) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      case 'q':<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        return modeScreenPresenter.transitionToNextScreen(false);<a name="line.94"></a>
 <span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public void showModeScreen(Mode currentMode, List&lt;Mode&gt; modes, int currentPosition,<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    int modeHeaderMaxLength, int modeDescriptionMaxLength) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    showScreenDescription(currentMode);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    for (int i = 0; i &lt; modes.size(); i++) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      showMode(i, modes.get(i), i == currentPosition,<a name="line.101"></a>
-<span class="sourceLineNo">102</span>        modeHeaderMaxLength, modeDescriptionMaxLength);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  private void showScreenDescription(Mode currentMode) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    TerminalPrinter printer = getTerminalPrinter(SCREEN_DESCRIPTION_START_ROW);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    printer.startBold().print("Mode Management").stopBold().endOfLine();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    printer.print("Current mode: ")<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      .startBold().print(currentMode.getHeader()).stopBold().endOfLine();<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    printer.print("Select mode followed by &lt;Enter&gt;").endOfLine();<a name="line.111"></a>
+<span class="sourceLineNo">096</span>      default:<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        // Do nothing<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        break;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>    return this;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public void showModeScreen(Mode currentMode, List&lt;Mode&gt; modes, int currentPosition,<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    int modeHeaderMaxLength, int modeDescriptionMaxLength) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    showScreenDescription(currentMode);<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>    for (int i = 0; i &lt; modes.size(); i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      showMode(i, modes.get(i), i == currentPosition,<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        modeHeaderMaxLength, modeDescriptionMaxLength);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    }<a name="line.111"></a>
 <span class="sourceLineNo">112</span>  }<a name="line.112"></a>
 <span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public void showMode(int pos, Mode mode, boolean selected, int modeHeaderMaxLength,<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    int modeDescriptionMaxLength) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>    String modeHeader = String.format("%-" + modeHeaderMaxLength + "s", mode.getHeader());<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    String modeDescription = String.format("%-" + modeDescriptionMaxLength + "s",<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      mode.getDescription());<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>    int row = MODE_START_ROW + pos;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    TerminalPrinter printer = getTerminalPrinter(row);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    if (selected) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      printer.startHighlight().print(modeHeader).stopHighlight()<a name="line.124"></a>
-<span class="sourceLineNo">125</span>        .printFormat(" = %s", modeDescription).endOfLine();<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    } else {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      printer.printFormat("%s = %s", modeHeader, modeDescription).endOfLine();<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>}<a name="line.130"></a>
+<span class="sourceLineNo">114</span>  private void showScreenDescription(Mode currentMode) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    TerminalPrinter printer = getTerminalPrinter(SCREEN_DESCRIPTION_START_ROW);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    printer.startBold().print("Mode Management").stopBold().endOfLine();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    printer.print("Current mode: ")<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      .startBold().print(currentMode.getHeader()).stopBold().endOfLine();<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    printer.print("Select mode followed by &lt;Enter&gt;").endOfLine();<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public void showMode(int pos, Mode mode, boolean selected, int modeHeaderMaxLength,<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    int modeDescriptionMaxLength) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>    String modeHeader = String.format("%-" + modeHeaderMaxLength + "s", mode.getHeader());<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    String modeDescription = String.format("%-" + modeDescriptionMaxLength + "s",<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      mode.getDescription());<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>    int row = MODE_START_ROW + pos;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    TerminalPrinter printer = getTerminalPrinter(row);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    if (selected) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      printer.startHighlight().print(modeHeader).stopHighlight()<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        .printFormat(" = %s", modeDescription).endOfLine();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    } else {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      printer.printFormat("%s = %s", modeHeader, modeDescription).endOfLine();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>}<a name="line.138"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/top/FilterDisplayModeScreenView.html b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/top/FilterDisplayModeScreenView.html
index 49208d2..94d62ac 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/top/FilterDisplayModeScreenView.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/top/FilterDisplayModeScreenView.html
@@ -62,24 +62,23 @@
 <span class="sourceLineNo">054</span><a name="line.54"></a>
 <span class="sourceLineNo">055</span>  @Override<a name="line.55"></a>
 <span class="sourceLineNo">056</span>  public ScreenView handleKeyPress(KeyPress keyPress) {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    switch (keyPress.getType()) {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      case Enter:<a name="line.58"></a>
-<span class="sourceLineNo">059</span>        return filterDisplayModeScreenPresenter.returnToNextScreen();<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    }<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    return this;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  }<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  public void showFilters(List&lt;RecordFilter&gt; filters) {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    String filtersString = "none";<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    if (!filters.isEmpty()) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>      filtersString = String.join(" + ",<a name="line.67"></a>
-<span class="sourceLineNo">068</span>        filters.stream().map(f -&gt; String.format("'%s'", f)).collect(Collectors.toList()));<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    }<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>    getTerminalPrinter(row).startBold().print("&lt;Enter&gt; to resume, filters: " + filtersString)<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      .stopBold().endOfLine();<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
-<span class="sourceLineNo">074</span>}<a name="line.74"></a>
+<span class="sourceLineNo">057</span>    if (keyPress.getType() == KeyPress.Type.Enter) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      return filterDisplayModeScreenPresenter.returnToNextScreen();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    }<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    return this;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public void showFilters(List&lt;RecordFilter&gt; filters) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    String filtersString = "none";<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    if (!filters.isEmpty()) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>      filtersString = String.join(" + ",<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        filters.stream().map(f -&gt; String.format("'%s'", f)).collect(Collectors.toList()));<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    }<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>    getTerminalPrinter(row).startBold().print("&lt;Enter&gt; to resume, filters: " + filtersString)<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      .stopBold().endOfLine();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>}<a name="line.73"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html
index d386f26..8ee1f25 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenView.html
@@ -123,189 +123,195 @@
 <span class="sourceLineNo">115</span><a name="line.115"></a>
 <span class="sourceLineNo">116</span>      case Escape:<a name="line.116"></a>
 <span class="sourceLineNo">117</span>        return null;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
-<span class="sourceLineNo">119</span><a name="line.119"></a>
-<span class="sourceLineNo">120</span>    if (keyPress.getType() != KeyPress.Type.Character) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      return unknownCommandMessage();<a name="line.121"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>      default:<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        // Do nothing<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        break;<a name="line.121"></a>
 <span class="sourceLineNo">122</span>    }<a name="line.122"></a>
 <span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    assert keyPress.getCharacter() != null;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    switch (keyPress.getCharacter()) {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      case 'R':<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        topScreenPresenter.switchSortOrder();<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        break;<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>      case 'f':<a name="line.130"></a>
-<span class="sourceLineNo">131</span>        cancelTimer();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>        return topScreenPresenter.transitionToFieldScreen(getScreen(), getTerminal());<a name="line.132"></a>
+<span class="sourceLineNo">124</span>    if (keyPress.getType() != KeyPress.Type.Character) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      return unknownCommandMessage();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>    assert keyPress.getCharacter() != null;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    switch (keyPress.getCharacter()) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      case 'R':<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        topScreenPresenter.switchSortOrder();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        break;<a name="line.132"></a>
 <span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>      case 'm':<a name="line.134"></a>
+<span class="sourceLineNo">134</span>      case 'f':<a name="line.134"></a>
 <span class="sourceLineNo">135</span>        cancelTimer();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        return topScreenPresenter.transitionToModeScreen(getScreen(), getTerminal());<a name="line.136"></a>
+<span class="sourceLineNo">136</span>        return topScreenPresenter.transitionToFieldScreen(getScreen(), getTerminal());<a name="line.136"></a>
 <span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>      case 'h':<a name="line.138"></a>
+<span class="sourceLineNo">138</span>      case 'm':<a name="line.138"></a>
 <span class="sourceLineNo">139</span>        cancelTimer();<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        return topScreenPresenter.transitionToHelpScreen(getScreen(), getTerminal());<a name="line.140"></a>
+<span class="sourceLineNo">140</span>        return topScreenPresenter.transitionToModeScreen(getScreen(), getTerminal());<a name="line.140"></a>
 <span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>      case 'd':<a name="line.142"></a>
+<span class="sourceLineNo">142</span>      case 'h':<a name="line.142"></a>
 <span class="sourceLineNo">143</span>        cancelTimer();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>        return topScreenPresenter.goToInputModeForRefreshDelay(getScreen(), getTerminal(),<a name="line.144"></a>
-<span class="sourceLineNo">145</span>          MESSAGE_ROW);<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>      case 'o':<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        cancelTimer();<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        if (keyPress.isCtrl()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>          return topScreenPresenter.goToFilterDisplayMode(getScreen(), getTerminal(), MESSAGE_ROW);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>        }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        return topScreenPresenter.goToInputModeForFilter(getScreen(), getTerminal(), MESSAGE_ROW,<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          true);<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>      case 'O':<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        cancelTimer();<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        return topScreenPresenter.goToInputModeForFilter(getScreen(), getTerminal(), MESSAGE_ROW,<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          false);<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>      case '=':<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        topScreenPresenter.clearFilters();<a name="line.161"></a>
-<span class="sourceLineNo">162</span>        break;<a name="line.162"></a>
+<span class="sourceLineNo">144</span>        return topScreenPresenter.transitionToHelpScreen(getScreen(), getTerminal());<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>      case 'd':<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        cancelTimer();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        return topScreenPresenter.goToInputModeForRefreshDelay(getScreen(), getTerminal(),<a name="line.148"></a>
+<span class="sourceLineNo">149</span>          MESSAGE_ROW);<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>      case 'o':<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        cancelTimer();<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        if (keyPress.isCtrl()) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>          return topScreenPresenter.goToFilterDisplayMode(getScreen(), getTerminal(), MESSAGE_ROW);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        return topScreenPresenter.goToInputModeForFilter(getScreen(), getTerminal(), MESSAGE_ROW,<a name="line.156"></a>
+<span class="sourceLineNo">157</span>          true);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>      case 'O':<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        cancelTimer();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        return topScreenPresenter.goToInputModeForFilter(getScreen(), getTerminal(), MESSAGE_ROW,<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          false);<a name="line.162"></a>
 <span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>      case 'X':<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        topScreenPresenter.adjustFieldLength();<a name="line.165"></a>
+<span class="sourceLineNo">164</span>      case '=':<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        topScreenPresenter.clearFilters();<a name="line.165"></a>
 <span class="sourceLineNo">166</span>        break;<a name="line.166"></a>
 <span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>      case 'i':<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        topScreenPresenter.drillDown();<a name="line.169"></a>
+<span class="sourceLineNo">168</span>      case 'X':<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        topScreenPresenter.adjustFieldLength();<a name="line.169"></a>
 <span class="sourceLineNo">170</span>        break;<a name="line.170"></a>
 <span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>      case 'q':<a name="line.172"></a>
-<span class="sourceLineNo">173</span>        return null;<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>      default:<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        return unknownCommandMessage();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    return this;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  public TerminalSize getTerminalSize() {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    TerminalSize terminalSize = super.getTerminalSize();<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    updatePageSize(terminalSize);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    return terminalSize;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  }<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>  public TerminalSize doResizeIfNecessary() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    TerminalSize terminalSize = super.doResizeIfNecessary();<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    if (terminalSize == null) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return null;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    updatePageSize(terminalSize);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    return terminalSize;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>  private void updatePageSize(TerminalSize terminalSize) {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    pageSize = terminalSize.getRows() - SUMMARY_ROW_NUM - 2;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    if (pageSize &lt; 0) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      pageSize = 0;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  public int getPageSize() {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    return pageSize;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  public void showTopScreen(Summary summary, List&lt;Header&gt; headers, List&lt;Record&gt; records,<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    Record selectedRecord) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    showSummary(summary);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    clearMessage();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    showHeaders(headers);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    showRecords(headers, records, selectedRecord);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private void showSummary(Summary summary) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    TerminalPrinter printer = getTerminalPrinter(SUMMARY_START_ROW);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    printer.print(String.format("HBase hbtop - %s", summary.getCurrentTime())).endOfLine();<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    printer.print(String.format("Version: %s", summary.getVersion())).endOfLine();<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    printer.print(String.format("Cluster ID: %s", summary.getClusterId())).endOfLine();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    printer.print("RegionServer(s): ")<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      .startBold().print(Integer.toString(summary.getServers())).stopBold()<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      .print(" total, ")<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      .startBold().print(Integer.toString(summary.getLiveServers())).stopBold()<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      .print(" live, ")<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      .startBold().print(Integer.toString(summary.getDeadServers())).stopBold()<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      .print(" dead").endOfLine();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    printer.print("RegionCount: ")<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      .startBold().print(Integer.toString(summary.getRegionCount())).stopBold()<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      .print(" total, ")<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      .startBold().print(Integer.toString(summary.getRitCount())).stopBold()<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      .print(" rit").endOfLine();<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    printer.print("Average Cluster Load: ")<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      .startBold().print(String.format("%.2f", summary.getAverageLoad())).stopBold().endOfLine();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    printer.print("Aggregate Request/s: ")<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      .startBold().print(Long.toString(summary.getAggregateRequestPerSecond())).stopBold()<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      .endOfLine();<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  }<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  private void showRecords(List&lt;Header&gt; headers, List&lt;Record&gt; records, Record selectedRecord) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    TerminalPrinter printer = getTerminalPrinter(RECORD_START_ROW);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    List&lt;String&gt; buf = new ArrayList&lt;&gt;(headers.size());<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    for (int i = 0; i &lt; pageSize; i++) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      if(i &lt; records.size()) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        Record record = records.get(i);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>        buf.clear();<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        for (Header header : headers) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          String value = "";<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          if (record.containsKey(header.getField())) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>            value = record.get(header.getField()).asString();<a name="line.249"></a>
-<span class="sourceLineNo">250</span>          }<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>          buf.add(limitLineLength(String.format(header.format(), value), header.getLength()));<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        }<a name="line.253"></a>
-<span class="sourceLineNo">254</span><a name="line.254"></a>
-<span class="sourceLineNo">255</span>        String recordString = String.join(" ", buf);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        if (!recordString.isEmpty()) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>          recordString += " ";<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        }<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>        if (record == selectedRecord) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>          printer.startHighlight().print(recordString).stopHighlight().endOfLine();<a name="line.261"></a>
-<span class="sourceLineNo">262</span>        } else {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>          printer.print(recordString).endOfLine();<a name="line.263"></a>
+<span class="sourceLineNo">172</span>      case 'i':<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        topScreenPresenter.drillDown();<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        break;<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>      case 'q':<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        return null;<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>      default:<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        return unknownCommandMessage();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    return this;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  @Override<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  public TerminalSize getTerminalSize() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    TerminalSize terminalSize = super.getTerminalSize();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    updatePageSize(terminalSize);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    return terminalSize;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  public TerminalSize doResizeIfNecessary() {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    TerminalSize terminalSize = super.doResizeIfNecessary();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    if (terminalSize == null) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      return null;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    updatePageSize(terminalSize);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    return terminalSize;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>  private void updatePageSize(TerminalSize terminalSize) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    pageSize = terminalSize.getRows() - SUMMARY_ROW_NUM - 2;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    if (pageSize &lt; 0) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      pageSize = 0;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  public int getPageSize() {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    return pageSize;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  public void showTopScreen(Summary summary, List&lt;Header&gt; headers, List&lt;Record&gt; records,<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    Record selectedRecord) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    showSummary(summary);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    clearMessage();<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    showHeaders(headers);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    showRecords(headers, records, selectedRecord);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private void showSummary(Summary summary) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    TerminalPrinter printer = getTerminalPrinter(SUMMARY_START_ROW);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    printer.print(String.format("HBase hbtop - %s", summary.getCurrentTime())).endOfLine();<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    printer.print(String.format("Version: %s", summary.getVersion())).endOfLine();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    printer.print(String.format("Cluster ID: %s", summary.getClusterId())).endOfLine();<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    printer.print("RegionServer(s): ")<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      .startBold().print(Integer.toString(summary.getServers())).stopBold()<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      .print(" total, ")<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      .startBold().print(Integer.toString(summary.getLiveServers())).stopBold()<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      .print(" live, ")<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      .startBold().print(Integer.toString(summary.getDeadServers())).stopBold()<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      .print(" dead").endOfLine();<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    printer.print("RegionCount: ")<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      .startBold().print(Integer.toString(summary.getRegionCount())).stopBold()<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      .print(" total, ")<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      .startBold().print(Integer.toString(summary.getRitCount())).stopBold()<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      .print(" rit").endOfLine();<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    printer.print("Average Cluster Load: ")<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      .startBold().print(String.format("%.2f", summary.getAverageLoad())).stopBold().endOfLine();<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    printer.print("Aggregate Request/s: ")<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      .startBold().print(Long.toString(summary.getAggregateRequestPerSecond())).stopBold()<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      .endOfLine();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  private void showRecords(List&lt;Header&gt; headers, List&lt;Record&gt; records, Record selectedRecord) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    TerminalPrinter printer = getTerminalPrinter(RECORD_START_ROW);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    List&lt;String&gt; buf = new ArrayList&lt;&gt;(headers.size());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    for (int i = 0; i &lt; pageSize; i++) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      if(i &lt; records.size()) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        Record record = records.get(i);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        buf.clear();<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        for (Header header : headers) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>          String value = "";<a name="line.253"></a>
+<span class="sourceLineNo">254</span>          if (record.containsKey(header.getField())) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>            value = record.get(header.getField()).asString();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>          buf.add(limitLineLength(String.format(header.format(), value), header.getLength()));<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>        String recordString = String.join(" ", buf);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        if (!recordString.isEmpty()) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>          recordString += " ";<a name="line.263"></a>
 <span class="sourceLineNo">264</span>        }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      } else {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        printer.endOfLine();<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>  }<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>  private void showHeaders(List&lt;Header&gt; headers) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    String header = headers.stream()<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      .map(h -&gt; String.format(h.format(), h.getField().getHeader()))<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      .collect(Collectors.joining(" "));<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>    if (!header.isEmpty()) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      header += " ";<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>    getTerminalPrinter(RECORD_HEADER_ROW).startHighlight().print(header).stopHighlight()<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      .endOfLine();<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  private String limitLineLength(String line, int length) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    if (line.length() &gt; length) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      return line.substring(0, length - 1) + "+";<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    return line;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>  }<a name="line.289"></a>
-<span class="sourceLineNo">290</span><a name="line.290"></a>
-<span class="sourceLineNo">291</span>  private void clearMessage() {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    getTerminalPrinter(MESSAGE_ROW).print("").endOfLine();<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  }<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>  private ScreenView unknownCommandMessage() {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    cancelTimer();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    return topScreenPresenter.goToMessageMode(getScreen(), getTerminal(), MESSAGE_ROW,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      "Unknown command - try 'h' for help");<a name="line.298"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>        if (record == selectedRecord) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>          printer.startHighlight().print(recordString).stopHighlight().endOfLine();<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        } else {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>          printer.print(recordString).endOfLine();<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      } else {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        printer.endOfLine();<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>  private void showHeaders(List&lt;Header&gt; headers) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    String header = headers.stream()<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      .map(h -&gt; String.format(h.format(), h.getField().getHeader()))<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      .collect(Collectors.joining(" "));<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>    if (!header.isEmpty()) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      header += " ";<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    getTerminalPrinter(RECORD_HEADER_ROW).startHighlight().print(header).stopHighlight()<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      .endOfLine();<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span>  private String limitLineLength(String line, int length) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    if (line.length() &gt; length) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      return line.substring(0, length - 1) + "+";<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    return line;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>  private void clearMessage() {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    getTerminalPrinter(MESSAGE_ROW).print("").endOfLine();<a name="line.298"></a>
 <span class="sourceLineNo">299</span>  }<a name="line.299"></a>
-<span class="sourceLineNo">300</span>}<a name="line.300"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>  private ScreenView unknownCommandMessage() {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    cancelTimer();<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    return topScreenPresenter.goToMessageMode(getScreen(), getTerminal(), MESSAGE_ROW,<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      "Unknown command - try 'h' for help");<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>}<a name="line.306"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.ParseState.html b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.ParseState.html
index f1ee4bf..48bb911 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.ParseState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.ParseState.html
@@ -83,8 +83,8 @@
 <span class="sourceLineNo">075</span>  }<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
 <span class="sourceLineNo">077</span>  public void start() {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    executorService.submit(this::readerThread);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    executorService.submit(this::generatorThread);<a name="line.79"></a>
+<span class="sourceLineNo">078</span>    executorService.execute(this::readerThread);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    executorService.execute(this::generatorThread);<a name="line.79"></a>
 <span class="sourceLineNo">080</span>  }<a name="line.80"></a>
 <span class="sourceLineNo">081</span><a name="line.81"></a>
 <span class="sourceLineNo">082</span>  private void initState() {<a name="line.82"></a>
@@ -166,334 +166,338 @@
 <span class="sourceLineNo">158</span>          case '\t':<a name="line.158"></a>
 <span class="sourceLineNo">159</span>            offer(new KeyPress(KeyPress.Type.Tab, '\t', false, false, false));<a name="line.159"></a>
 <span class="sourceLineNo">160</span>            continue;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        }<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>        if (ch &lt; 32) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>          ctrlAndCharacter(ch);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          continue;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>        if (isPrintableChar(ch)) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>          // Normal character<a name="line.169"></a>
-<span class="sourceLineNo">170</span>          offer(new KeyPress(KeyPress.Type.Character, ch, false, false, false));<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          continue;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.174"></a>
-<span class="sourceLineNo">175</span>        continue;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      }<a name="line.176"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>          default:<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            // Do nothing<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            break;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>        if (ch &lt; 32) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>          ctrlAndCharacter(ch);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>          continue;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>        if (isPrintableChar(ch)) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          // Normal character<a name="line.173"></a>
+<span class="sourceLineNo">174</span>          offer(new KeyPress(KeyPress.Type.Character, ch, false, false, false));<a name="line.174"></a>
+<span class="sourceLineNo">175</span>          continue;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        }<a name="line.176"></a>
 <span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>      if (parseState == ParseState.ESCAPE) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        if (ch == 0x1B) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>          offer(new KeyPress(KeyPress.Type.Escape, null, false, false, false));<a name="line.180"></a>
-<span class="sourceLineNo">181</span>          continue;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
-<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>        if (ch &lt; 32 &amp;&amp; ch != 0x08) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>          ctrlAltAndCharacter(ch);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>          initState();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>          continue;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        } else if (ch == 0x7F || ch == 0x08) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>          offer(new KeyPress(KeyPress.Type.Backspace, '\b', false, false, false));<a name="line.189"></a>
+<span class="sourceLineNo">178</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        continue;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>      if (parseState == ParseState.ESCAPE) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        if (ch == 0x1B) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>          offer(new KeyPress(KeyPress.Type.Escape, null, false, false, false));<a name="line.184"></a>
+<span class="sourceLineNo">185</span>          continue;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>        if (ch &lt; 32 &amp;&amp; ch != 0x08) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>          ctrlAltAndCharacter(ch);<a name="line.189"></a>
 <span class="sourceLineNo">190</span>          initState();<a name="line.190"></a>
 <span class="sourceLineNo">191</span>          continue;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>        if (ch == '[' || ch == 'O') {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>          parseState = ParseState.ESCAPE_SEQUENCE_PARAM1;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>          continue;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>        }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>        if (isPrintableChar(ch)) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>          // Alt and character<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          offer(new KeyPress(KeyPress.Type.Character, ch, true, false, false));<a name="line.201"></a>
-<span class="sourceLineNo">202</span>          initState();<a name="line.202"></a>
-<span class="sourceLineNo">203</span>          continue;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>        offer(new KeyPress(KeyPress.Type.Escape, null, false, false, false));<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        initState();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        continue;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      }<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>      escapeSequenceCharacter(ch);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
+<span class="sourceLineNo">192</span>        } else if (ch == 0x7F || ch == 0x08) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          offer(new KeyPress(KeyPress.Type.Backspace, '\b', false, false, false));<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          initState();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          continue;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>        if (ch == '[' || ch == 'O') {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>          parseState = ParseState.ESCAPE_SEQUENCE_PARAM1;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>          continue;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>        if (isPrintableChar(ch)) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>          // Alt and character<a name="line.204"></a>
+<span class="sourceLineNo">205</span>          offer(new KeyPress(KeyPress.Type.Character, ch, true, false, false));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>          initState();<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          continue;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>        offer(new KeyPress(KeyPress.Type.Escape, null, false, false, false));<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        initState();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        continue;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      }<a name="line.214"></a>
 <span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>  private void ctrlAndCharacter(char ch) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    char ctrlCode;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    switch (ch) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      case 0:<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        ctrlCode = ' ';<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        break;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>      case 28:<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        ctrlCode = '\\';<a name="line.224"></a>
+<span class="sourceLineNo">216</span>      escapeSequenceCharacter(ch);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>  private void ctrlAndCharacter(char ch) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    char ctrlCode;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    switch (ch) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      case 0:<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        ctrlCode = ' ';<a name="line.224"></a>
 <span class="sourceLineNo">225</span>        break;<a name="line.225"></a>
 <span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>      case 29:<a name="line.227"></a>
-<span class="sourceLineNo">228</span>        ctrlCode = ']';<a name="line.228"></a>
+<span class="sourceLineNo">227</span>      case 28:<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        ctrlCode = '\\';<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        break;<a name="line.229"></a>
 <span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>      case 30:<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        ctrlCode = '^';<a name="line.232"></a>
+<span class="sourceLineNo">231</span>      case 29:<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        ctrlCode = ']';<a name="line.232"></a>
 <span class="sourceLineNo">233</span>        break;<a name="line.233"></a>
 <span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>      case 31:<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        ctrlCode = '_';<a name="line.236"></a>
+<span class="sourceLineNo">235</span>      case 30:<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        ctrlCode = '^';<a name="line.236"></a>
 <span class="sourceLineNo">237</span>        break;<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>      default:<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        ctrlCode = (char) ('a' - 1 + ch);<a name="line.240"></a>
+<span class="sourceLineNo">239</span>      case 31:<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        ctrlCode = '_';<a name="line.240"></a>
 <span class="sourceLineNo">241</span>        break;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    offer(new KeyPress(KeyPress.Type.Character, ctrlCode, false, true, false));<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  private boolean isPrintableChar(char ch) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    if (Character.isISOControl(ch)) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      return false;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Character.UnicodeBlock block = Character.UnicodeBlock.of(ch);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    return block != null &amp;&amp; block != Character.UnicodeBlock.SPECIALS;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>  private void ctrlAltAndCharacter(char ch) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    char ctrlCode;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    switch (ch) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      case 0:<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        ctrlCode = ' ';<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        break;<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>      case 28:<a name="line.261"></a>
-<span class="sourceLineNo">262</span>        ctrlCode = '\\';<a name="line.262"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>      default:<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        ctrlCode = (char) ('a' - 1 + ch);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        break;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    offer(new KeyPress(KeyPress.Type.Character, ctrlCode, false, true, false));<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>  private boolean isPrintableChar(char ch) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    if (Character.isISOControl(ch)) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      return false;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    Character.UnicodeBlock block = Character.UnicodeBlock.of(ch);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    return block != null &amp;&amp; !block.equals(Character.UnicodeBlock.SPECIALS);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>  private void ctrlAltAndCharacter(char ch) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    char ctrlCode;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    switch (ch) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      case 0:<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        ctrlCode = ' ';<a name="line.262"></a>
 <span class="sourceLineNo">263</span>        break;<a name="line.263"></a>
 <span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>      case 29:<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        ctrlCode = ']';<a name="line.266"></a>
+<span class="sourceLineNo">265</span>      case 28:<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        ctrlCode = '\\';<a name="line.266"></a>
 <span class="sourceLineNo">267</span>        break;<a name="line.267"></a>
 <span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>      case 30:<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        ctrlCode = '^';<a name="line.270"></a>
+<span class="sourceLineNo">269</span>      case 29:<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        ctrlCode = ']';<a name="line.270"></a>
 <span class="sourceLineNo">271</span>        break;<a name="line.271"></a>
 <span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>      case 31:<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        ctrlCode = '_';<a name="line.274"></a>
+<span class="sourceLineNo">273</span>      case 30:<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        ctrlCode = '^';<a name="line.274"></a>
 <span class="sourceLineNo">275</span>        break;<a name="line.275"></a>
 <span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>      default:<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        ctrlCode = (char) ('a' - 1 + ch);<a name="line.278"></a>
+<span class="sourceLineNo">277</span>      case 31:<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        ctrlCode = '_';<a name="line.278"></a>
 <span class="sourceLineNo">279</span>        break;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    offer(new KeyPress(KeyPress.Type.Character, ctrlCode, true, true, false));<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  private void escapeSequenceCharacter(char ch) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    switch (parseState) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      case ESCAPE_SEQUENCE_PARAM1:<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        if (ch == ';') {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          parseState = ParseState.ESCAPE_SEQUENCE_PARAM2;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        } else if (Character.isDigit(ch)) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          param1 = param1 * 10 + Character.digit(ch, 10);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        } else {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          doneEscapeSequenceCharacter(ch);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        }<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        break;<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>      case ESCAPE_SEQUENCE_PARAM2:<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        if (Character.isDigit(ch)) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>          param2 = param2 * 10 + Character.digit(ch, 10);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        } else {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          doneEscapeSequenceCharacter(ch);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        break;<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>      default:<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        throw new AssertionError();<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private void doneEscapeSequenceCharacter(char last) {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    boolean alt = false;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    boolean ctrl = false;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    boolean shift = false;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    if (param2 != 0) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      alt = isAlt(param2);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      ctrl = isCtrl(param2);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      shift = isShift(param2);<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>    if (last != '~') {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      switch (last) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        case 'A':<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          offer(new KeyPress(KeyPress.Type.ArrowUp, null, alt, ctrl, shift));<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          break;<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>        case 'B':<a name="line.325"></a>
-<span class="sourceLineNo">326</span>          offer(new KeyPress(KeyPress.Type.ArrowDown, null, alt, ctrl, shift));<a name="line.326"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>      default:<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        ctrlCode = (char) ('a' - 1 + ch);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        break;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    offer(new KeyPress(KeyPress.Type.Character, ctrlCode, true, true, false));<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  private void escapeSequenceCharacter(char ch) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    switch (parseState) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      case ESCAPE_SEQUENCE_PARAM1:<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (ch == ';') {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          parseState = ParseState.ESCAPE_SEQUENCE_PARAM2;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else if (Character.isDigit(ch)) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          param1 = param1 * 10 + Character.digit(ch, 10);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        } else {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          doneEscapeSequenceCharacter(ch);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        break;<a name="line.298"></a>
+<span class="sourceLineNo">299</span><a name="line.299"></a>
+<span class="sourceLineNo">300</span>      case ESCAPE_SEQUENCE_PARAM2:<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        if (Character.isDigit(ch)) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>          param2 = param2 * 10 + Character.digit(ch, 10);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        } else {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>          doneEscapeSequenceCharacter(ch);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        break;<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>      default:<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        throw new AssertionError();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>  private void doneEscapeSequenceCharacter(char last) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    boolean alt = false;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    boolean ctrl = false;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    boolean shift = false;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (param2 != 0) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      alt = isAlt(param2);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      ctrl = isCtrl(param2);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      shift = isShift(param2);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>    if (last != '~') {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      switch (last) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        case 'A':<a name="line.325"></a>
+<span class="sourceLineNo">326</span>          offer(new KeyPress(KeyPress.Type.ArrowUp, null, alt, ctrl, shift));<a name="line.326"></a>
 <span class="sourceLineNo">327</span>          break;<a name="line.327"></a>
 <span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>        case 'C':<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          offer(new KeyPress(KeyPress.Type.ArrowRight, null, alt, ctrl, shift));<a name="line.330"></a>
+<span class="sourceLineNo">329</span>        case 'B':<a name="line.329"></a>
+<span class="sourceLineNo">330</span>          offer(new KeyPress(KeyPress.Type.ArrowDown, null, alt, ctrl, shift));<a name="line.330"></a>
 <span class="sourceLineNo">331</span>          break;<a name="line.331"></a>
 <span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>        case 'D':<a name="line.333"></a>
-<span class="sourceLineNo">334</span>          offer(new KeyPress(KeyPress.Type.ArrowLeft, null, alt, ctrl, shift));<a name="line.334"></a>
+<span class="sourceLineNo">333</span>        case 'C':<a name="line.333"></a>
+<span class="sourceLineNo">334</span>          offer(new KeyPress(KeyPress.Type.ArrowRight, null, alt, ctrl, shift));<a name="line.334"></a>
 <span class="sourceLineNo">335</span>          break;<a name="line.335"></a>
 <span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>        case 'H':<a name="line.337"></a>
-<span class="sourceLineNo">338</span>          offer(new KeyPress(KeyPress.Type.Home, null, alt, ctrl, shift));<a name="line.338"></a>
+<span class="sourceLineNo">337</span>        case 'D':<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          offer(new KeyPress(KeyPress.Type.ArrowLeft, null, alt, ctrl, shift));<a name="line.338"></a>
 <span class="sourceLineNo">339</span>          break;<a name="line.339"></a>
 <span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>        case 'F':<a name="line.341"></a>
-<span class="sourceLineNo">342</span>          offer(new KeyPress(KeyPress.Type.End, null, alt, ctrl, shift));<a name="line.342"></a>
+<span class="sourceLineNo">341</span>        case 'H':<a name="line.341"></a>
+<span class="sourceLineNo">342</span>          offer(new KeyPress(KeyPress.Type.Home, null, alt, ctrl, shift));<a name="line.342"></a>
 <span class="sourceLineNo">343</span>          break;<a name="line.343"></a>
 <span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>        case 'P':<a name="line.345"></a>
-<span class="sourceLineNo">346</span>          offer(new KeyPress(KeyPress.Type.F1, null, alt, ctrl, shift));<a name="line.346"></a>
+<span class="sourceLineNo">345</span>        case 'F':<a name="line.345"></a>
+<span class="sourceLineNo">346</span>          offer(new KeyPress(KeyPress.Type.End, null, alt, ctrl, shift));<a name="line.346"></a>
 <span class="sourceLineNo">347</span>          break;<a name="line.347"></a>
 <span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>        case 'Q':<a name="line.349"></a>
-<span class="sourceLineNo">350</span>          offer(new KeyPress(KeyPress.Type.F2, null, alt, ctrl, shift));<a name="line.350"></a>
+<span class="sourceLineNo">349</span>        case 'P':<a name="line.349"></a>
+<span class="sourceLineNo">350</span>          offer(new KeyPress(KeyPress.Type.F1, null, alt, ctrl, shift));<a name="line.350"></a>
 <span class="sourceLineNo">351</span>          break;<a name="line.351"></a>
 <span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>        case 'R':<a name="line.353"></a>
-<span class="sourceLineNo">354</span>          offer(new KeyPress(KeyPress.Type.F3, null, alt, ctrl, shift));<a name="line.354"></a>
+<span class="sourceLineNo">353</span>        case 'Q':<a name="line.353"></a>
+<span class="sourceLineNo">354</span>          offer(new KeyPress(KeyPress.Type.F2, null, alt, ctrl, shift));<a name="line.354"></a>
 <span class="sourceLineNo">355</span>          break;<a name="line.355"></a>
 <span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>        case 'S':<a name="line.357"></a>
-<span class="sourceLineNo">358</span>          offer(new KeyPress(KeyPress.Type.F4, null, alt, ctrl, shift));<a name="line.358"></a>
+<span class="sourceLineNo">357</span>        case 'R':<a name="line.357"></a>
+<span class="sourceLineNo">358</span>          offer(new KeyPress(KeyPress.Type.F3, null, alt, ctrl, shift));<a name="line.358"></a>
 <span class="sourceLineNo">359</span>          break;<a name="line.359"></a>
 <span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>        case 'Z':<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          offer(new KeyPress(KeyPress.Type.ReverseTab, null, alt, ctrl, shift));<a name="line.362"></a>
+<span class="sourceLineNo">361</span>        case 'S':<a name="line.361"></a>
+<span class="sourceLineNo">362</span>          offer(new KeyPress(KeyPress.Type.F4, null, alt, ctrl, shift));<a name="line.362"></a>
 <span class="sourceLineNo">363</span>          break;<a name="line.363"></a>
 <span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>        default:<a name="line.365"></a>
-<span class="sourceLineNo">366</span>          offer(new KeyPress(KeyPress.Type.Unknown, null, alt, ctrl, shift));<a name="line.366"></a>
+<span class="sourceLineNo">365</span>        case 'Z':<a name="line.365"></a>
+<span class="sourceLineNo">366</span>          offer(new KeyPress(KeyPress.Type.ReverseTab, null, alt, ctrl, shift));<a name="line.366"></a>
 <span class="sourceLineNo">367</span>          break;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      initState();<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      return;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    }<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    switch (param1) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      case 1:<a name="line.374"></a>
-<span class="sourceLineNo">375</span>        offer(new KeyPress(KeyPress.Type.Home, null, alt, ctrl, shift));<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        break;<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>      case 2:<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        offer(new KeyPress(KeyPress.Type.Insert, null, alt, ctrl, shift));<a name="line.379"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>        default:<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          offer(new KeyPress(KeyPress.Type.Unknown, null, alt, ctrl, shift));<a name="line.370"></a>
+<span class="sourceLineNo">371</span>          break;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      initState();<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      return;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>    switch (param1) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      case 1:<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        offer(new KeyPress(KeyPress.Type.Home, null, alt, ctrl, shift));<a name="line.379"></a>
 <span class="sourceLineNo">380</span>        break;<a name="line.380"></a>
 <span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>      case 3:<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        offer(new KeyPress(KeyPress.Type.Delete, null, alt, ctrl, shift));<a name="line.383"></a>
+<span class="sourceLineNo">382</span>      case 2:<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        offer(new KeyPress(KeyPress.Type.Insert, null, alt, ctrl, shift));<a name="line.383"></a>
 <span class="sourceLineNo">384</span>        break;<a name="line.384"></a>
 <span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>      case 4:<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        offer(new KeyPress(KeyPress.Type.End, null, alt, ctrl, shift));<a name="line.387"></a>
+<span class="sourceLineNo">386</span>      case 3:<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        offer(new KeyPress(KeyPress.Type.Delete, null, alt, ctrl, shift));<a name="line.387"></a>
 <span class="sourceLineNo">388</span>        break;<a name="line.388"></a>
 <span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>      case 5:<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        offer(new KeyPress(KeyPress.Type.PageUp, null, alt, ctrl, shift));<a name="line.391"></a>
+<span class="sourceLineNo">390</span>      case 4:<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        offer(new KeyPress(KeyPress.Type.End, null, alt, ctrl, shift));<a name="line.391"></a>
 <span class="sourceLineNo">392</span>        break;<a name="line.392"></a>
 <span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>      case 6:<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        offer(new KeyPress(KeyPress.Type.PageDown, null, alt, ctrl, shift));<a name="line.395"></a>
+<span class="sourceLineNo">394</span>      case 5:<a name="line.394"></a>
+<span class="sourceLineNo">395</span>        offer(new KeyPress(KeyPress.Type.PageUp, null, alt, ctrl, shift));<a name="line.395"></a>
 <span class="sourceLineNo">396</span>        break;<a name="line.396"></a>
 <span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span>      case 11:<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        offer(new KeyPress(KeyPress.Type.F1, null, alt, ctrl, shift));<a name="line.399"></a>
+<span class="sourceLineNo">398</span>      case 6:<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        offer(new KeyPress(KeyPress.Type.PageDown, null, alt, ctrl, shift));<a name="line.399"></a>
 <span class="sourceLineNo">400</span>        break;<a name="line.400"></a>
 <span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>      case 12:<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        offer(new KeyPress(KeyPress.Type.F2, null, alt, ctrl, shift));<a name="line.403"></a>
+<span class="sourceLineNo">402</span>      case 11:<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        offer(new KeyPress(KeyPress.Type.F1, null, alt, ctrl, shift));<a name="line.403"></a>
 <span class="sourceLineNo">404</span>        break;<a name="line.404"></a>
 <span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>      case 13:<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        offer(new KeyPress(KeyPress.Type.F3, null, alt, ctrl, shift));<a name="line.407"></a>
+<span class="sourceLineNo">406</span>      case 12:<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        offer(new KeyPress(KeyPress.Type.F2, null, alt, ctrl, shift));<a name="line.407"></a>
 <span class="sourceLineNo">408</span>        break;<a name="line.408"></a>
 <span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>      case 14:<a name="line.410"></a>
-<span class="sourceLineNo">411</span>        offer(new KeyPress(KeyPress.Type.F4, null, alt, ctrl, shift));<a name="line.411"></a>
+<span class="sourceLineNo">410</span>      case 13:<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        offer(new KeyPress(KeyPress.Type.F3, null, alt, ctrl, shift));<a name="line.411"></a>
 <span class="sourceLineNo">412</span>        break;<a name="line.412"></a>
 <span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>      case 15:<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        offer(new KeyPress(KeyPress.Type.F5, null, alt, ctrl, shift));<a name="line.415"></a>
+<span class="sourceLineNo">414</span>      case 14:<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        offer(new KeyPress(KeyPress.Type.F4, null, alt, ctrl, shift));<a name="line.415"></a>
 <span class="sourceLineNo">416</span>        break;<a name="line.416"></a>
 <span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>      case 17:<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        offer(new KeyPress(KeyPress.Type.F6, null, alt, ctrl, shift));<a name="line.419"></a>
+<span class="sourceLineNo">418</span>      case 15:<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        offer(new KeyPress(KeyPress.Type.F5, null, alt, ctrl, shift));<a name="line.419"></a>
 <span class="sourceLineNo">420</span>        break;<a name="line.420"></a>
 <span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>      case 18:<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        offer(new KeyPress(KeyPress.Type.F7, null, alt, ctrl, shift));<a name="line.423"></a>
+<span class="sourceLineNo">422</span>      case 17:<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        offer(new KeyPress(KeyPress.Type.F6, null, alt, ctrl, shift));<a name="line.423"></a>
 <span class="sourceLineNo">424</span>        break;<a name="line.424"></a>
 <span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>      case 19:<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        offer(new KeyPress(KeyPress.Type.F8, null, alt, ctrl, shift));<a name="line.427"></a>
+<span class="sourceLineNo">426</span>      case 18:<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        offer(new KeyPress(KeyPress.Type.F7, null, alt, ctrl, shift));<a name="line.427"></a>
 <span class="sourceLineNo">428</span>        break;<a name="line.428"></a>
 <span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>      case 20:<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        offer(new KeyPress(KeyPress.Type.F9, null, alt, ctrl, shift));<a name="line.431"></a>
+<span class="sourceLineNo">430</span>      case 19:<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        offer(new KeyPress(KeyPress.Type.F8, null, alt, ctrl, shift));<a name="line.431"></a>
 <span class="sourceLineNo">432</span>        break;<a name="line.432"></a>
 <span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>      case 21:<a name="line.434"></a>
-<span class="sourceLineNo">435</span>        offer(new KeyPress(KeyPress.Type.F10, null, alt, ctrl, shift));<a name="line.435"></a>
+<span class="sourceLineNo">434</span>      case 20:<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        offer(new KeyPress(KeyPress.Type.F9, null, alt, ctrl, shift));<a name="line.435"></a>
 <span class="sourceLineNo">436</span>        break;<a name="line.436"></a>
 <span class="sourceLineNo">437</span><a name="line.437"></a>
-<span class="sourceLineNo">438</span>      case 23:<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        offer(new KeyPress(KeyPress.Type.F11, null, alt, ctrl, shift));<a name="line.439"></a>
+<span class="sourceLineNo">438</span>      case 21:<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        offer(new KeyPress(KeyPress.Type.F10, null, alt, ctrl, shift));<a name="line.439"></a>
 <span class="sourceLineNo">440</span>        break;<a name="line.440"></a>
 <span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>      case 24:<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        offer(new KeyPress(KeyPress.Type.F12, null, alt, ctrl, shift));<a name="line.443"></a>
+<span class="sourceLineNo">442</span>      case 23:<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        offer(new KeyPress(KeyPress.Type.F11, null, alt, ctrl, shift));<a name="line.443"></a>
 <span class="sourceLineNo">444</span>        break;<a name="line.444"></a>
 <span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>      default:<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.447"></a>
+<span class="sourceLineNo">446</span>      case 24:<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        offer(new KeyPress(KeyPress.Type.F12, null, alt, ctrl, shift));<a name="line.447"></a>
 <span class="sourceLineNo">448</span>        break;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    initState();<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  }<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>  private boolean isShift(int param) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    return (param &amp; 1) != 0;<a name="line.455"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>      default:<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        break;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>    initState();<a name="line.455"></a>
 <span class="sourceLineNo">456</span>  }<a name="line.456"></a>
 <span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>  private boolean isAlt(int param) {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    return (param &amp; 2) != 0;<a name="line.459"></a>
+<span class="sourceLineNo">458</span>  private boolean isShift(int param) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    return (param &amp; 1) != 0;<a name="line.459"></a>
 <span class="sourceLineNo">460</span>  }<a name="line.460"></a>
 <span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>  private boolean isCtrl(int param) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    return (param &amp; 4) != 0;<a name="line.463"></a>
+<span class="sourceLineNo">462</span>  private boolean isAlt(int param) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    return (param &amp; 2) != 0;<a name="line.463"></a>
 <span class="sourceLineNo">464</span>  }<a name="line.464"></a>
 <span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>  private void offer(KeyPress keyPress) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    // Handle ctrl + c<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (keyPress.isCtrl() &amp;&amp; keyPress.getType() == KeyPress.Type.Character &amp;&amp;<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      keyPress.getCharacter() == 'c') {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      System.exit(0);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    }<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>    keyPressQueue.offer(keyPress);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  public void stop() {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    stopThreads.set(true);<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>    executorService.shutdown();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    try {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      while (!executorService.awaitTermination(60, TimeUnit.SECONDS)) {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>        LOGGER.warn("Waiting for thread-pool to terminate");<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      }<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    } catch (InterruptedException e) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      LOGGER.warn("Interrupted while waiting for thread-pool termination", e);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  }<a name="line.487"></a>
-<span class="sourceLineNo">488</span>}<a name="line.488"></a>
+<span class="sourceLineNo">466</span>  private boolean isCtrl(int param) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    return (param &amp; 4) != 0;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>  }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>  private void offer(KeyPress keyPress) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    // Handle ctrl + c<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    if (keyPress.isCtrl() &amp;&amp; keyPress.getType() == KeyPress.Type.Character &amp;&amp;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      keyPress.getCharacter() == 'c') {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>      System.exit(0);<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    }<a name="line.475"></a>
+<span class="sourceLineNo">476</span><a name="line.476"></a>
+<span class="sourceLineNo">477</span>    keyPressQueue.offer(keyPress);<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>  public void stop() {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    stopThreads.set(true);<a name="line.481"></a>
+<span class="sourceLineNo">482</span><a name="line.482"></a>
+<span class="sourceLineNo">483</span>    executorService.shutdown();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    try {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      while (!executorService.awaitTermination(60, TimeUnit.SECONDS)) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        LOGGER.warn("Waiting for thread-pool to terminate");<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    } catch (InterruptedException e) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      LOGGER.warn("Interrupted while waiting for thread-pool termination", e);<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    }<a name="line.490"></a>
+<span class="sourceLineNo">491</span>  }<a name="line.491"></a>
+<span class="sourceLineNo">492</span>}<a name="line.492"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html
index f1ee4bf..48bb911 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/hbtop/terminal/impl/KeyPressGenerator.html
@@ -83,8 +83,8 @@
 <span class="sourceLineNo">075</span>  }<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
 <span class="sourceLineNo">077</span>  public void start() {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    executorService.submit(this::readerThread);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    executorService.submit(this::generatorThread);<a name="line.79"></a>
+<span class="sourceLineNo">078</span>    executorService.execute(this::readerThread);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    executorService.execute(this::generatorThread);<a name="line.79"></a>
 <span class="sourceLineNo">080</span>  }<a name="line.80"></a>
 <span class="sourceLineNo">081</span><a name="line.81"></a>
 <span class="sourceLineNo">082</span>  private void initState() {<a name="line.82"></a>
@@ -166,334 +166,338 @@
 <span class="sourceLineNo">158</span>          case '\t':<a name="line.158"></a>
 <span class="sourceLineNo">159</span>            offer(new KeyPress(KeyPress.Type.Tab, '\t', false, false, false));<a name="line.159"></a>
 <span class="sourceLineNo">160</span>            continue;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        }<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>        if (ch &lt; 32) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>          ctrlAndCharacter(ch);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          continue;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>        if (isPrintableChar(ch)) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>          // Normal character<a name="line.169"></a>
-<span class="sourceLineNo">170</span>          offer(new KeyPress(KeyPress.Type.Character, ch, false, false, false));<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          continue;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.174"></a>
-<span class="sourceLineNo">175</span>        continue;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      }<a name="line.176"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>          default:<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            // Do nothing<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            break;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>        if (ch &lt; 32) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>          ctrlAndCharacter(ch);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>          continue;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>        if (isPrintableChar(ch)) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          // Normal character<a name="line.173"></a>
+<span class="sourceLineNo">174</span>          offer(new KeyPress(KeyPress.Type.Character, ch, false, false, false));<a name="line.174"></a>
+<span class="sourceLineNo">175</span>          continue;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        }<a name="line.176"></a>
 <span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>      if (parseState == ParseState.ESCAPE) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        if (ch == 0x1B) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>          offer(new KeyPress(KeyPress.Type.Escape, null, false, false, false));<a name="line.180"></a>
-<span class="sourceLineNo">181</span>          continue;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
-<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>        if (ch &lt; 32 &amp;&amp; ch != 0x08) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>          ctrlAltAndCharacter(ch);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>          initState();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>          continue;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        } else if (ch == 0x7F || ch == 0x08) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>          offer(new KeyPress(KeyPress.Type.Backspace, '\b', false, false, false));<a name="line.189"></a>
+<span class="sourceLineNo">178</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        continue;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>      if (parseState == ParseState.ESCAPE) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        if (ch == 0x1B) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>          offer(new KeyPress(KeyPress.Type.Escape, null, false, false, false));<a name="line.184"></a>
+<span class="sourceLineNo">185</span>          continue;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>        if (ch &lt; 32 &amp;&amp; ch != 0x08) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>          ctrlAltAndCharacter(ch);<a name="line.189"></a>
 <span class="sourceLineNo">190</span>          initState();<a name="line.190"></a>
 <span class="sourceLineNo">191</span>          continue;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>        if (ch == '[' || ch == 'O') {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>          parseState = ParseState.ESCAPE_SEQUENCE_PARAM1;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>          continue;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>        }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>        if (isPrintableChar(ch)) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>          // Alt and character<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          offer(new KeyPress(KeyPress.Type.Character, ch, true, false, false));<a name="line.201"></a>
-<span class="sourceLineNo">202</span>          initState();<a name="line.202"></a>
-<span class="sourceLineNo">203</span>          continue;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>        offer(new KeyPress(KeyPress.Type.Escape, null, false, false, false));<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        initState();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        continue;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      }<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>      escapeSequenceCharacter(ch);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
+<span class="sourceLineNo">192</span>        } else if (ch == 0x7F || ch == 0x08) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          offer(new KeyPress(KeyPress.Type.Backspace, '\b', false, false, false));<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          initState();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          continue;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>        if (ch == '[' || ch == 'O') {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>          parseState = ParseState.ESCAPE_SEQUENCE_PARAM1;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>          continue;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>        if (isPrintableChar(ch)) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>          // Alt and character<a name="line.204"></a>
+<span class="sourceLineNo">205</span>          offer(new KeyPress(KeyPress.Type.Character, ch, true, false, false));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>          initState();<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          continue;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>        offer(new KeyPress(KeyPress.Type.Escape, null, false, false, false));<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        initState();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        continue;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      }<a name="line.214"></a>
 <span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>  private void ctrlAndCharacter(char ch) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    char ctrlCode;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    switch (ch) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      case 0:<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        ctrlCode = ' ';<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        break;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>      case 28:<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        ctrlCode = '\\';<a name="line.224"></a>
+<span class="sourceLineNo">216</span>      escapeSequenceCharacter(ch);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>  private void ctrlAndCharacter(char ch) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    char ctrlCode;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    switch (ch) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      case 0:<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        ctrlCode = ' ';<a name="line.224"></a>
 <span class="sourceLineNo">225</span>        break;<a name="line.225"></a>
 <span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>      case 29:<a name="line.227"></a>
-<span class="sourceLineNo">228</span>        ctrlCode = ']';<a name="line.228"></a>
+<span class="sourceLineNo">227</span>      case 28:<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        ctrlCode = '\\';<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        break;<a name="line.229"></a>
 <span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>      case 30:<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        ctrlCode = '^';<a name="line.232"></a>
+<span class="sourceLineNo">231</span>      case 29:<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        ctrlCode = ']';<a name="line.232"></a>
 <span class="sourceLineNo">233</span>        break;<a name="line.233"></a>
 <span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>      case 31:<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        ctrlCode = '_';<a name="line.236"></a>
+<span class="sourceLineNo">235</span>      case 30:<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        ctrlCode = '^';<a name="line.236"></a>
 <span class="sourceLineNo">237</span>        break;<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>      default:<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        ctrlCode = (char) ('a' - 1 + ch);<a name="line.240"></a>
+<span class="sourceLineNo">239</span>      case 31:<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        ctrlCode = '_';<a name="line.240"></a>
 <span class="sourceLineNo">241</span>        break;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    offer(new KeyPress(KeyPress.Type.Character, ctrlCode, false, true, false));<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  private boolean isPrintableChar(char ch) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    if (Character.isISOControl(ch)) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      return false;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Character.UnicodeBlock block = Character.UnicodeBlock.of(ch);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    return block != null &amp;&amp; block != Character.UnicodeBlock.SPECIALS;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>  private void ctrlAltAndCharacter(char ch) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    char ctrlCode;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    switch (ch) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      case 0:<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        ctrlCode = ' ';<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        break;<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>      case 28:<a name="line.261"></a>
-<span class="sourceLineNo">262</span>        ctrlCode = '\\';<a name="line.262"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>      default:<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        ctrlCode = (char) ('a' - 1 + ch);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        break;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    offer(new KeyPress(KeyPress.Type.Character, ctrlCode, false, true, false));<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>  private boolean isPrintableChar(char ch) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    if (Character.isISOControl(ch)) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      return false;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    Character.UnicodeBlock block = Character.UnicodeBlock.of(ch);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    return block != null &amp;&amp; !block.equals(Character.UnicodeBlock.SPECIALS);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>  private void ctrlAltAndCharacter(char ch) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    char ctrlCode;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    switch (ch) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      case 0:<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        ctrlCode = ' ';<a name="line.262"></a>
 <span class="sourceLineNo">263</span>        break;<a name="line.263"></a>
 <span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>      case 29:<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        ctrlCode = ']';<a name="line.266"></a>
+<span class="sourceLineNo">265</span>      case 28:<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        ctrlCode = '\\';<a name="line.266"></a>
 <span class="sourceLineNo">267</span>        break;<a name="line.267"></a>
 <span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>      case 30:<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        ctrlCode = '^';<a name="line.270"></a>
+<span class="sourceLineNo">269</span>      case 29:<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        ctrlCode = ']';<a name="line.270"></a>
 <span class="sourceLineNo">271</span>        break;<a name="line.271"></a>
 <span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>      case 31:<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        ctrlCode = '_';<a name="line.274"></a>
+<span class="sourceLineNo">273</span>      case 30:<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        ctrlCode = '^';<a name="line.274"></a>
 <span class="sourceLineNo">275</span>        break;<a name="line.275"></a>
 <span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>      default:<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        ctrlCode = (char) ('a' - 1 + ch);<a name="line.278"></a>
+<span class="sourceLineNo">277</span>      case 31:<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        ctrlCode = '_';<a name="line.278"></a>
 <span class="sourceLineNo">279</span>        break;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    offer(new KeyPress(KeyPress.Type.Character, ctrlCode, true, true, false));<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  private void escapeSequenceCharacter(char ch) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    switch (parseState) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      case ESCAPE_SEQUENCE_PARAM1:<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        if (ch == ';') {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          parseState = ParseState.ESCAPE_SEQUENCE_PARAM2;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        } else if (Character.isDigit(ch)) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          param1 = param1 * 10 + Character.digit(ch, 10);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        } else {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          doneEscapeSequenceCharacter(ch);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        }<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        break;<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>      case ESCAPE_SEQUENCE_PARAM2:<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        if (Character.isDigit(ch)) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>          param2 = param2 * 10 + Character.digit(ch, 10);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        } else {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          doneEscapeSequenceCharacter(ch);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        break;<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>      default:<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        throw new AssertionError();<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private void doneEscapeSequenceCharacter(char last) {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    boolean alt = false;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    boolean ctrl = false;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    boolean shift = false;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    if (param2 != 0) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      alt = isAlt(param2);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      ctrl = isCtrl(param2);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      shift = isShift(param2);<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>    if (last != '~') {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      switch (last) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        case 'A':<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          offer(new KeyPress(KeyPress.Type.ArrowUp, null, alt, ctrl, shift));<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          break;<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>        case 'B':<a name="line.325"></a>
-<span class="sourceLineNo">326</span>          offer(new KeyPress(KeyPress.Type.ArrowDown, null, alt, ctrl, shift));<a name="line.326"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>      default:<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        ctrlCode = (char) ('a' - 1 + ch);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        break;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    offer(new KeyPress(KeyPress.Type.Character, ctrlCode, true, true, false));<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  private void escapeSequenceCharacter(char ch) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    switch (parseState) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      case ESCAPE_SEQUENCE_PARAM1:<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (ch == ';') {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          parseState = ParseState.ESCAPE_SEQUENCE_PARAM2;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else if (Character.isDigit(ch)) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          param1 = param1 * 10 + Character.digit(ch, 10);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        } else {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          doneEscapeSequenceCharacter(ch);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        break;<a name="line.298"></a>
+<span class="sourceLineNo">299</span><a name="line.299"></a>
+<span class="sourceLineNo">300</span>      case ESCAPE_SEQUENCE_PARAM2:<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        if (Character.isDigit(ch)) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>          param2 = param2 * 10 + Character.digit(ch, 10);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        } else {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>          doneEscapeSequenceCharacter(ch);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        break;<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>      default:<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        throw new AssertionError();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>  private void doneEscapeSequenceCharacter(char last) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    boolean alt = false;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    boolean ctrl = false;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    boolean shift = false;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (param2 != 0) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      alt = isAlt(param2);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      ctrl = isCtrl(param2);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      shift = isShift(param2);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>    if (last != '~') {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      switch (last) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        case 'A':<a name="line.325"></a>
+<span class="sourceLineNo">326</span>          offer(new KeyPress(KeyPress.Type.ArrowUp, null, alt, ctrl, shift));<a name="line.326"></a>
 <span class="sourceLineNo">327</span>          break;<a name="line.327"></a>
 <span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>        case 'C':<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          offer(new KeyPress(KeyPress.Type.ArrowRight, null, alt, ctrl, shift));<a name="line.330"></a>
+<span class="sourceLineNo">329</span>        case 'B':<a name="line.329"></a>
+<span class="sourceLineNo">330</span>          offer(new KeyPress(KeyPress.Type.ArrowDown, null, alt, ctrl, shift));<a name="line.330"></a>
 <span class="sourceLineNo">331</span>          break;<a name="line.331"></a>
 <span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>        case 'D':<a name="line.333"></a>
-<span class="sourceLineNo">334</span>          offer(new KeyPress(KeyPress.Type.ArrowLeft, null, alt, ctrl, shift));<a name="line.334"></a>
+<span class="sourceLineNo">333</span>        case 'C':<a name="line.333"></a>
+<span class="sourceLineNo">334</span>          offer(new KeyPress(KeyPress.Type.ArrowRight, null, alt, ctrl, shift));<a name="line.334"></a>
 <span class="sourceLineNo">335</span>          break;<a name="line.335"></a>
 <span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>        case 'H':<a name="line.337"></a>
-<span class="sourceLineNo">338</span>          offer(new KeyPress(KeyPress.Type.Home, null, alt, ctrl, shift));<a name="line.338"></a>
+<span class="sourceLineNo">337</span>        case 'D':<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          offer(new KeyPress(KeyPress.Type.ArrowLeft, null, alt, ctrl, shift));<a name="line.338"></a>
 <span class="sourceLineNo">339</span>          break;<a name="line.339"></a>
 <span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>        case 'F':<a name="line.341"></a>
-<span class="sourceLineNo">342</span>          offer(new KeyPress(KeyPress.Type.End, null, alt, ctrl, shift));<a name="line.342"></a>
+<span class="sourceLineNo">341</span>        case 'H':<a name="line.341"></a>
+<span class="sourceLineNo">342</span>          offer(new KeyPress(KeyPress.Type.Home, null, alt, ctrl, shift));<a name="line.342"></a>
 <span class="sourceLineNo">343</span>          break;<a name="line.343"></a>
 <span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>        case 'P':<a name="line.345"></a>
-<span class="sourceLineNo">346</span>          offer(new KeyPress(KeyPress.Type.F1, null, alt, ctrl, shift));<a name="line.346"></a>
+<span class="sourceLineNo">345</span>        case 'F':<a name="line.345"></a>
+<span class="sourceLineNo">346</span>          offer(new KeyPress(KeyPress.Type.End, null, alt, ctrl, shift));<a name="line.346"></a>
 <span class="sourceLineNo">347</span>          break;<a name="line.347"></a>
 <span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>        case 'Q':<a name="line.349"></a>
-<span class="sourceLineNo">350</span>          offer(new KeyPress(KeyPress.Type.F2, null, alt, ctrl, shift));<a name="line.350"></a>
+<span class="sourceLineNo">349</span>        case 'P':<a name="line.349"></a>
+<span class="sourceLineNo">350</span>          offer(new KeyPress(KeyPress.Type.F1, null, alt, ctrl, shift));<a name="line.350"></a>
 <span class="sourceLineNo">351</span>          break;<a name="line.351"></a>
 <span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>        case 'R':<a name="line.353"></a>
-<span class="sourceLineNo">354</span>          offer(new KeyPress(KeyPress.Type.F3, null, alt, ctrl, shift));<a name="line.354"></a>
+<span class="sourceLineNo">353</span>        case 'Q':<a name="line.353"></a>
+<span class="sourceLineNo">354</span>          offer(new KeyPress(KeyPress.Type.F2, null, alt, ctrl, shift));<a name="line.354"></a>
 <span class="sourceLineNo">355</span>          break;<a name="line.355"></a>
 <span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>        case 'S':<a name="line.357"></a>
-<span class="sourceLineNo">358</span>          offer(new KeyPress(KeyPress.Type.F4, null, alt, ctrl, shift));<a name="line.358"></a>
+<span class="sourceLineNo">357</span>        case 'R':<a name="line.357"></a>
+<span class="sourceLineNo">358</span>          offer(new KeyPress(KeyPress.Type.F3, null, alt, ctrl, shift));<a name="line.358"></a>
 <span class="sourceLineNo">359</span>          break;<a name="line.359"></a>
 <span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>        case 'Z':<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          offer(new KeyPress(KeyPress.Type.ReverseTab, null, alt, ctrl, shift));<a name="line.362"></a>
+<span class="sourceLineNo">361</span>        case 'S':<a name="line.361"></a>
+<span class="sourceLineNo">362</span>          offer(new KeyPress(KeyPress.Type.F4, null, alt, ctrl, shift));<a name="line.362"></a>
 <span class="sourceLineNo">363</span>          break;<a name="line.363"></a>
 <span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>        default:<a name="line.365"></a>
-<span class="sourceLineNo">366</span>          offer(new KeyPress(KeyPress.Type.Unknown, null, alt, ctrl, shift));<a name="line.366"></a>
+<span class="sourceLineNo">365</span>        case 'Z':<a name="line.365"></a>
+<span class="sourceLineNo">366</span>          offer(new KeyPress(KeyPress.Type.ReverseTab, null, alt, ctrl, shift));<a name="line.366"></a>
 <span class="sourceLineNo">367</span>          break;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      initState();<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      return;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    }<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    switch (param1) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      case 1:<a name="line.374"></a>
-<span class="sourceLineNo">375</span>        offer(new KeyPress(KeyPress.Type.Home, null, alt, ctrl, shift));<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        break;<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>      case 2:<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        offer(new KeyPress(KeyPress.Type.Insert, null, alt, ctrl, shift));<a name="line.379"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>        default:<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          offer(new KeyPress(KeyPress.Type.Unknown, null, alt, ctrl, shift));<a name="line.370"></a>
+<span class="sourceLineNo">371</span>          break;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      initState();<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      return;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>    switch (param1) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      case 1:<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        offer(new KeyPress(KeyPress.Type.Home, null, alt, ctrl, shift));<a name="line.379"></a>
 <span class="sourceLineNo">380</span>        break;<a name="line.380"></a>
 <span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>      case 3:<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        offer(new KeyPress(KeyPress.Type.Delete, null, alt, ctrl, shift));<a name="line.383"></a>
+<span class="sourceLineNo">382</span>      case 2:<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        offer(new KeyPress(KeyPress.Type.Insert, null, alt, ctrl, shift));<a name="line.383"></a>
 <span class="sourceLineNo">384</span>        break;<a name="line.384"></a>
 <span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>      case 4:<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        offer(new KeyPress(KeyPress.Type.End, null, alt, ctrl, shift));<a name="line.387"></a>
+<span class="sourceLineNo">386</span>      case 3:<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        offer(new KeyPress(KeyPress.Type.Delete, null, alt, ctrl, shift));<a name="line.387"></a>
 <span class="sourceLineNo">388</span>        break;<a name="line.388"></a>
 <span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>      case 5:<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        offer(new KeyPress(KeyPress.Type.PageUp, null, alt, ctrl, shift));<a name="line.391"></a>
+<span class="sourceLineNo">390</span>      case 4:<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        offer(new KeyPress(KeyPress.Type.End, null, alt, ctrl, shift));<a name="line.391"></a>
 <span class="sourceLineNo">392</span>        break;<a name="line.392"></a>
 <span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>      case 6:<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        offer(new KeyPress(KeyPress.Type.PageDown, null, alt, ctrl, shift));<a name="line.395"></a>
+<span class="sourceLineNo">394</span>      case 5:<a name="line.394"></a>
+<span class="sourceLineNo">395</span>        offer(new KeyPress(KeyPress.Type.PageUp, null, alt, ctrl, shift));<a name="line.395"></a>
 <span class="sourceLineNo">396</span>        break;<a name="line.396"></a>
 <span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span>      case 11:<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        offer(new KeyPress(KeyPress.Type.F1, null, alt, ctrl, shift));<a name="line.399"></a>
+<span class="sourceLineNo">398</span>      case 6:<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        offer(new KeyPress(KeyPress.Type.PageDown, null, alt, ctrl, shift));<a name="line.399"></a>
 <span class="sourceLineNo">400</span>        break;<a name="line.400"></a>
 <span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>      case 12:<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        offer(new KeyPress(KeyPress.Type.F2, null, alt, ctrl, shift));<a name="line.403"></a>
+<span class="sourceLineNo">402</span>      case 11:<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        offer(new KeyPress(KeyPress.Type.F1, null, alt, ctrl, shift));<a name="line.403"></a>
 <span class="sourceLineNo">404</span>        break;<a name="line.404"></a>
 <span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>      case 13:<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        offer(new KeyPress(KeyPress.Type.F3, null, alt, ctrl, shift));<a name="line.407"></a>
+<span class="sourceLineNo">406</span>      case 12:<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        offer(new KeyPress(KeyPress.Type.F2, null, alt, ctrl, shift));<a name="line.407"></a>
 <span class="sourceLineNo">408</span>        break;<a name="line.408"></a>
 <span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>      case 14:<a name="line.410"></a>
-<span class="sourceLineNo">411</span>        offer(new KeyPress(KeyPress.Type.F4, null, alt, ctrl, shift));<a name="line.411"></a>
+<span class="sourceLineNo">410</span>      case 13:<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        offer(new KeyPress(KeyPress.Type.F3, null, alt, ctrl, shift));<a name="line.411"></a>
 <span class="sourceLineNo">412</span>        break;<a name="line.412"></a>
 <span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>      case 15:<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        offer(new KeyPress(KeyPress.Type.F5, null, alt, ctrl, shift));<a name="line.415"></a>
+<span class="sourceLineNo">414</span>      case 14:<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        offer(new KeyPress(KeyPress.Type.F4, null, alt, ctrl, shift));<a name="line.415"></a>
 <span class="sourceLineNo">416</span>        break;<a name="line.416"></a>
 <span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>      case 17:<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        offer(new KeyPress(KeyPress.Type.F6, null, alt, ctrl, shift));<a name="line.419"></a>
+<span class="sourceLineNo">418</span>      case 15:<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        offer(new KeyPress(KeyPress.Type.F5, null, alt, ctrl, shift));<a name="line.419"></a>
 <span class="sourceLineNo">420</span>        break;<a name="line.420"></a>
 <span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>      case 18:<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        offer(new KeyPress(KeyPress.Type.F7, null, alt, ctrl, shift));<a name="line.423"></a>
+<span class="sourceLineNo">422</span>      case 17:<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        offer(new KeyPress(KeyPress.Type.F6, null, alt, ctrl, shift));<a name="line.423"></a>
 <span class="sourceLineNo">424</span>        break;<a name="line.424"></a>
 <span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>      case 19:<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        offer(new KeyPress(KeyPress.Type.F8, null, alt, ctrl, shift));<a name="line.427"></a>
+<span class="sourceLineNo">426</span>      case 18:<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        offer(new KeyPress(KeyPress.Type.F7, null, alt, ctrl, shift));<a name="line.427"></a>
 <span class="sourceLineNo">428</span>        break;<a name="line.428"></a>
 <span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>      case 20:<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        offer(new KeyPress(KeyPress.Type.F9, null, alt, ctrl, shift));<a name="line.431"></a>
+<span class="sourceLineNo">430</span>      case 19:<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        offer(new KeyPress(KeyPress.Type.F8, null, alt, ctrl, shift));<a name="line.431"></a>
 <span class="sourceLineNo">432</span>        break;<a name="line.432"></a>
 <span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>      case 21:<a name="line.434"></a>
-<span class="sourceLineNo">435</span>        offer(new KeyPress(KeyPress.Type.F10, null, alt, ctrl, shift));<a name="line.435"></a>
+<span class="sourceLineNo">434</span>      case 20:<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        offer(new KeyPress(KeyPress.Type.F9, null, alt, ctrl, shift));<a name="line.435"></a>
 <span class="sourceLineNo">436</span>        break;<a name="line.436"></a>
 <span class="sourceLineNo">437</span><a name="line.437"></a>
-<span class="sourceLineNo">438</span>      case 23:<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        offer(new KeyPress(KeyPress.Type.F11, null, alt, ctrl, shift));<a name="line.439"></a>
+<span class="sourceLineNo">438</span>      case 21:<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        offer(new KeyPress(KeyPress.Type.F10, null, alt, ctrl, shift));<a name="line.439"></a>
 <span class="sourceLineNo">440</span>        break;<a name="line.440"></a>
 <span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>      case 24:<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        offer(new KeyPress(KeyPress.Type.F12, null, alt, ctrl, shift));<a name="line.443"></a>
+<span class="sourceLineNo">442</span>      case 23:<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        offer(new KeyPress(KeyPress.Type.F11, null, alt, ctrl, shift));<a name="line.443"></a>
 <span class="sourceLineNo">444</span>        break;<a name="line.444"></a>
 <span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>      default:<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.447"></a>
+<span class="sourceLineNo">446</span>      case 24:<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        offer(new KeyPress(KeyPress.Type.F12, null, alt, ctrl, shift));<a name="line.447"></a>
 <span class="sourceLineNo">448</span>        break;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    initState();<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  }<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>  private boolean isShift(int param) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    return (param &amp; 1) != 0;<a name="line.455"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>      default:<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        offer(new KeyPress(KeyPress.Type.Unknown, null, false, false, false));<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        break;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>    initState();<a name="line.455"></a>
 <span class="sourceLineNo">456</span>  }<a name="line.456"></a>
 <span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>  private boolean isAlt(int param) {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    return (param &amp; 2) != 0;<a name="line.459"></a>
+<span class="sourceLineNo">458</span>  private boolean isShift(int param) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    return (param &amp; 1) != 0;<a name="line.459"></a>
 <span class="sourceLineNo">460</span>  }<a name="line.460"></a>
 <span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>  private boolean isCtrl(int param) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    return (param &amp; 4) != 0;<a name="line.463"></a>
+<span class="sourceLineNo">462</span>  private boolean isAlt(int param) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    return (param &amp; 2) != 0;<a name="line.463"></a>
 <span class="sourceLineNo">464</span>  }<a name="line.464"></a>
 <span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>  private void offer(KeyPress keyPress) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    // Handle ctrl + c<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (keyPress.isCtrl() &amp;&amp; keyPress.getType() == KeyPress.Type.Character &amp;&amp;<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      keyPress.getCharacter() == 'c') {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      System.exit(0);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    }<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>    keyPressQueue.offer(keyPress);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  public void stop() {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    stopThreads.set(true);<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>    executorService.shutdown();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    try {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      while (!executorService.awaitTermination(60, TimeUnit.SECONDS)) {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>        LOGGER.warn("Waiting for thread-pool to terminate");<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      }<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    } catch (InterruptedException e) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      LOGGER.warn("Interrupted while waiting for thread-pool termination", e);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  }<a name="line.487"></a>
-<span class="sourceLineNo">488</span>}<a name="line.488"></a>
+<span class="sourceLineNo">466</span>  private boolean isCtrl(int param) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    return (param &amp; 4) != 0;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>  }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>  private void offer(KeyPress keyPress) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    // Handle ctrl + c<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    if (keyPress.isCtrl() &amp;&amp; keyPress.getType() == KeyPress.Type.Character &amp;&amp;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      keyPress.getCharacter() == 'c') {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>      System.exit(0);<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    }<a name="line.475"></a>
+<span class="sourceLineNo">476</span><a name="line.476"></a>
+<span class="sourceLineNo">477</span>    keyPressQueue.offer(keyPress);<a name="line.477"></a>
+<span class="sourceLineNo">478</span>  }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>  public void stop() {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    stopThreads.set(true);<a name="line.481"></a>
+<span class="sourceLineNo">482</span><a name="line.482"></a>
+<span class="sourceLineNo">483</span>    executorService.shutdown();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    try {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      while (!executorService.awaitTermination(60, TimeUnit.SECONDS)) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        LOGGER.warn("Waiting for thread-pool to terminate");<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    } catch (InterruptedException e) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      LOGGER.warn("Interrupted while waiting for thread-pool termination", e);<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    }<a name="line.490"></a>
+<span class="sourceLineNo">491</span>  }<a name="line.491"></a>
+<span class="sourceLineNo">492</span>}<a name="line.492"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html
index 984c5cb..bd8ea85 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.BucketEntryGroup.html
@@ -510,1103 +510,1106 @@
 <span class="sourceLineNo">502</span>          // block will use the refCnt of bucketEntry, which means if two HFileBlock mapping to<a name="line.502"></a>
 <span class="sourceLineNo">503</span>          // the same BucketEntry, then all of the three will share the same refCnt.<a name="line.503"></a>
 <span class="sourceLineNo">504</span>          Cacheable cachedBlock = ioEngine.read(bucketEntry);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>          // RPC start to reference, so retain here.<a name="line.505"></a>
-<span class="sourceLineNo">506</span>          cachedBlock.retain();<a name="line.506"></a>
-<span class="sourceLineNo">507</span>          // Update the cache statistics.<a name="line.507"></a>
-<span class="sourceLineNo">508</span>          if (updateCacheMetrics) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>            cacheStats.hit(caching, key.isPrimary(), key.getBlockType());<a name="line.509"></a>
-<span class="sourceLineNo">510</span>            cacheStats.ioHit(System.nanoTime() - start);<a name="line.510"></a>
-<span class="sourceLineNo">511</span>          }<a name="line.511"></a>
-<span class="sourceLineNo">512</span>          bucketEntry.access(accessCount.incrementAndGet());<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          if (this.ioErrorStartTime &gt; 0) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>            ioErrorStartTime = -1;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>          }<a name="line.515"></a>
-<span class="sourceLineNo">516</span>          return cachedBlock;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>        }<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      } catch (IOException ioex) {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>        LOG.error("Failed reading block " + key + " from bucket cache", ioex);<a name="line.519"></a>
-<span class="sourceLineNo">520</span>        checkIOErrorIsTolerated();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      } finally {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        lock.readLock().unlock();<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      }<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    if (!repeat &amp;&amp; updateCacheMetrics) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      cacheStats.miss(caching, key.isPrimary(), key.getBlockType());<a name="line.526"></a>
+<span class="sourceLineNo">505</span>          if (ioEngine.usesSharedMemory()) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>            // If IOEngine use shared memory, cachedBlock and BucketEntry will share the<a name="line.506"></a>
+<span class="sourceLineNo">507</span>            // same RefCnt, do retain here, in order to count the number of RPC references<a name="line.507"></a>
+<span class="sourceLineNo">508</span>            cachedBlock.retain();<a name="line.508"></a>
+<span class="sourceLineNo">509</span>          }<a name="line.509"></a>
+<span class="sourceLineNo">510</span>          // Update the cache statistics.<a name="line.510"></a>
+<span class="sourceLineNo">511</span>          if (updateCacheMetrics) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>            cacheStats.hit(caching, key.isPrimary(), key.getBlockType());<a name="line.512"></a>
+<span class="sourceLineNo">513</span>            cacheStats.ioHit(System.nanoTime() - start);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>          }<a name="line.514"></a>
+<span class="sourceLineNo">515</span>          bucketEntry.access(accessCount.incrementAndGet());<a name="line.515"></a>
+<span class="sourceLineNo">516</span>          if (this.ioErrorStartTime &gt; 0) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>            ioErrorStartTime = -1;<a name="line.517"></a>
+<span class="sourceLineNo">518</span>          }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>          return cachedBlock;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      } catch (IOException ioex) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        LOG.error("Failed reading block " + key + " from bucket cache", ioex);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        checkIOErrorIsTolerated();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      } finally {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        lock.readLock().unlock();<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      }<a name="line.526"></a>
 <span class="sourceLineNo">527</span>    }<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    return null;<a name="line.528"></a>
-<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span>  @VisibleForTesting<a name="line.531"></a>
-<span class="sourceLineNo">532</span>  void blockEvicted(BlockCacheKey cacheKey, BucketEntry bucketEntry, boolean decrementBlockNumber) {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    bucketAllocator.freeBlock(bucketEntry.offset());<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    realCacheSize.add(-1 * bucketEntry.getLength());<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    blocksByHFile.remove(cacheKey);<a name="line.535"></a>
-<span class="sourceLineNo">536</span>    if (decrementBlockNumber) {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      this.blockNumber.decrement();<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    }<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  }<a name="line.539"></a>
-<span class="sourceLineNo">540</span><a name="line.540"></a>
-<span class="sourceLineNo">541</span>  /**<a name="line.541"></a>
-<span class="sourceLineNo">542</span>   * Try to evict the block from {@link BlockCache} by force. We'll call this in few cases:&lt;br&gt;<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * 1. Close an HFile, and clear all cached blocks. &lt;br&gt;<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * 2. Call {@link Admin#clearBlockCache(TableName)} to clear all blocks for a given table.&lt;br&gt;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   * &lt;p&gt;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>   * Firstly, we'll try to remove the block from RAMCache. If it doesn't exist in RAMCache, then try<a name="line.546"></a>
-<span class="sourceLineNo">547</span>   * to evict from backingMap. Here we only need to free the reference from bucket cache by calling<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   * {@link BucketEntry#markedAsEvicted}. If there're still some RPC referring this block, block can<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * only be de-allocated when all of them release the block.<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * &lt;p&gt;<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * NOTICE: we need to grab the write offset lock firstly before releasing the reference from<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * bucket cache. if we don't, we may read an {@link BucketEntry} with refCnt = 0 when<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * {@link BucketCache#getBlock(BlockCacheKey, boolean, boolean, boolean)}, it's a memory leak.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   * @param cacheKey Block to evict<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * @return true to indicate whether we've evicted successfully or not.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   */<a name="line.556"></a>
-<span class="sourceLineNo">557</span>  @Override<a name="line.557"></a>
-<span class="sourceLineNo">558</span>  public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    if (!cacheEnabled) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      return false;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    }<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    boolean existed = removeFromRamCache(cacheKey);<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    BucketEntry be = backingMap.get(cacheKey);<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    if (be == null) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      if (existed) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        cacheStats.evicted(0, cacheKey.isPrimary());<a name="line.566"></a>
-<span class="sourceLineNo">567</span>      }<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      return existed;<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    } else {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      return be.withWriteLock(offsetLock, be::markAsEvicted);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>  private Recycler createRecycler(BlockCacheKey cacheKey) {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    return () -&gt; {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      if (!cacheEnabled) {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>        return;<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      }<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      boolean existed = removeFromRamCache(cacheKey);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      BucketEntry be = backingMap.get(cacheKey);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      if (be == null &amp;&amp; existed) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>        cacheStats.evicted(0, cacheKey.isPrimary());<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      } else if (be != null) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        be.withWriteLock(offsetLock, () -&gt; {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>          if (backingMap.remove(cacheKey, be)) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>            blockEvicted(cacheKey, be, !existed);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>            cacheStats.evicted(be.getCachedTime(), cacheKey.isPrimary());<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          }<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          return null;<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        });<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    };<a name="line.592"></a>
-<span class="sourceLineNo">593</span>  }<a name="line.593"></a>
-<span class="sourceLineNo">594</span><a name="line.594"></a>
-<span class="sourceLineNo">595</span>  private boolean removeFromRamCache(BlockCacheKey cacheKey) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    return ramCache.remove(cacheKey, re -&gt; {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      if (re != null) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>        this.blockNumber.decrement();<a name="line.598"></a>
-<span class="sourceLineNo">599</span>        this.heapSize.add(-1 * re.getData().heapSize());<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    });<a name="line.601"></a>
-<span class="sourceLineNo">602</span>  }<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span>  /*<a name="line.604"></a>
-<span class="sourceLineNo">605</span>   * Statistics thread.  Periodically output cache statistics to the log.<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   */<a name="line.606"></a>
-<span class="sourceLineNo">607</span>  private static class StatisticsThread extends Thread {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    private final BucketCache bucketCache;<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    public StatisticsThread(BucketCache bucketCache) {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      super("BucketCacheStatsThread");<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      setDaemon(true);<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      this.bucketCache = bucketCache;<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    }<a name="line.614"></a>
-<span class="sourceLineNo">615</span><a name="line.615"></a>
-<span class="sourceLineNo">616</span>    @Override<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    public void run() {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      bucketCache.logStats();<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
-<span class="sourceLineNo">620</span>  }<a name="line.620"></a>
-<span class="sourceLineNo">621</span><a name="line.621"></a>
-<span class="sourceLineNo">622</span>  public void logStats() {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>    long totalSize = bucketAllocator.getTotalSize();<a name="line.623"></a>
-<span class="sourceLineNo">624</span>    long usedSize = bucketAllocator.getUsedSize();<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    long freeSize = totalSize - usedSize;<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    long cacheSize = getRealCacheSize();<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    LOG.info("failedBlockAdditions=" + cacheStats.getFailedInserts() + ", " +<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        "totalSize=" + StringUtils.byteDesc(totalSize) + ", " +<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        "freeSize=" + StringUtils.byteDesc(freeSize) + ", " +<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        "usedSize=" + StringUtils.byteDesc(usedSize) +", " +<a name="line.630"></a>
-<span class="sourceLineNo">631</span>        "cacheSize=" + StringUtils.byteDesc(cacheSize) +", " +<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        "accesses=" + cacheStats.getRequestCount() + ", " +<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        "hits=" + cacheStats.getHitCount() + ", " +<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        "IOhitsPerSecond=" + cacheStats.getIOHitsPerSecond() + ", " +<a name="line.634"></a>
-<span class="sourceLineNo">635</span>        "IOTimePerHit=" + String.format("%.2f", cacheStats.getIOTimePerHit())+ ", " +<a name="line.635"></a>
-<span class="sourceLineNo">636</span>        "hitRatio=" + (cacheStats.getHitCount() == 0 ? "0," :<a name="line.636"></a>
-<span class="sourceLineNo">637</span>          (StringUtils.formatPercent(cacheStats.getHitRatio(), 2)+ ", ")) +<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        "cachingAccesses=" + cacheStats.getRequestCachingCount() + ", " +<a name="line.638"></a>
-<span class="sourceLineNo">639</span>        "cachingHits=" + cacheStats.getHitCachingCount() + ", " +<a name="line.639"></a>
-<span class="sourceLineNo">640</span>        "cachingHitsRatio=" +(cacheStats.getHitCachingCount() == 0 ? "0," :<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          (StringUtils.formatPercent(cacheStats.getHitCachingRatio(), 2)+ ", ")) +<a name="line.641"></a>
-<span class="sourceLineNo">642</span>        "evictions=" + cacheStats.getEvictionCount() + ", " +<a name="line.642"></a>
-<span class="sourceLineNo">643</span>        "evicted=" + cacheStats.getEvictedCount() + ", " +<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        "evictedPerRun=" + cacheStats.evictedPerEviction());<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    cacheStats.reset();<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  }<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>  public long getRealCacheSize() {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    return this.realCacheSize.sum();<a name="line.649"></a>
-<span class="sourceLineNo">650</span>  }<a name="line.650"></a>
-<span class="sourceLineNo">651</span><a name="line.651"></a>
-<span class="sourceLineNo">652</span>  public long acceptableSize() {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    return (long) Math.floor(bucketAllocator.getTotalSize() * acceptableFactor);<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  }<a name="line.654"></a>
-<span class="sourceLineNo">655</span><a name="line.655"></a>
-<span class="sourceLineNo">656</span>  @VisibleForTesting<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  long getPartitionSize(float partitionFactor) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    return (long) Math.floor(bucketAllocator.getTotalSize() * partitionFactor * minFactor);<a name="line.658"></a>
-<span class="sourceLineNo">659</span>  }<a name="line.659"></a>
-<span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>  /**<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   * Return the count of bucketSizeinfos still need free space<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   */<a name="line.663"></a>
-<span class="sourceLineNo">664</span>  private int bucketSizesAboveThresholdCount(float minFactor) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    BucketAllocator.IndexStatistics[] stats = bucketAllocator.getIndexStatistics();<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    int fullCount = 0;<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    for (int i = 0; i &lt; stats.length; i++) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      long freeGoal = (long) Math.floor(stats[i].totalCount() * (1 - minFactor));<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      freeGoal = Math.max(freeGoal, 1);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      if (stats[i].freeCount() &lt; freeGoal) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        fullCount++;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>      }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    }<a name="line.673"></a>
-<span class="sourceLineNo">674</span>    return fullCount;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  }<a name="line.675"></a>
-<span class="sourceLineNo">676</span><a name="line.676"></a>
-<span class="sourceLineNo">677</span>  /**<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * This method will find the buckets that are minimally occupied<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   * and are not reference counted and will free them completely<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   * without any constraint on the access times of the elements,<a name="line.680"></a>
-<span class="sourceLineNo">681</span>   * and as a process will completely free at most the number of buckets<a name="line.681"></a>
-<span class="sourceLineNo">682</span>   * passed, sometimes it might not due to changing refCounts<a name="line.682"></a>
-<span class="sourceLineNo">683</span>   *<a name="line.683"></a>
-<span class="sourceLineNo">684</span>   * @param completelyFreeBucketsNeeded number of buckets to free<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   **/<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  private void freeEntireBuckets(int completelyFreeBucketsNeeded) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    if (completelyFreeBucketsNeeded != 0) {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>      // First we will build a set where the offsets are reference counted, usually<a name="line.688"></a>
-<span class="sourceLineNo">689</span>      // this set is small around O(Handler Count) unless something else is wrong<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      Set&lt;Integer&gt; inUseBuckets = new HashSet&lt;&gt;();<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      backingMap.forEach((k, be) -&gt; {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>        if (be.isRpcRef()) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>          inUseBuckets.add(bucketAllocator.getBucketIndex(be.offset()));<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        }<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      });<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      Set&lt;Integer&gt; candidateBuckets =<a name="line.696"></a>
-<span class="sourceLineNo">697</span>          bucketAllocator.getLeastFilledBuckets(inUseBuckets, completelyFreeBucketsNeeded);<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      for (Map.Entry&lt;BlockCacheKey, BucketEntry&gt; entry : backingMap.entrySet()) {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        if (candidateBuckets.contains(bucketAllocator.getBucketIndex(entry.getValue().offset()))) {<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          entry.getValue().withWriteLock(offsetLock, entry.getValue()::markStaleAsEvicted);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>  /**<a name="line.706"></a>
-<span class="sourceLineNo">707</span>   * Free the space if the used size reaches acceptableSize() or one size block<a name="line.707"></a>
-<span class="sourceLineNo">708</span>   * couldn't be allocated. When freeing the space, we use the LRU algorithm and<a name="line.708"></a>
-<span class="sourceLineNo">709</span>   * ensure there must be some blocks evicted<a name="line.709"></a>
-<span class="sourceLineNo">710</span>   * @param why Why we are being called<a name="line.710"></a>
-<span class="sourceLineNo">711</span>   */<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  private void freeSpace(final String why) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>    // Ensure only one freeSpace progress at a time<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    if (!freeSpaceLock.tryLock()) {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      return;<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    }<a name="line.716"></a>
-<span class="sourceLineNo">717</span>    try {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>      freeInProgress = true;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      long bytesToFreeWithoutExtra = 0;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      // Calculate free byte for each bucketSizeinfo<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      StringBuilder msgBuffer = LOG.isDebugEnabled()? new StringBuilder(): null;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      BucketAllocator.IndexStatistics[] stats = bucketAllocator.getIndexStatistics();<a name="line.722"></a>
-<span class="sourceLineNo">723</span>      long[] bytesToFreeForBucket = new long[stats.length];<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      for (int i = 0; i &lt; stats.length; i++) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>        bytesToFreeForBucket[i] = 0;<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        long freeGoal = (long) Math.floor(stats[i].totalCount() * (1 - minFactor));<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        freeGoal = Math.max(freeGoal, 1);<a name="line.727"></a>
-<span class="sourceLineNo">728</span>        if (stats[i].freeCount() &lt; freeGoal) {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>          bytesToFreeForBucket[i] = stats[i].itemSize() * (freeGoal - stats[i].freeCount());<a name="line.729"></a>
-<span class="sourceLineNo">730</span>          bytesToFreeWithoutExtra += bytesToFreeForBucket[i];<a name="line.730"></a>
-<span class="sourceLineNo">731</span>          if (msgBuffer != null) {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>            msgBuffer.append("Free for bucketSize(" + stats[i].itemSize() + ")="<a name="line.732"></a>
-<span class="sourceLineNo">733</span>              + StringUtils.byteDesc(bytesToFreeForBucket[i]) + ", ");<a name="line.733"></a>
-<span class="sourceLineNo">734</span>          }<a name="line.734"></a>
-<span class="sourceLineNo">735</span>        }<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      }<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      if (msgBuffer != null) {<a name="line.737"></a>
-<span class="sourceLineNo">738</span>        msgBuffer.append("Free for total=" + StringUtils.byteDesc(bytesToFreeWithoutExtra) + ", ");<a name="line.738"></a>
+<span class="sourceLineNo">528</span>    if (!repeat &amp;&amp; updateCacheMetrics) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      cacheStats.miss(caching, key.isPrimary(), key.getBlockType());<a name="line.529"></a>
+<span class="sourceLineNo">530</span>    }<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    return null;<a name="line.531"></a>
+<span class="sourceLineNo">532</span>  }<a name="line.532"></a>
+<span class="sourceLineNo">533</span><a name="line.533"></a>
+<span class="sourceLineNo">534</span>  @VisibleForTesting<a name="line.534"></a>
+<span class="sourceLineNo">535</span>  void blockEvicted(BlockCacheKey cacheKey, BucketEntry bucketEntry, boolean decrementBlockNumber) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    bucketAllocator.freeBlock(bucketEntry.offset());<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    realCacheSize.add(-1 * bucketEntry.getLength());<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    blocksByHFile.remove(cacheKey);<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    if (decrementBlockNumber) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      this.blockNumber.decrement();<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  /**<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * Try to evict the block from {@link BlockCache} by force. We'll call this in few cases:&lt;br&gt;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   * 1. Close an HFile, and clear all cached blocks. &lt;br&gt;<a name="line.546"></a>
+<span class="sourceLineNo">547</span>   * 2. Call {@link Admin#clearBlockCache(TableName)} to clear all blocks for a given table.&lt;br&gt;<a name="line.547"></a>
+<span class="sourceLineNo">548</span>   * &lt;p&gt;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>   * Firstly, we'll try to remove the block from RAMCache. If it doesn't exist in RAMCache, then try<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   * to evict from backingMap. Here we only need to free the reference from bucket cache by calling<a name="line.550"></a>
+<span class="sourceLineNo">551</span>   * {@link BucketEntry#markedAsEvicted}. If there're still some RPC referring this block, block can<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * only be de-allocated when all of them release the block.<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   * &lt;p&gt;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>   * NOTICE: we need to grab the write offset lock firstly before releasing the reference from<a name="line.554"></a>
+<span class="sourceLineNo">555</span>   * bucket cache. if we don't, we may read an {@link BucketEntry} with refCnt = 0 when<a name="line.555"></a>
+<span class="sourceLineNo">556</span>   * {@link BucketCache#getBlock(BlockCacheKey, boolean, boolean, boolean)}, it's a memory leak.<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   * @param cacheKey Block to evict<a name="line.557"></a>
+<span class="sourceLineNo">558</span>   * @return true to indicate whether we've evicted successfully or not.<a name="line.558"></a>
+<span class="sourceLineNo">559</span>   */<a name="line.559"></a>
+<span class="sourceLineNo">560</span>  @Override<a name="line.560"></a>
+<span class="sourceLineNo">561</span>  public boolean evictBlock(BlockCacheKey cacheKey) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    if (!cacheEnabled) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>      return false;<a name="line.563"></a>
+<span class="sourceLineNo">564</span>    }<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    boolean existed = removeFromRamCache(cacheKey);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    BucketEntry be = backingMap.get(cacheKey);<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    if (be == null) {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>      if (existed) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>        cacheStats.evicted(0, cacheKey.isPrimary());<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      }<a name="line.570"></a>
+<span class="sourceLineNo">571</span>      return existed;<a name="line.571"></a>
+<span class="sourceLineNo">572</span>    } else {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      return be.withWriteLock(offsetLock, be::markAsEvicted);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>  }<a name="line.575"></a>
+<span class="sourceLineNo">576</span><a name="line.576"></a>
+<span class="sourceLineNo">577</span>  private Recycler createRecycler(BlockCacheKey cacheKey) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    return () -&gt; {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      if (!cacheEnabled) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        return;<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      }<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      boolean existed = removeFromRamCache(cacheKey);<a name="line.582"></a>
+<span class="sourceLineNo">583</span>      BucketEntry be = backingMap.get(cacheKey);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      if (be == null &amp;&amp; existed) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        cacheStats.evicted(0, cacheKey.isPrimary());<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      } else if (be != null) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        be.withWriteLock(offsetLock, () -&gt; {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>          if (backingMap.remove(cacheKey, be)) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>            blockEvicted(cacheKey, be, !existed);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>            cacheStats.evicted(be.getCachedTime(), cacheKey.isPrimary());<a name="line.590"></a>
+<span class="sourceLineNo">591</span>          }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>          return null;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        });<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      }<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    };<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>  private boolean removeFromRamCache(BlockCacheKey cacheKey) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    return ramCache.remove(cacheKey, re -&gt; {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      if (re != null) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        this.blockNumber.decrement();<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        this.heapSize.add(-1 * re.getData().heapSize());<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      }<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    });<a name="line.604"></a>
+<span class="sourceLineNo">605</span>  }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>  /*<a name="line.607"></a>
+<span class="sourceLineNo">608</span>   * Statistics thread.  Periodically output cache statistics to the log.<a name="line.608"></a>
+<span class="sourceLineNo">609</span>   */<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  private static class StatisticsThread extends Thread {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    private final BucketCache bucketCache;<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>    public StatisticsThread(BucketCache bucketCache) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      super("BucketCacheStatsThread");<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      setDaemon(true);<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      this.bucketCache = bucketCache;<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    }<a name="line.617"></a>
+<span class="sourceLineNo">618</span><a name="line.618"></a>
+<span class="sourceLineNo">619</span>    @Override<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    public void run() {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>      bucketCache.logStats();<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    }<a name="line.622"></a>
+<span class="sourceLineNo">623</span>  }<a name="line.623"></a>
+<span class="sourceLineNo">624</span><a name="line.624"></a>
+<span class="sourceLineNo">625</span>  public void logStats() {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    long totalSize = bucketAllocator.getTotalSize();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    long usedSize = bucketAllocator.getUsedSize();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    long freeSize = totalSize - usedSize;<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    long cacheSize = getRealCacheSize();<a name="line.629"></a>
+<span class="sourceLineNo">630</span>    LOG.info("failedBlockAdditions=" + cacheStats.getFailedInserts() + ", " +<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        "totalSize=" + StringUtils.byteDesc(totalSize) + ", " +<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        "freeSize=" + StringUtils.byteDesc(freeSize) + ", " +<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        "usedSize=" + StringUtils.byteDesc(usedSize) +", " +<a name="line.633"></a>
+<span class="sourceLineNo">634</span>        "cacheSize=" + StringUtils.byteDesc(cacheSize) +", " +<a name="line.634"></a>
+<span class="sourceLineNo">635</span>        "accesses=" + cacheStats.getRequestCount() + ", " +<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        "hits=" + cacheStats.getHitCount() + ", " +<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        "IOhitsPerSecond=" + cacheStats.getIOHitsPerSecond() + ", " +<a name="line.637"></a>
+<span class="sourceLineNo">638</span>        "IOTimePerHit=" + String.format("%.2f", cacheStats.getIOTimePerHit())+ ", " +<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        "hitRatio=" + (cacheStats.getHitCount() == 0 ? "0," :<a name="line.639"></a>
+<span class="sourceLineNo">640</span>          (StringUtils.formatPercent(cacheStats.getHitRatio(), 2)+ ", ")) +<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        "cachingAccesses=" + cacheStats.getRequestCachingCount() + ", " +<a name="line.641"></a>
+<span class="sourceLineNo">642</span>        "cachingHits=" + cacheStats.getHitCachingCount() + ", " +<a name="line.642"></a>
+<span class="sourceLineNo">643</span>        "cachingHitsRatio=" +(cacheStats.getHitCachingCount() == 0 ? "0," :<a name="line.643"></a>
+<span class="sourceLineNo">644</span>          (StringUtils.formatPercent(cacheStats.getHitCachingRatio(), 2)+ ", ")) +<a name="line.644"></a>
+<span class="sourceLineNo">645</span>        "evictions=" + cacheStats.getEvictionCount() + ", " +<a name="line.645"></a>
+<span class="sourceLineNo">646</span>        "evicted=" + cacheStats.getEvictedCount() + ", " +<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        "evictedPerRun=" + cacheStats.evictedPerEviction());<a name="line.647"></a>
+<span class="sourceLineNo">648</span>    cacheStats.reset();<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>  public long getRealCacheSize() {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    return this.realCacheSize.sum();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>  }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>  public long acceptableSize() {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>    return (long) Math.floor(bucketAllocator.getTotalSize() * acceptableFactor);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
+<span class="sourceLineNo">658</span><a name="line.658"></a>
+<span class="sourceLineNo">659</span>  @VisibleForTesting<a name="line.659"></a>
+<span class="sourceLineNo">660</span>  long getPartitionSize(float partitionFactor) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    return (long) Math.floor(bucketAllocator.getTotalSize() * partitionFactor * minFactor);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>  }<a name="line.662"></a>
+<span class="sourceLineNo">663</span><a name="line.663"></a>
+<span class="sourceLineNo">664</span>  /**<a name="line.664"></a>
+<span class="sourceLineNo">665</span>   * Return the count of bucketSizeinfos still need free space<a name="line.665"></a>
+<span class="sourceLineNo">666</span>   */<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  private int bucketSizesAboveThresholdCount(float minFactor) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    BucketAllocator.IndexStatistics[] stats = bucketAllocator.getIndexStatistics();<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    int fullCount = 0;<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    for (int i = 0; i &lt; stats.length; i++) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      long freeGoal = (long) Math.floor(stats[i].totalCount() * (1 - minFactor));<a name="line.671"></a>
+<span class="sourceLineNo">672</span>      freeGoal = Math.max(freeGoal, 1);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      if (stats[i].freeCount() &lt; freeGoal) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        fullCount++;<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      }<a name="line.675"></a>
+<span class="sourceLineNo">676</span>    }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>    return fullCount;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>  }<a name="line.678"></a>
+<span class="sourceLineNo">679</span><a name="line.679"></a>
+<span class="sourceLineNo">680</span>  /**<a name="line.680"></a>
+<span class="sourceLineNo">681</span>   * This method will find the buckets that are minimally occupied<a name="line.681"></a>
+<span class="sourceLineNo">682</span>   * and are not reference counted and will free them completely<a name="line.682"></a>
+<span class="sourceLineNo">683</span>   * without any constraint on the access times of the elements,<a name="line.683"></a>
+<span class="sourceLineNo">684</span>   * and as a process will completely free at most the number of buckets<a name="line.684"></a>
+<span class="sourceLineNo">685</span>   * passed, sometimes it might not due to changing refCounts<a name="line.685"></a>
+<span class="sourceLineNo">686</span>   *<a name="line.686"></a>
+<span class="sourceLineNo">687</span>   * @param completelyFreeBucketsNeeded number of buckets to free<a name="line.687"></a>
+<span class="sourceLineNo">688</span>   **/<a name="line.688"></a>
+<span class="sourceLineNo">689</span>  private void freeEntireBuckets(int completelyFreeBucketsNeeded) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    if (completelyFreeBucketsNeeded != 0) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      // First we will build a set where the offsets are reference counted, usually<a name="line.691"></a>
+<span class="sourceLineNo">692</span>      // this set is small around O(Handler Count) unless something else is wrong<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      Set&lt;Integer&gt; inUseBuckets = new HashSet&lt;&gt;();<a name="line.693"></a>
+<span class="sourceLineNo">694</span>      backingMap.forEach((k, be) -&gt; {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        if (be.isRpcRef()) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>          inUseBuckets.add(bucketAllocator.getBucketIndex(be.offset()));<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      });<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      Set&lt;Integer&gt; candidateBuckets =<a name="line.699"></a>
+<span class="sourceLineNo">700</span>          bucketAllocator.getLeastFilledBuckets(inUseBuckets, completelyFreeBucketsNeeded);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>      for (Map.Entry&lt;BlockCacheKey, BucketEntry&gt; entry : backingMap.entrySet()) {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        if (candidateBuckets.contains(bucketAllocator.getBucketIndex(entry.getValue().offset()))) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>          entry.getValue().withWriteLock(offsetLock, entry.getValue()::markStaleAsEvicted);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>        }<a name="line.704"></a>
+<span class="sourceLineNo">705</span>      }<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    }<a name="line.706"></a>
+<span class="sourceLineNo">707</span>  }<a name="line.707"></a>
+<span class="sourceLineNo">708</span><a name="line.708"></a>
+<span class="sourceLineNo">709</span>  /**<a name="line.709"></a>
+<span class="sourceLineNo">710</span>   * Free the space if the used size reaches acceptableSize() or one size block<a name="line.710"></a>
+<span class="sourceLineNo">711</span>   * couldn't be allocated. When freeing the space, we use the LRU algorithm and<a name="line.711"></a>
+<span class="sourceLineNo">712</span>   * ensure there must be some blocks evicted<a name="line.712"></a>
+<span class="sourceLineNo">713</span>   * @param why Why we are being called<a name="line.713"></a>
+<span class="sourceLineNo">714</span>   */<a name="line.714"></a>
+<span class="sourceLineNo">715</span>  private void freeSpace(final String why) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>    // Ensure only one freeSpace progress at a time<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    if (!freeSpaceLock.tryLock()) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>      return;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>    }<a name="line.719"></a>
+<span class="sourceLineNo">720</span>    try {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>      freeInProgress = true;<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      long bytesToFreeWithoutExtra = 0;<a name="line.722"></a>
+<span class="sourceLineNo">723</span>      // Calculate free byte for each bucketSizeinfo<a name="line.723"></a>
+<span class="sourceLineNo">724</span>      StringBuilder msgBuffer = LOG.isDebugEnabled()? new StringBuilder(): null;<a name="line.724"></a>
+<span class="sourceLineNo">725</span>      BucketAllocator.IndexStatistics[] stats = bucketAllocator.getIndexStatistics();<a name="line.725"></a>
+<span class="sourceLineNo">726</span>      long[] bytesToFreeForBucket = new long[stats.length];<a name="line.726"></a>
+<span class="sourceLineNo">727</span>      for (int i = 0; i &lt; stats.length; i++) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        bytesToFreeForBucket[i] = 0;<a name="line.728"></a>
+<span class="sourceLineNo">729</span>        long freeGoal = (long) Math.floor(stats[i].totalCount() * (1 - minFactor));<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        freeGoal = Math.max(freeGoal, 1);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>        if (stats[i].freeCount() &lt; freeGoal) {<a name="line.731"></a>
+<span class="sourceLineNo">732</span>          bytesToFreeForBucket[i] = stats[i].itemSize() * (freeGoal - stats[i].freeCount());<a name="line.732"></a>
+<span class="sourceLineNo">733</span>          bytesToFreeWithoutExtra += bytesToFreeForBucket[i];<a name="line.733"></a>
+<span class="sourceLineNo">734</span>          if (msgBuffer != null) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>            msgBuffer.append("Free for bucketSize(" + stats[i].itemSize() + ")="<a name="line.735"></a>
+<span class="sourceLineNo">736</span>              + StringUtils.byteDesc(bytesToFreeForBucket[i]) + ", ");<a name="line.736"></a>
+<span class="sourceLineNo">737</span>          }<a name="line.737"></a>
+<span class="sourceLineNo">738</span>        }<a name="line.738"></a>
 <span class="sourceLineNo">739</span>      }<a name="line.739"></a>
-<span class="sourceLineNo">740</span><a name="line.740"></a>
-<span class="sourceLineNo">741</span>      if (bytesToFreeWithoutExtra &lt;= 0) {<a name="line.741"></a>
-<span class="sourceLineNo">742</span>        return;<a name="line.742"></a>
-<span class="sourceLineNo">743</span>      }<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      long currentSize = bucketAllocator.getUsedSize();<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      long totalSize = bucketAllocator.getTotalSize();<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      if (LOG.isDebugEnabled() &amp;&amp; msgBuffer != null) {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        LOG.debug("Free started because \"" + why + "\"; " + msgBuffer.toString() +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>          " of current used=" + StringUtils.byteDesc(currentSize) + ", actual cacheSize=" +<a name="line.748"></a>
-<span class="sourceLineNo">749</span>          StringUtils.byteDesc(realCacheSize.sum()) + ", total=" + StringUtils.byteDesc(totalSize));<a name="line.749"></a>
-<span class="sourceLineNo">750</span>      }<a name="line.750"></a>
-<span class="sourceLineNo">751</span><a name="line.751"></a>
-<span class="sourceLineNo">752</span>      long bytesToFreeWithExtra = (long) Math.floor(bytesToFreeWithoutExtra<a name="line.752"></a>
-<span class="sourceLineNo">753</span>          * (1 + extraFreeFactor));<a name="line.753"></a>
+<span class="sourceLineNo">740</span>      if (msgBuffer != null) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>        msgBuffer.append("Free for total=" + StringUtils.byteDesc(bytesToFreeWithoutExtra) + ", ");<a name="line.741"></a>
+<span class="sourceLineNo">742</span>      }<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>      if (bytesToFreeWithoutExtra &lt;= 0) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>        return;<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      }<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      long currentSize = bucketAllocator.getUsedSize();<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      long totalSize = bucketAllocator.getTotalSize();<a name="line.748"></a>
+<span class="sourceLineNo">749</span>      if (LOG.isDebugEnabled() &amp;&amp; msgBuffer != null) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        LOG.debug("Free started because \"" + why + "\"; " + msgBuffer.toString() +<a name="line.750"></a>
+<span class="sourceLineNo">751</span>          " of current used=" + StringUtils.byteDesc(currentSize) + ", actual cacheSize=" +<a name="line.751"></a>
+<span class="sourceLineNo">752</span>          StringUtils.byteDesc(realCacheSize.sum()) + ", total=" + StringUtils.byteDesc(totalSize));<a name="line.752"></a>
+<span class="sourceLineNo">753</span>      }<a name="line.753"></a>
 <span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span>      // Instantiate priority buckets<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      BucketEntryGroup bucketSingle = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          blockSize, getPartitionSize(singleFactor));<a name="line.757"></a>
-<span class="sourceLineNo">758</span>      BucketEntryGroup bucketMulti = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          blockSize, getPartitionSize(multiFactor));<a name="line.759"></a>
-<span class="sourceLineNo">760</span>      BucketEntryGroup bucketMemory = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          blockSize, getPartitionSize(memoryFactor));<a name="line.761"></a>
-<span class="sourceLineNo">762</span><a name="line.762"></a>
-<span class="sourceLineNo">763</span>      // Scan entire map putting bucket entry into appropriate bucket entry<a name="line.763"></a>
-<span class="sourceLineNo">764</span>      // group<a name="line.764"></a>
-<span class="sourceLineNo">765</span>      for (Map.Entry&lt;BlockCacheKey, BucketEntry&gt; bucketEntryWithKey : backingMap.entrySet()) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span>        switch (bucketEntryWithKey.getValue().getPriority()) {<a name="line.766"></a>
-<span class="sourceLineNo">767</span>          case SINGLE: {<a name="line.767"></a>
-<span class="sourceLineNo">768</span>            bucketSingle.add(bucketEntryWithKey);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>            break;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>          }<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          case MULTI: {<a name="line.771"></a>
-<span class="sourceLineNo">772</span>            bucketMulti.add(bucketEntryWithKey);<a name="line.772"></a>
-<span class="sourceLineNo">773</span>            break;<a name="line.773"></a>
-<span class="sourceLineNo">774</span>          }<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          case MEMORY: {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>            bucketMemory.add(bucketEntryWithKey);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>            break;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          }<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        }<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>      PriorityQueue&lt;BucketEntryGroup&gt; bucketQueue = new PriorityQueue&lt;&gt;(3,<a name="line.782"></a>
-<span class="sourceLineNo">783</span>          Comparator.comparingLong(BucketEntryGroup::overflow));<a name="line.783"></a>
+<span class="sourceLineNo">755</span>      long bytesToFreeWithExtra = (long) Math.floor(bytesToFreeWithoutExtra<a name="line.755"></a>
+<span class="sourceLineNo">756</span>          * (1 + extraFreeFactor));<a name="line.756"></a>
+<span class="sourceLineNo">757</span><a name="line.757"></a>
+<span class="sourceLineNo">758</span>      // Instantiate priority buckets<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      BucketEntryGroup bucketSingle = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.759"></a>
+<span class="sourceLineNo">760</span>          blockSize, getPartitionSize(singleFactor));<a name="line.760"></a>
+<span class="sourceLineNo">761</span>      BucketEntryGroup bucketMulti = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.761"></a>
+<span class="sourceLineNo">762</span>          blockSize, getPartitionSize(multiFactor));<a name="line.762"></a>
+<span class="sourceLineNo">763</span>      BucketEntryGroup bucketMemory = new BucketEntryGroup(bytesToFreeWithExtra,<a name="line.763"></a>
+<span class="sourceLineNo">764</span>          blockSize, getPartitionSize(memoryFactor));<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>      // Scan entire map putting bucket entry into appropriate bucket entry<a name="line.766"></a>
+<span class="sourceLineNo">767</span>      // group<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      for (Map.Entry&lt;BlockCacheKey, BucketEntry&gt; bucketEntryWithKey : backingMap.entrySet()) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>        switch (bucketEntryWithKey.getValue().getPriority()) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>          case SINGLE: {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>            bucketSingle.add(bucketEntryWithKey);<a name="line.771"></a>
+<span class="sourceLineNo">772</span>            break;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>          }<a name="line.773"></a>
+<span class="sourceLineNo">774</span>          case MULTI: {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>            bucketMulti.add(bucketEntryWithKey);<a name="line.775"></a>
+<span class="sourceLineNo">776</span>            break;<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          }<a name="line.777"></a>
+<span class="sourceLineNo">778</span>          case MEMORY: {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>            bucketMemory.add(bucketEntryWithKey);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>            break;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>          }<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span>      }<a name="line.783"></a>
 <span class="sourceLineNo">784</span><a name="line.784"></a>
-<span class="sourceLineNo">785</span>      bucketQueue.add(bucketSingle);<a name="line.785"></a>
-<span class="sourceLineNo">786</span>      bucketQueue.add(bucketMulti);<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      bucketQueue.add(bucketMemory);<a name="line.787"></a>
-<span class="sourceLineNo">788</span><a name="line.788"></a>
-<span class="sourceLineNo">789</span>      int remainingBuckets = bucketQueue.size();<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      long bytesFreed = 0;<a name="line.790"></a>
+<span class="sourceLineNo">785</span>      PriorityQueue&lt;BucketEntryGroup&gt; bucketQueue = new PriorityQueue&lt;&gt;(3,<a name="line.785"></a>
+<span class="sourceLineNo">786</span>          Comparator.comparingLong(BucketEntryGroup::overflow));<a name="line.786"></a>
+<span class="sourceLineNo">787</span><a name="line.787"></a>
+<span class="sourceLineNo">788</span>      bucketQueue.add(bucketSingle);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>      bucketQueue.add(bucketMulti);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>      bucketQueue.add(bucketMemory);<a name="line.790"></a>
 <span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>      BucketEntryGroup bucketGroup;<a name="line.792"></a>
-<span class="sourceLineNo">793</span>      while ((bucketGroup = bucketQueue.poll()) != null) {<a name="line.793"></a>
-<span class="sourceLineNo">794</span>        long overflow = bucketGroup.overflow();<a name="line.794"></a>
-<span class="sourceLineNo">795</span>        if (overflow &gt; 0) {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>          long bucketBytesToFree = Math.min(overflow,<a name="line.796"></a>
-<span class="sourceLineNo">797</span>              (bytesToFreeWithoutExtra - bytesFreed) / remainingBuckets);<a name="line.797"></a>
-<span class="sourceLineNo">798</span>          bytesFreed += bucketGroup.free(bucketBytesToFree);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>        }<a name="line.799"></a>
-<span class="sourceLineNo">800</span>        remainingBuckets--;<a name="line.800"></a>
-<span class="sourceLineNo">801</span>      }<a name="line.801"></a>
-<span class="sourceLineNo">802</span><a name="line.802"></a>
-<span class="sourceLineNo">803</span>      // Check and free if there are buckets that still need freeing of space<a name="line.803"></a>
-<span class="sourceLineNo">804</span>      if (bucketSizesAboveThresholdCount(minFactor) &gt; 0) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>        bucketQueue.clear();<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        remainingBuckets = 3;<a name="line.806"></a>
-<span class="sourceLineNo">807</span><a name="line.807"></a>
-<span class="sourceLineNo">808</span>        bucketQueue.add(bucketSingle);<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        bucketQueue.add(bucketMulti);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>        bucketQueue.add(bucketMemory);<a name="line.810"></a>
-<span class="sourceLineNo">811</span><a name="line.811"></a>
-<span class="sourceLineNo">812</span>        while ((bucketGroup = bucketQueue.poll()) != null) {<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          long bucketBytesToFree = (bytesToFreeWithExtra - bytesFreed) / remainingBuckets;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>          bytesFreed += bucketGroup.free(bucketBytesToFree);<a name="line.814"></a>
-<span class="sourceLineNo">815</span>          remainingBuckets--;<a name="line.815"></a>
-<span class="sourceLineNo">816</span>        }<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      }<a name="line.817"></a>
-<span class="sourceLineNo">818</span><a name="line.818"></a>
-<span class="sourceLineNo">819</span>      // Even after the above free we might still need freeing because of the<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      // De-fragmentation of the buckets (also called Slab Calcification problem), i.e<a name="line.820"></a>
-<span class="sourceLineNo">821</span>      // there might be some buckets where the occupancy is very sparse and thus are not<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      // yielding the free for the other bucket sizes, the fix for this to evict some<a name="line.822"></a>
-<span class="sourceLineNo">823</span>      // of the buckets, we do this by evicting the buckets that are least fulled<a name="line.823"></a>
-<span class="sourceLineNo">824</span>      freeEntireBuckets(DEFAULT_FREE_ENTIRE_BLOCK_FACTOR *<a name="line.824"></a>
-<span class="sourceLineNo">825</span>          bucketSizesAboveThresholdCount(1.0f));<a name="line.825"></a>
-<span class="sourceLineNo">826</span><a name="line.826"></a>
-<span class="sourceLineNo">827</span>      if (LOG.isDebugEnabled()) {<a name="line.827"></a>
-<span class="sourceLineNo">828</span>        long single = bucketSingle.totalSize();<a name="line.828"></a>
-<span class="sourceLineNo">829</span>        long multi = bucketMulti.totalSize();<a name="line.829"></a>
-<span class="sourceLineNo">830</span>        long memory = bucketMemory.totalSize();<a name="line.830"></a>
-<span class="sourceLineNo">831</span>        if (LOG.isDebugEnabled()) {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>          LOG.debug("Bucket cache free space completed; " + "freed="<a name="line.832"></a>
-<span class="sourceLineNo">833</span>            + StringUtils.byteDesc(bytesFreed) + ", " + "total="<a name="line.833"></a>
-<span class="sourceLineNo">834</span>            + StringUtils.byteDesc(totalSize) + ", " + "single="<a name="line.834"></a>
-<span class="sourceLineNo">835</span>            + StringUtils.byteDesc(single) + ", " + "multi="<a name="line.835"></a>
-<span class="sourceLineNo">836</span>            + StringUtils.byteDesc(multi) + ", " + "memory="<a name="line.836"></a>
-<span class="sourceLineNo">837</span>            + StringUtils.byteDesc(memory));<a name="line.837"></a>
-<span class="sourceLineNo">838</span>        }<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      }<a name="line.839"></a>
-<span class="sourceLineNo">840</span><a name="line.840"></a>
-<span class="sourceLineNo">841</span>    } catch (Throwable t) {<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      LOG.warn("Failed freeing space", t);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    } finally {<a name="line.843"></a>
-<span class="sourceLineNo">844</span>      cacheStats.evict();<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      freeInProgress = false;<a name="line.845"></a>
-<span class="sourceLineNo">846</span>      freeSpaceLock.unlock();<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    }<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  }<a name="line.848"></a>
-<span class="sourceLineNo">849</span><a name="line.849"></a>
-<span class="sourceLineNo">850</span>  // This handles flushing the RAM cache to IOEngine.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>  @VisibleForTesting<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  class WriterThread extends HasThread {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    private final BlockingQueue&lt;RAMQueueEntry&gt; inputQueue;<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    private volatile boolean writerEnabled = true;<a name="line.854"></a>
-<span class="sourceLineNo">855</span><a name="line.855"></a>
-<span class="sourceLineNo">856</span>    WriterThread(BlockingQueue&lt;RAMQueueEntry&gt; queue) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      super("BucketCacheWriterThread");<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      this.inputQueue = queue;<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    }<a name="line.859"></a>
-<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // Used for test<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    @VisibleForTesting<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    void disableWriter() {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      this.writerEnabled = false;<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    }<a name="line.865"></a>
-<span class="sourceLineNo">866</span><a name="line.866"></a>
-<span class="sourceLineNo">867</span>    @Override<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    public void run() {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      List&lt;RAMQueueEntry&gt; entries = new ArrayList&lt;&gt;();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      try {<a name="line.870"></a>
-<span class="sourceLineNo">871</span>        while (cacheEnabled &amp;&amp; writerEnabled) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>          try {<a name="line.872"></a>
-<span class="sourceLineNo">873</span>            try {<a name="line.873"></a>
-<span class="sourceLineNo">874</span>              // Blocks<a name="line.874"></a>
-<span class="sourceLineNo">875</span>              entries = getRAMQueueEntries(inputQueue, entries);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>            } catch (InterruptedException ie) {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>              if (!cacheEnabled || !writerEnabled) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>                break;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>              }<a name="line.879"></a>
-<span class="sourceLineNo">880</span>            }<a name="line.880"></a>
-<span class="sourceLineNo">881</span>            doDrain(entries);<a name="line.881"></a>
-<span class="sourceLineNo">882</span>          } catch (Exception ioe) {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>            LOG.error("WriterThread encountered error", ioe);<a name="line.883"></a>
-<span class="sourceLineNo">884</span>          }<a name="line.884"></a>
-<span class="sourceLineNo">885</span>        }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      } catch (Throwable t) {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        LOG.warn("Failed doing drain", t);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      }<a name="line.888"></a>
-<span class="sourceLineNo">889</span>      LOG.info(this.getName() + " exiting, cacheEnabled=" + cacheEnabled);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    }<a name="line.890"></a>
-<span class="sourceLineNo">891</span><a name="line.891"></a>
-<span class="sourceLineNo">892</span>    /**<a name="line.892"></a>
-<span class="sourceLineNo">893</span>     * Put the new bucket entry into backingMap. Notice that we are allowed to replace the existing<a name="line.893"></a>
-<span class="sourceLineNo">894</span>     * cache with a new block for the same cache key. there's a corner case: one thread cache a<a name="line.894"></a>
-<span class="sourceLineNo">895</span>     * block in ramCache, copy to io-engine and add a bucket entry to backingMap. Caching another<a name="line.895"></a>
-<span class="sourceLineNo">896</span>     * new block with the same cache key do the same thing for the same cache key, so if not evict<a name="line.896"></a>
-<span class="sourceLineNo">897</span>     * the previous bucket entry, then memory leak happen because the previous bucketEntry is gone<a name="line.897"></a>
-<span class="sourceLineNo">898</span>     * but the bucketAllocator do not free its memory.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>     * @see BlockCacheUtil#shouldReplaceExistingCacheBlock(BlockCache blockCache,BlockCacheKey<a name="line.899"></a>
-<span class="sourceLineNo">900</span>     *      cacheKey, Cacheable newBlock)<a name="line.900"></a>
-<span class="sourceLineNo">901</span>     * @param key Block cache key<a name="line.901"></a>
-<span class="sourceLineNo">902</span>     * @param bucketEntry Bucket entry to put into backingMap.<a name="line.902"></a>
-<span class="sourceLineNo">903</span>     */<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    private void putIntoBackingMap(BlockCacheKey key, BucketEntry bucketEntry) {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>      BucketEntry previousEntry = backingMap.put(key, bucketEntry);<a name="line.905"></a>
-<span class="sourceLineNo">906</span>      if (previousEntry != null &amp;&amp; previousEntry != bucketEntry) {<a name="line.906"></a>
-<span class="sourceLineNo">907</span>        previousEntry.withWriteLock(offsetLock, () -&gt; {<a name="line.907"></a>
-<span class="sourceLineNo">908</span>          blockEvicted(key, previousEntry, false);<a name="line.908"></a>
-<span class="sourceLineNo">909</span>          return null;<a name="line.909"></a>
-<span class="sourceLineNo">910</span>        });<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      }<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    }<a name="line.912"></a>
-<span class="sourceLineNo">913</span><a name="line.913"></a>
-<span class="sourceLineNo">914</span>    /**<a name="line.914"></a>
-<span class="sourceLineNo">915</span>     * Flush the entries in ramCache to IOEngine and add bucket entry to backingMap.<a name="line.915"></a>
-<span class="sourceLineNo">916</span>     * Process all that are passed in even if failure being sure to remove from ramCache else we'll<a name="line.916"></a>
-<span class="sourceLineNo">917</span>     * never undo the references and we'll OOME.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>     * @param entries Presumes list passed in here will be processed by this invocation only. No<a name="line.918"></a>
-<span class="sourceLineNo">919</span>     *   interference expected.<a name="line.919"></a>
-<span class="sourceLineNo">920</span>     * @throws InterruptedException<a name="line.920"></a>
-<span class="sourceLineNo">921</span>     */<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    @VisibleForTesting<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    void doDrain(final List&lt;RAMQueueEntry&gt; entries) throws InterruptedException {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      if (entries.isEmpty()) {<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        return;<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      }<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      // This method is a little hard to follow. We run through the passed in entries and for each<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      // successful add, we add a non-null BucketEntry to the below bucketEntries.  Later we must<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      // do cleanup making sure we've cleared ramCache of all entries regardless of whether we<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      // successfully added the item to the bucketcache; if we don't do the cleanup, we'll OOME by<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      // filling ramCache.  We do the clean up by again running through the passed in entries<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      // doing extra work when we find a non-null bucketEntries corresponding entry.<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      final int size = entries.size();<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      BucketEntry[] bucketEntries = new BucketEntry[size];<a name="line.934"></a>
-<span class="sourceLineNo">935</span>      // Index updated inside loop if success or if we can't succeed. We retry if cache is full<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      // when we go to add an entry by going around the loop again without upping the index.<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      int index = 0;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      while (cacheEnabled &amp;&amp; index &lt; size) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>        RAMQueueEntry re = null;<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        try {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>          re = entries.get(index);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>          if (re == null) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>            LOG.warn("Couldn't get entry or changed on us; who else is messing with it?");<a name="line.943"></a>
-<span class="sourceLineNo">944</span>            index++;<a name="line.944"></a>
-<span class="sourceLineNo">945</span>            continue;<a name="line.945"></a>
-<span class="sourceLineNo">946</span>          }<a name="line.946"></a>
-<span class="sourceLineNo">947</span>          BucketEntry bucketEntry = re.writeToCache(ioEngine, bucketAllocator, realCacheSize);<a name="line.947"></a>
-<span class="sourceLineNo">948</span>          // Successfully added. Up index and add bucketEntry. Clear io exceptions.<a name="line.948"></a>
-<span class="sourceLineNo">949</span>          bucketEntries[index] = bucketEntry;<a name="line.949"></a>
-<span class="sourceLineNo">950</span>          if (ioErrorStartTime &gt; 0) {<a name="line.950"></a>
-<span class="sourceLineNo">951</span>            ioErrorStartTime = -1;<a name="line.951"></a>
-<span class="sourceLineNo">952</span>          }<a name="line.952"></a>
-<span class="sourceLineNo">953</span>          index++;<a name="line.953"></a>
-<span class="sourceLineNo">954</span>        } catch (BucketAllocatorException fle) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>          LOG.warn("Failed allocation for " + (re == null ? "" : re.getKey()) + "; " + fle);<a name="line.955"></a>
-<span class="sourceLineNo">956</span>          // Presume can't add. Too big? Move index on. Entry will be cleared from ramCache below.<a name="line.956"></a>
-<span class="sourceLineNo">957</span>          bucketEntries[index] = null;<a name="line.957"></a>
-<span class="sourceLineNo">958</span>          index++;<a name="line.958"></a>
-<span class="sourceLineNo">959</span>        } catch (CacheFullException cfe) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>          // Cache full when we tried to add. Try freeing space and then retrying (don't up index)<a name="line.960"></a>
-<span class="sourceLineNo">961</span>          if (!freeInProgress) {<a name="line.961"></a>
-<span class="sourceLineNo">962</span>            freeSpace("Full!");<a name="line.962"></a>
-<span class="sourceLineNo">963</span>          } else {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>            Thread.sleep(50);<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          }<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        } catch (IOException ioex) {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>          // Hopefully transient. Retry. checkIOErrorIsTolerated disables cache if problem.<a name="line.967"></a>
-<span class="sourceLineNo">968</span>          LOG.error("Failed writing to bucket cache", ioex);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>          checkIOErrorIsTolerated();<a name="line.969"></a>
-<span class="sourceLineNo">970</span>        }<a name="line.970"></a>
-<span class="sourceLineNo">971</span>      }<a name="line.971"></a>
-<span class="sourceLineNo">972</span><a name="line.972"></a>
-<span class="sourceLineNo">973</span>      // Make sure data pages are written on media before we update maps.<a name="line.973"></a>
-<span class="sourceLineNo">974</span>      try {<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        ioEngine.sync();<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      } catch (IOException ioex) {<a name="line.976"></a>
-<span class="sourceLineNo">977</span>        LOG.error("Failed syncing IO engine", ioex);<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        checkIOErrorIsTolerated();<a name="line.978"></a>
-<span class="sourceLineNo">979</span>        // Since we failed sync, free the blocks in bucket allocator<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        for (int i = 0; i &lt; entries.size(); ++i) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>          if (bucketEntries[i] != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>            bucketAllocator.freeBlock(bucketEntries[i].offset());<a name="line.982"></a>
-<span class="sourceLineNo">983</span>            bucketEntries[i] = null;<a name="line.983"></a>
-<span class="sourceLineNo">984</span>          }<a name="line.984"></a>
-<span class="sourceLineNo">985</span>        }<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      }<a name="line.986"></a>
-<span class="sourceLineNo">987</span><a name="line.987"></a>
-<span class="sourceLineNo">988</span>      // Now add to backingMap if successfully added to bucket cache.  Remove from ramCache if<a name="line.988"></a>
-<span class="sourceLineNo">989</span>      // success or error.<a name="line.989"></a>
-<span class="sourceLineNo">990</span>      for (int i = 0; i &lt; size; ++i) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>        BlockCacheKey key = entries.get(i).getKey();<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        // Only add if non-null entry.<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        if (bucketEntries[i] != null) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          putIntoBackingMap(key, bucketEntries[i]);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
-<span class="sourceLineNo">996</span>        // Always remove from ramCache even if we failed adding it to the block cache above.<a name="line.996"></a>
-<span class="sourceLineNo">997</span>        boolean existed = ramCache.remove(key, re -&gt; {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>          if (re != null) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>            heapSize.add(-1 * re.getData().heapSize());<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>          }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>        });<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>        if (!existed &amp;&amp; bucketEntries[i] != null) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>          // Block should have already been evicted. Remove it and free space.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>          final BucketEntry bucketEntry = bucketEntries[i];<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          bucketEntry.withWriteLock(offsetLock, () -&gt; {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>            if (backingMap.remove(key, bucketEntry)) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>              blockEvicted(key, bucketEntry, false);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>            }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>            return null;<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>          });<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        }<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span><a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>      long used = bucketAllocator.getUsedSize();<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      if (used &gt; acceptableSize()) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        freeSpace("Used=" + used + " &gt; acceptable=" + acceptableSize());<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      return;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>  }<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span><a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>  /**<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>   * Blocks until elements available in {@code q} then tries to grab as many as possible before<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>   * returning.<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   * @param receptacle Where to stash the elements taken from queue. We clear before we use it just<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>   *          in case.<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>   * @param q The queue to take from.<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>   * @return {@code receptacle} laden with elements taken from the queue or empty if none found.<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   */<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>  @VisibleForTesting<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>  static List&lt;RAMQueueEntry&gt; getRAMQueueEntries(BlockingQueue&lt;RAMQueueEntry&gt; q,<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      List&lt;RAMQueueEntry&gt; receptacle) throws InterruptedException {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    // Clear sets all entries to null and sets size to 0. We retain allocations. Presume it<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>    // ok even if list grew to accommodate thousands.<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    receptacle.clear();<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    receptacle.add(q.take());<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>    q.drainTo(receptacle);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>    return receptacle;<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  }<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span><a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>  /**<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>   * @see #retrieveFromFile(int[])<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>   */<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="OBL_UNSATISFIED_OBLIGATION",<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>      justification = "false positive, try-with-resources ensures close is called.")<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>  private void persistToFile() throws IOException {<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>    assert !cacheEnabled;<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    if (!ioEngine.isPersistent()) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      throw new IOException("Attempt to persist non-persistent cache mappings!");<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    try (FileOutputStream fos = new FileOutputStream(persistencePath, false)) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>      fos.write(ProtobufMagic.PB_MAGIC);<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      BucketProtoUtils.toPB(this).writeDelimitedTo(fos);<a name="line.1053"></a>
... 25676 lines suppressed ...